Refactor make_translation.py to split parsing and writing
This commit is contained in:
@@ -406,18 +406,37 @@ def escape(string: str) -> str:
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class TranslationItem:
|
class LanguageData:
|
||||||
info: str
|
lang: dict
|
||||||
str_index: int
|
defs: dict
|
||||||
|
build_version: str
|
||||||
|
sym_list: List[str]
|
||||||
|
font_map: FontMap
|
||||||
|
symbol_conversion_table: Dict[str, bytes]
|
||||||
|
|
||||||
|
|
||||||
def write_language(lang: dict, defs: dict, build_version: str, f: TextIO) -> None:
|
def prepare_language(lang: dict, defs: dict, build_version: str) -> LanguageData:
|
||||||
language_code: str = lang["languageCode"]
|
language_code: str = lang["languageCode"]
|
||||||
logging.info(f"Generating block for {language_code}")
|
logging.info(f"Preparing language data for {language_code}")
|
||||||
# Iterate over all of the text to build up the symbols & counts
|
# Iterate over all of the text to build up the symbols & counts
|
||||||
text_list = get_letter_counts(defs, lang, build_version)
|
text_list = get_letter_counts(defs, lang, build_version)
|
||||||
# From the letter counts, need to make a symbol translator & write out the font
|
# From the letter counts, need to make a symbol translator & write out the font
|
||||||
sym_list, font_map, symbol_conversion_table = get_font_map_and_table(text_list)
|
sym_list, font_map, symbol_conversion_table = get_font_map_and_table(text_list)
|
||||||
|
return LanguageData(
|
||||||
|
lang, defs, build_version, sym_list, font_map, symbol_conversion_table
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def write_language(data: LanguageData, f: TextIO) -> None:
|
||||||
|
lang = data.lang
|
||||||
|
defs = data.defs
|
||||||
|
build_version = data.build_version
|
||||||
|
sym_list = data.sym_list
|
||||||
|
font_map = data.font_map
|
||||||
|
symbol_conversion_table = data.symbol_conversion_table
|
||||||
|
|
||||||
|
language_code: str = lang["languageCode"]
|
||||||
|
logging.info(f"Generating block for {language_code}")
|
||||||
font_table_text = make_font_table_cpp(sym_list, font_map, symbol_conversion_table)
|
font_table_text = make_font_table_cpp(sym_list, font_map, symbol_conversion_table)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -470,6 +489,12 @@ def get_translation_common_text(
|
|||||||
return translation_common_text
|
return translation_common_text
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class TranslationItem:
|
||||||
|
info: str
|
||||||
|
str_index: int
|
||||||
|
|
||||||
|
|
||||||
def get_translation_strings_and_indices_text(
|
def get_translation_strings_and_indices_text(
|
||||||
lang: dict, defs: dict, symbol_conversion_table: Dict[str, bytes]
|
lang: dict, defs: dict, symbol_conversion_table: Dict[str, bytes]
|
||||||
) -> str:
|
) -> str:
|
||||||
@@ -730,9 +755,10 @@ def main() -> None:
|
|||||||
|
|
||||||
lang_ = read_translation(json_dir, args.languageCode)
|
lang_ = read_translation(json_dir, args.languageCode)
|
||||||
defs_ = load_json(os.path.join(json_dir, "translations_def.js"), True)
|
defs_ = load_json(os.path.join(json_dir, "translations_def.js"), True)
|
||||||
|
language_data = prepare_language(lang_, defs_, build_version)
|
||||||
out_ = args.output
|
out_ = args.output
|
||||||
write_start(out_)
|
write_start(out_)
|
||||||
write_language(lang_, defs_, build_version, out_)
|
write_language(language_data, out_)
|
||||||
|
|
||||||
logging.info("Done")
|
logging.info("Done")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user