mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-01-28 16:21:03 +00:00
feat(core): use layout name for translation font keys
[no changelog]
This commit is contained in:
parent
a616a10faf
commit
4bc8659e8c
@ -124,14 +124,8 @@ class TranslationsDir:
|
||||
def _lang_path(self, lang: str) -> Path:
|
||||
return self.path / f"{lang}.json"
|
||||
|
||||
def load_lang(self, lang: str, model_groups: bool = True) -> translations.JsonDef:
|
||||
json_def = json.loads(self._lang_path(lang).read_text())
|
||||
# special-case for T2B1 and T3B1, so that we keep the info in one place instead
|
||||
# of duplicating it in two entries, risking a desync
|
||||
if model_groups and (fonts_safe3 := json_def.get("fonts", {}).get("##Safe3")) is not None:
|
||||
json_def["fonts"]["T2B1"] = fonts_safe3
|
||||
json_def["fonts"]["T3B1"] = fonts_safe3
|
||||
return json_def
|
||||
def load_lang(self, lang: str) -> translations.JsonDef:
|
||||
return json.loads(self._lang_path(lang).read_text())
|
||||
|
||||
def save_lang(self, lang: str, data: translations.JsonDef) -> None:
|
||||
self._lang_path(lang).write_text(
|
||||
@ -150,7 +144,7 @@ class TranslationsDir:
|
||||
def update_version_from_h(self, check: bool = False) -> VersionTuple:
|
||||
version = _version_from_version_h()
|
||||
for lang in self.all_languages():
|
||||
blob_json = self.load_lang(lang, model_groups=False)
|
||||
blob_json = self.load_lang(lang)
|
||||
blob_version = translations.version_from_json(
|
||||
blob_json["header"]["version"]
|
||||
)
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"fonts": {
|
||||
"##Safe3": {
|
||||
"Samson": {
|
||||
"1_FONT_NORMAL": "font_pixeloperator_regular_8_cs.json",
|
||||
"2_FONT_BOLD": "font_pixeloperator_bold_8_cs.json",
|
||||
"3_FONT_MONO": "font_pixeloperatormono_regular_8_cs.json",
|
||||
@ -10,7 +10,7 @@
|
||||
"7_FONT_BOLD_UPPER": "font_pixeloperator_bold_8_upper_cs.json",
|
||||
"8_FONT_SUB": null
|
||||
},
|
||||
"T2T1": {
|
||||
"Bolt": {
|
||||
"1_FONT_NORMAL": "font_tthoves_regular_21_cs.json",
|
||||
"2_FONT_BOLD": null,
|
||||
"3_FONT_MONO": "font_robotomono_medium_20_cs.json",
|
||||
@ -20,7 +20,7 @@
|
||||
"7_FONT_BOLD_UPPER": "font_tthoves_bold_17_upper_cs.json",
|
||||
"8_FONT_SUB": null
|
||||
},
|
||||
"T3T1": {
|
||||
"Quicksilver": {
|
||||
"1_FONT_NORMAL": "font_ttsatoshi_demibold_21_cs.json",
|
||||
"2_FONT_BOLD": "font_ttsatoshi_demibold_21_cs.json",
|
||||
"3_FONT_MONO": "font_robotomono_medium_21_cs.json",
|
||||
@ -30,7 +30,7 @@
|
||||
"7_FONT_BOLD_UPPER": null,
|
||||
"8_FONT_SUB": "font_ttsatoshi_demibold_18_cs.json"
|
||||
},
|
||||
"T3W1": {
|
||||
"LayoutTBD": {
|
||||
"1_FONT_NORMAL": "font_ttsatoshi_demibold_21_cs.json",
|
||||
"2_FONT_BOLD": "font_ttsatoshi_demibold_21_cs.json",
|
||||
"3_FONT_MONO": "font_robotomono_medium_21_cs.json",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"fonts": {
|
||||
"##Safe3": {
|
||||
"Samson": {
|
||||
"1_FONT_NORMAL": "font_pixeloperator_regular_8_de.json",
|
||||
"2_FONT_BOLD": "font_pixeloperator_bold_8_de.json",
|
||||
"3_FONT_MONO": "font_pixeloperatormono_regular_8_de.json",
|
||||
@ -10,7 +10,7 @@
|
||||
"7_FONT_BOLD_UPPER": "font_pixeloperator_bold_8_upper_de.json",
|
||||
"8_FONT_SUB": null
|
||||
},
|
||||
"T2T1": {
|
||||
"Bolt": {
|
||||
"1_FONT_NORMAL": "font_tthoves_regular_21_de.json",
|
||||
"2_FONT_BOLD": null,
|
||||
"3_FONT_MONO": "font_robotomono_medium_20_de.json",
|
||||
@ -20,7 +20,7 @@
|
||||
"7_FONT_BOLD_UPPER": "font_tthoves_bold_17_upper_de.json",
|
||||
"8_FONT_SUB": null
|
||||
},
|
||||
"T3T1": {
|
||||
"Quicksilver": {
|
||||
"1_FONT_NORMAL": "font_ttsatoshi_demibold_21_de.json",
|
||||
"2_FONT_BOLD": "font_ttsatoshi_demibold_21_de.json",
|
||||
"3_FONT_MONO": "font_robotomono_medium_21_de.json",
|
||||
@ -30,7 +30,7 @@
|
||||
"7_FONT_BOLD_UPPER": null,
|
||||
"8_FONT_SUB": "font_ttsatoshi_demibold_18_de.json"
|
||||
},
|
||||
"T3W1": {
|
||||
"LayoutTBD": {
|
||||
"1_FONT_NORMAL": "font_ttsatoshi_demibold_21_de.json",
|
||||
"2_FONT_BOLD": "font_ttsatoshi_demibold_21_de.json",
|
||||
"3_FONT_MONO": "font_robotomono_medium_21_de.json",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"fonts": {
|
||||
"##Safe3": {
|
||||
"Samson": {
|
||||
"1_FONT_NORMAL": "font_pixeloperator_regular_8_es.json",
|
||||
"2_FONT_BOLD": "font_pixeloperator_bold_8_es.json",
|
||||
"3_FONT_MONO": "font_pixeloperatormono_regular_8_es.json",
|
||||
@ -10,7 +10,7 @@
|
||||
"7_FONT_BOLD_UPPER": "font_pixeloperator_bold_8_upper_es.json",
|
||||
"8_FONT_SUB": null
|
||||
},
|
||||
"T2T1": {
|
||||
"Bolt": {
|
||||
"1_FONT_NORMAL": "font_tthoves_regular_21_es.json",
|
||||
"2_FONT_BOLD": null,
|
||||
"3_FONT_MONO": "font_robotomono_medium_20_es.json",
|
||||
@ -20,7 +20,7 @@
|
||||
"7_FONT_BOLD_UPPER": "font_tthoves_bold_17_upper_es.json",
|
||||
"8_FONT_SUB": null
|
||||
},
|
||||
"T3T1": {
|
||||
"Quicksilver": {
|
||||
"1_FONT_NORMAL": "font_ttsatoshi_demibold_21_es.json",
|
||||
"2_FONT_BOLD": "font_ttsatoshi_demibold_21_es.json",
|
||||
"3_FONT_MONO": "font_robotomono_medium_21_es.json",
|
||||
@ -30,7 +30,7 @@
|
||||
"7_FONT_BOLD_UPPER": null,
|
||||
"8_FONT_SUB": "font_ttsatoshi_demibold_18_es.json"
|
||||
},
|
||||
"T3W1": {
|
||||
"LayoutTBD": {
|
||||
"1_FONT_NORMAL": "font_ttsatoshi_demibold_21_es.json",
|
||||
"2_FONT_BOLD": "font_ttsatoshi_demibold_21_es.json",
|
||||
"3_FONT_MONO": "font_robotomono_medium_21_es.json",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"fonts": {
|
||||
"##Safe3": {
|
||||
"Samson": {
|
||||
"1_FONT_NORMAL": "font_pixeloperator_regular_8_fr.json",
|
||||
"2_FONT_BOLD": "font_pixeloperator_bold_8_fr.json",
|
||||
"3_FONT_MONO": "font_pixeloperatormono_regular_8_fr.json",
|
||||
@ -10,7 +10,7 @@
|
||||
"7_FONT_BOLD_UPPER": "font_pixeloperator_bold_8_upper_fr.json",
|
||||
"8_FONT_SUB": null
|
||||
},
|
||||
"T2T1": {
|
||||
"Bolt": {
|
||||
"1_FONT_NORMAL": "font_tthoves_regular_21_fr.json",
|
||||
"2_FONT_BOLD": null,
|
||||
"3_FONT_MONO": "font_robotomono_medium_20_fr.json",
|
||||
@ -20,7 +20,7 @@
|
||||
"7_FONT_BOLD_UPPER": "font_tthoves_bold_17_upper_fr.json",
|
||||
"8_FONT_SUB": null
|
||||
},
|
||||
"T3T1": {
|
||||
"Quicksilver": {
|
||||
"1_FONT_NORMAL": "font_ttsatoshi_demibold_21_fr.json",
|
||||
"2_FONT_BOLD": "font_ttsatoshi_demibold_21_fr.json",
|
||||
"3_FONT_MONO": "font_robotomono_medium_21_fr.json",
|
||||
@ -30,7 +30,7 @@
|
||||
"7_FONT_BOLD_UPPER": null,
|
||||
"8_FONT_SUB": "font_ttsatoshi_demibold_18_fr.json"
|
||||
},
|
||||
"T3W1": {
|
||||
"LayoutTBD": {
|
||||
"1_FONT_NORMAL": "font_ttsatoshi_demibold_21_fr.json",
|
||||
"2_FONT_BOLD": "font_ttsatoshi_demibold_21_fr.json",
|
||||
"3_FONT_MONO": "font_robotomono_medium_21_fr.json",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"fonts": {
|
||||
"##Safe3": {
|
||||
"Samson": {
|
||||
"1_FONT_NORMAL": "font_pixeloperator_regular_8_it.json",
|
||||
"2_FONT_BOLD": "font_pixeloperator_bold_8_it.json",
|
||||
"3_FONT_MONO": "font_pixeloperatormono_regular_8_it.json",
|
||||
@ -10,7 +10,7 @@
|
||||
"7_FONT_BOLD_UPPER": "font_pixeloperator_bold_8_upper_it.json",
|
||||
"8_FONT_SUB": null
|
||||
},
|
||||
"T2T1": {
|
||||
"Bolt": {
|
||||
"1_FONT_NORMAL": "font_tthoves_regular_21_it.json",
|
||||
"2_FONT_BOLD": null,
|
||||
"3_FONT_MONO": "font_robotomono_medium_20_it.json",
|
||||
@ -20,7 +20,7 @@
|
||||
"7_FONT_BOLD_UPPER": "font_tthoves_bold_17_upper_it.json",
|
||||
"8_FONT_SUB": null
|
||||
},
|
||||
"T3T1": {
|
||||
"Quicksilver": {
|
||||
"1_FONT_NORMAL": "font_ttsatoshi_demibold_21_it.json",
|
||||
"2_FONT_BOLD": "font_ttsatoshi_demibold_21_it.json",
|
||||
"3_FONT_MONO": "font_robotomono_medium_21_it.json",
|
||||
@ -30,7 +30,7 @@
|
||||
"7_FONT_BOLD_UPPER": null,
|
||||
"8_FONT_SUB": "font_ttsatoshi_demibold_18_it.json"
|
||||
},
|
||||
"T3W1": {
|
||||
"LayoutTBD": {
|
||||
"1_FONT_NORMAL": "font_ttsatoshi_demibold_21_it.json",
|
||||
"2_FONT_BOLD": "font_ttsatoshi_demibold_21_it.json",
|
||||
"3_FONT_MONO": "font_robotomono_medium_21_it.json",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"fonts": {
|
||||
"##Safe3": {
|
||||
"Samson": {
|
||||
"1_FONT_NORMAL": "font_pixeloperator_regular_8_pt.json",
|
||||
"2_FONT_BOLD": "font_pixeloperator_bold_8_pt.json",
|
||||
"3_FONT_MONO": "font_pixeloperatormono_regular_8_pt.json",
|
||||
@ -10,7 +10,7 @@
|
||||
"7_FONT_BOLD_UPPER": "font_pixeloperator_bold_8_upper_pt.json",
|
||||
"8_FONT_SUB": null
|
||||
},
|
||||
"T2T1": {
|
||||
"Bolt": {
|
||||
"1_FONT_NORMAL": "font_tthoves_regular_21_pt.json",
|
||||
"2_FONT_BOLD": null,
|
||||
"3_FONT_MONO": "font_robotomono_medium_20_pt.json",
|
||||
@ -20,7 +20,7 @@
|
||||
"7_FONT_BOLD_UPPER": "font_tthoves_bold_17_upper_pt.json",
|
||||
"8_FONT_SUB": null
|
||||
},
|
||||
"T3T1": {
|
||||
"Quicksilver": {
|
||||
"1_FONT_NORMAL": "font_ttsatoshi_demibold_21_pt.json",
|
||||
"2_FONT_BOLD": "font_ttsatoshi_demibold_21_pt.json",
|
||||
"3_FONT_MONO": "font_robotomono_medium_21_pt.json",
|
||||
@ -30,7 +30,7 @@
|
||||
"7_FONT_BOLD_UPPER": null,
|
||||
"8_FONT_SUB": "font_ttsatoshi_demibold_18_pt.json"
|
||||
},
|
||||
"T3W1": {
|
||||
"LayoutTBD": {
|
||||
"1_FONT_NORMAL": "font_ttsatoshi_demibold_21_pt.json",
|
||||
"2_FONT_BOLD": "font_ttsatoshi_demibold_21_pt.json",
|
||||
"3_FONT_MONO": "font_robotomono_medium_21_pt.json",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"fonts": {
|
||||
"##Safe3": {
|
||||
"Samson": {
|
||||
"1_FONT_NORMAL": "font_pixeloperator_regular_8_tr.json",
|
||||
"2_FONT_BOLD": "font_pixeloperator_bold_8_tr.json",
|
||||
"3_FONT_MONO": "font_pixeloperatormono_regular_8_tr.json",
|
||||
@ -10,7 +10,7 @@
|
||||
"7_FONT_BOLD_UPPER": "font_pixeloperator_bold_8_upper_tr.json",
|
||||
"8_FONT_SUB": null
|
||||
},
|
||||
"T2T1": {
|
||||
"Bolt": {
|
||||
"1_FONT_NORMAL": "font_tthoves_regular_21_tr.json",
|
||||
"2_FONT_BOLD": null,
|
||||
"3_FONT_MONO": "font_robotomono_medium_20_tr.json",
|
||||
@ -20,7 +20,7 @@
|
||||
"7_FONT_BOLD_UPPER": "font_tthoves_bold_17_upper_tr.json",
|
||||
"8_FONT_SUB": null
|
||||
},
|
||||
"T3T1": {
|
||||
"Quicksilver": {
|
||||
"1_FONT_NORMAL": "font_ttsatoshi_demibold_21_tr.json",
|
||||
"2_FONT_BOLD": "font_ttsatoshi_demibold_21_tr.json",
|
||||
"3_FONT_MONO": "font_robotomono_medium_21_tr.json",
|
||||
@ -30,7 +30,7 @@
|
||||
"7_FONT_BOLD_UPPER": null,
|
||||
"8_FONT_SUB": "font_ttsatoshi_demibold_18_tr.json"
|
||||
},
|
||||
"T3W1": {
|
||||
"LayoutTBD": {
|
||||
"1_FONT_NORMAL": "font_ttsatoshi_demibold_21_tr.json",
|
||||
"2_FONT_BOLD": "font_ttsatoshi_demibold_21_tr.json",
|
||||
"3_FONT_MONO": "font_robotomono_medium_21_tr.json",
|
||||
|
@ -323,12 +323,12 @@ def blob_from_defs(
|
||||
|
||||
translations = TranslatedStrings.from_items(translations_ordered)
|
||||
|
||||
if model.internal_name not in lang_data["fonts"]:
|
||||
if layout_type.name not in lang_data["fonts"]:
|
||||
raise ValueError(
|
||||
f"Model {model.internal_name} not found in header for {json_header['language']} v{json_header['version']}"
|
||||
f"Model {layout_type.name} not found in header for {json_header['language']} v{json_header['version']}"
|
||||
)
|
||||
|
||||
model_fonts = lang_data["fonts"][model.internal_name]
|
||||
model_fonts = lang_data["fonts"][layout_type.name]
|
||||
fonts = FontsTable.from_dir(model_fonts, fonts_dir)
|
||||
|
||||
translations_bytes = translations.build()
|
||||
|
Loading…
Reference in New Issue
Block a user