1
0
forked from me/IronOS
This commit is contained in:
Ben V. Brown
2022-12-05 22:29:10 +11:00
parent e9a28c3671
commit 98cbce6552
2 changed files with 49 additions and 40 deletions

View File

@@ -221,7 +221,6 @@ def get_letter_counts(defs: dict, lang: dict, build_version: str) -> Dict:
msg = obj[eid]["description"] msg = obj[eid]["description"]
big_font_messages.append(msg) big_font_messages.append(msg)
obj = lang["menuGroups"] obj = lang["menuGroups"]
for mod in defs["menuGroups"]: for mod in defs["menuGroups"]:
eid = mod["id"] eid = mod["id"]
@@ -237,7 +236,6 @@ def get_letter_counts(defs: dict, lang: dict, build_version: str) -> Dict:
msg = obj[eid]["description"] msg = obj[eid]["description"]
big_font_messages.append(msg) big_font_messages.append(msg)
constants = get_constants() constants = get_constants()
for x in constants: for x in constants:
if x[0].startswith("Small"): if x[0].startswith("Small"):
@@ -245,7 +243,6 @@ def get_letter_counts(defs: dict, lang: dict, build_version: str) -> Dict:
else: else:
big_font_messages.append(x[1]) big_font_messages.append(x[1])
small_font_messages.extend(get_debug_menu()) small_font_messages.extend(get_debug_menu())
small_font_messages.extend(get_accel_names_list()) small_font_messages.extend(get_accel_names_list())
small_font_messages.extend(get_power_source_list()) small_font_messages.extend(get_power_source_list())
@@ -549,9 +546,9 @@ def get_forced_first_symbols() -> List[str]:
"d", "d",
"e", "e",
"f", "f",
" ",# We lock these to ease printing functions; and they are always included due to constants " ", # We lock these to ease printing functions; and they are always included due to constants
"-", "-",
"+" "+",
] ]
return forced_first_symbols return forced_first_symbols
@@ -718,9 +715,8 @@ def prepare_languages(
font_data, font_data,
) )
def render_font_block( data: LanguageData,
f: TextIO, def render_font_block(data: LanguageData, f: TextIO, compress_font: bool = False):
compress_font: bool = False):
font_map = data.font_map font_map = data.font_map
small_font_symbol_conversion_table = build_symbol_conversion_map( small_font_symbol_conversion_table = build_symbol_conversion_map(
@@ -782,6 +778,7 @@ def render_font_block( data: LanguageData,
"};\n" "};\n"
) )
def write_language( def write_language(
data: LanguageData, data: LanguageData,
f: TextIO, f: TextIO,
@@ -814,7 +811,7 @@ def write_language(
f.write(f"\n// ---- {lang_name} ----\n\n") f.write(f"\n// ---- {lang_name} ----\n\n")
render_font_block(data,f,compress_font) render_font_block(data, f, compress_font)
f.write(f"\n// ---- {lang_name} ----\n\n") f.write(f"\n// ---- {lang_name} ----\n\n")
@@ -875,8 +872,6 @@ def write_languages(
compress_font: bool = False, compress_font: bool = False,
) -> None: ) -> None:
defs = data.defs defs = data.defs
build_version = data.build_version
font_map = data.font_map
small_font_symbol_conversion_table = build_symbol_conversion_map( small_font_symbol_conversion_table = build_symbol_conversion_map(
data.small_text_symbols data.small_text_symbols
@@ -885,7 +880,6 @@ def write_languages(
data.large_text_symbols data.large_text_symbols
) )
language_codes: List[str] = [lang["languageCode"] for lang in data.langs] language_codes: List[str] = [lang["languageCode"] for lang in data.langs]
logging.info(f"Generating block for {language_codes}") logging.info(f"Generating block for {language_codes}")
@@ -897,11 +891,10 @@ def write_languages(
f.write(f"\n// ---- {lang_names} ----\n\n") f.write(f"\n// ---- {lang_names} ----\n\n")
render_font_block(data,f,compress_font) render_font_block(data, f, compress_font)
f.write(f"\n// ---- {lang_names} ----\n\n") f.write(f"\n// ---- {lang_names} ----\n\n")
translation_common_text = get_translation_common_text( translation_common_text = get_translation_common_text(
small_font_symbol_conversion_table, large_font_symbol_conversion_table small_font_symbol_conversion_table, large_font_symbol_conversion_table
) )
@@ -917,7 +910,11 @@ def write_languages(
lang_code = lang["languageCode"] lang_code = lang["languageCode"]
translation_strings_and_indices_text = ( translation_strings_and_indices_text = (
get_translation_strings_and_indices_text( get_translation_strings_and_indices_text(
lang, defs, small_font_symbol_conversion_table,large_font_symbol_conversion_table, suffix=f"_{lang_code}" lang,
defs,
small_font_symbol_conversion_table,
large_font_symbol_conversion_table,
suffix=f"_{lang_code}",
) )
) )
f.write(translation_strings_and_indices_text) f.write(translation_strings_and_indices_text)
@@ -1068,7 +1065,9 @@ def get_translation_strings_and_indices_text(
record = TranslatedStringLocation(len(byte_encoded_strings) - 1, 0) record = TranslatedStringLocation(len(byte_encoded_strings) - 1, 0)
translated_string_lookups[translation_id] = record translated_string_lookups[translation_id] = record
def encode_string_and_add(message: str, translation_id: str,force_large_text:bool=False): def encode_string_and_add(
message: str, translation_id: str, force_large_text: bool = False
):
encoded_data: bytes encoded_data: bytes
if force_large_text is False and test_is_small_font(message): if force_large_text is False and test_is_small_font(message):
encoded_data = convert_string_bytes( encoded_data = convert_string_bytes(
@@ -1086,7 +1085,7 @@ def get_translation_strings_and_indices_text(
lang_data = lang["menuOptions"][record["id"]] lang_data = lang["menuOptions"][record["id"]]
# Add to translations the menu text and the description # Add to translations the menu text and the description
encode_string_and_add( encode_string_and_add(
lang_data["description"], "menuOptions" + record["id"] + "description",True lang_data["description"], "menuOptions" + record["id"] + "description", True
) )
encode_string_and_add( encode_string_and_add(
lang_data["displayText"], "menuOptions" + record["id"] + "displayText" lang_data["displayText"], "menuOptions" + record["id"] + "displayText"
@@ -1096,7 +1095,7 @@ def get_translation_strings_and_indices_text(
lang_data = lang["menuGroups"][record["id"]] lang_data = lang["menuGroups"][record["id"]]
# Add to translations the menu text and the description # Add to translations the menu text and the description
encode_string_and_add( encode_string_and_add(
lang_data["description"], "menuGroups" + record["id"] + "description",True lang_data["description"], "menuGroups" + record["id"] + "description", True
) )
encode_string_and_add( encode_string_and_add(
lang_data["displayText"], "menuGroups" + record["id"] + "displayText" lang_data["displayText"], "menuGroups" + record["id"] + "displayText"
@@ -1112,7 +1111,7 @@ def get_translation_strings_and_indices_text(
for index, record in enumerate(defs["characters"]): for index, record in enumerate(defs["characters"]):
lang_data = lang["characters"][record["id"]] lang_data = lang["characters"][record["id"]]
# Add to translations the menu text and the description # Add to translations the menu text and the description
encode_string_and_add(lang_data, "characters" + record["id"] + "Message",True) encode_string_and_add(lang_data, "characters" + record["id"] + "Message", True)
# ----- Write the string table: # ----- Write the string table:
offset = 0 offset = 0
@@ -1125,9 +1124,7 @@ def get_translation_strings_and_indices_text(
translation_strings_text += ' "\\0"\n' translation_strings_text += ' "\\0"\n'
# Write a comment of what it is # Write a comment of what it is
translation_strings_text += ( translation_strings_text += f" // {offset: >4}: {escape(byte_encoded_strings_unencoded_reference[i])}\n"
f" // {offset: >4}: {escape(byte_encoded_strings_unencoded_reference[i])}\n"
)
# Write the actual data # Write the actual data
translation_strings_text += f' "{bytes_to_escaped(encoded_bytes)}"' translation_strings_text += f' "{bytes_to_escaped(encoded_bytes)}"'
offset += len(encoded_bytes) + 1 offset += len(encoded_bytes) + 1
@@ -1141,7 +1138,7 @@ def get_translation_strings_and_indices_text(
position = 0 position = 0
for string in byte_encoded_strings: for string in byte_encoded_strings:
string_index_commulative_lengths.append(position) string_index_commulative_lengths.append(position)
position += len(string)+1 position += len(string) + 1
translation_indices_text = " .indices = {\n" translation_indices_text = " .indices = {\n"
@@ -1154,7 +1151,8 @@ def get_translation_strings_and_indices_text(
translated_index = translated_string_lookups[key] translated_index = translated_string_lookups[key]
string_index = translated_index.byte_encoded_translation_index string_index = translated_index.byte_encoded_translation_index
start_index = ( start_index = (
string_index_commulative_lengths[string_index] + translated_index.str_start_offset string_index_commulative_lengths[string_index]
+ translated_index.str_start_offset
) )
translation_indices_text += ( translation_indices_text += (
@@ -1172,7 +1170,8 @@ def get_translation_strings_and_indices_text(
translated_index = translated_string_lookups[key] translated_index = translated_string_lookups[key]
string_index = translated_index.byte_encoded_translation_index string_index = translated_index.byte_encoded_translation_index
start_index = ( start_index = (
string_index_commulative_lengths[string_index] + translated_index.str_start_offset string_index_commulative_lengths[string_index]
+ translated_index.str_start_offset
) )
translation_indices_text += ( translation_indices_text += (
@@ -1183,7 +1182,7 @@ def get_translation_strings_and_indices_text(
# Now for the fun ones, where they are nested and ordered # Now for the fun ones, where they are nested and ordered
def write_grouped_indexes(output_text:str,name: str, mainKey: str, subKey: str): def write_grouped_indexes(output_text: str, name: str, mainKey: str, subKey: str):
max_len = 30 max_len = 30
output_text += f" .{name} = {{\n" output_text += f" .{name} = {{\n"
for index, record in enumerate(defs[mainKey]): for index, record in enumerate(defs[mainKey]):
@@ -1193,7 +1192,8 @@ def get_translation_strings_and_indices_text(
translated_index = translated_string_lookups[key] translated_index = translated_string_lookups[key]
string_index = translated_index.byte_encoded_translation_index string_index = translated_index.byte_encoded_translation_index
start_index = ( start_index = (
string_index_commulative_lengths[string_index] + translated_index.str_start_offset string_index_commulative_lengths[string_index]
+ translated_index.str_start_offset
) )
output_text += f" /* {record['id'].ljust(max_len)[:max_len]} */ {start_index}, // {escape(raw_string)}\n" output_text += f" /* {record['id'].ljust(max_len)[:max_len]} */ {start_index}, // {escape(raw_string)}\n"
@@ -1201,12 +1201,21 @@ def get_translation_strings_and_indices_text(
output_text += f" }}, // {name}\n\n" output_text += f" }}, // {name}\n\n"
return output_text return output_text
translation_indices_text=write_grouped_indexes(translation_indices_text,"SettingsDescriptions", "menuOptions", "description") translation_indices_text = write_grouped_indexes(
translation_indices_text=write_grouped_indexes(translation_indices_text,"SettingsShortNames", "menuOptions", "displayText") translation_indices_text, "SettingsDescriptions", "menuOptions", "description"
translation_indices_text=write_grouped_indexes(translation_indices_text, )
"SettingsMenuEntriesDescriptions", "menuGroups", "description" translation_indices_text = write_grouped_indexes(
translation_indices_text, "SettingsShortNames", "menuOptions", "displayText"
)
translation_indices_text = write_grouped_indexes(
translation_indices_text,
"SettingsMenuEntriesDescriptions",
"menuGroups",
"description",
)
translation_indices_text = write_grouped_indexes(
translation_indices_text, "SettingsMenuEntries", "menuGroups", "displayText"
) )
translation_indices_text=write_grouped_indexes(translation_indices_text,"SettingsMenuEntries", "menuGroups", "displayText")
translation_indices_text += " }, // .indices\n\n" translation_indices_text += " }, // .indices\n\n"

View File

@@ -51,7 +51,7 @@ for key in data["menuGroups"]:
data["menuGroups"][key]["displayText"] = new_data data["menuGroups"][key]["displayText"] = new_data
del data["menuGroups"][key]["text2"] del data["menuGroups"][key]["text2"]
else: else:
data["menuGroups"][key]["displayText"] = old_data["text2"].replace("\n","") data["menuGroups"][key]["displayText"] = old_data["text2"].replace("\n", "")
del data["menuGroups"][key]["text2"] del data["menuGroups"][key]["text2"]
data["menuGroups"][key]["description"] = data["menuGroups"][key]["desc"] data["menuGroups"][key]["description"] = data["menuGroups"][key]["desc"]
del data["menuGroups"][key]["desc"] del data["menuGroups"][key]["desc"]
@@ -66,7 +66,7 @@ for key in data["menuOptions"]:
data["menuOptions"][key]["displayText"] = new_data data["menuOptions"][key]["displayText"] = new_data
del data["menuOptions"][key]["text2"] del data["menuOptions"][key]["text2"]
else: else:
data["menuOptions"][key]["displayText"] =old_data["text2"].replace("\n","") data["menuOptions"][key]["displayText"] = old_data["text2"].replace("\n", "")
del data["menuOptions"][key]["text2"] del data["menuOptions"][key]["text2"]
data["menuOptions"][key]["description"] = data["menuOptions"][key]["desc"] data["menuOptions"][key]["description"] = data["menuOptions"][key]["desc"]
del data["menuOptions"][key]["desc"] del data["menuOptions"][key]["desc"]