mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-07-16 11:38:12 +00:00
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
import json
|
|
from pathlib import Path
|
|
|
|
from helpers import FOREIGN_LANGUAGES, HERE, TRANSLATIONS_DIR
|
|
|
|
|
|
def get_lang_keys(lang: str) -> set[str]:
|
|
lang_file = TRANSLATIONS_DIR / f"{lang}.json"
|
|
lang_data = json.loads(lang_file.read_text())["translations"]
|
|
return set(lang_data.keys())
|
|
|
|
|
|
def do_check(lang: str, missing_file: Path) -> bool:
|
|
lang_keys = get_lang_keys(lang)
|
|
en_keys = get_lang_keys("en")
|
|
|
|
if lang_keys == en_keys:
|
|
print(f"SUCCESS: {lang} and en files have the same keys")
|
|
return True
|
|
else:
|
|
print(f"{lang} and en files have different keys")
|
|
print(f"{lang} - en:", len(lang_keys - en_keys))
|
|
print(f"en - {lang}:", len(en_keys - lang_keys))
|
|
missing_lang = en_keys - lang_keys
|
|
missing_en = lang_keys - en_keys
|
|
missing_file.write_text(json.dumps(list(missing_lang), indent=2))
|
|
print(f"Diff written into {missing_file}")
|
|
if missing_en:
|
|
print(f"Extra keys: {missing_en}")
|
|
return False
|
|
|
|
|
|
if __name__ == "__main__":
|
|
is_ok = True
|
|
for lang in FOREIGN_LANGUAGES:
|
|
is_ok &= do_check(lang, HERE / f"missing_{lang}.json")
|
|
if not is_ok:
|
|
print("ERROR: there were some inconsistencies")
|
|
exit(1)
|