From 1b0885bffea90c533ef861f4365164c236113581 Mon Sep 17 00:00:00 2001 From: Donald Zou Date: Sat, 23 Nov 2024 14:55:07 +0800 Subject: [PATCH] Update verify_locale_files.py --- src/static/locale/verify_locale_files.py | 110 +++++++++++------------ 1 file changed, 54 insertions(+), 56 deletions(-) diff --git a/src/static/locale/verify_locale_files.py b/src/static/locale/verify_locale_files.py index c2a7a95..994b6a5 100644 --- a/src/static/locale/verify_locale_files.py +++ b/src/static/locale/verify_locale_files.py @@ -1,63 +1,61 @@ import json - active_languages = json.loads(open("active_languages.json", "r").read()) language_template = json.loads(open("language_template.json", "r").read()) -welcome = "WGDashboard Locale File Verification [by @donaldzou]" +if __name__ == "__main__": + welcome = "WGDashboard Locale File Verification [by @donaldzou]" + print("="*(len(welcome) + 4)) + print(f"| {welcome} |") + print("="*(len(welcome) + 4)) + print() + print("Active Languages\n") + status = False -print("="*(len(welcome) + 4)) -print(f"| {welcome} |") -print("="*(len(welcome) + 4)) -print() -print("Active Languages\n") - -status = False - -for language in active_languages: - print(f"{language['lang_name']} | {language['lang_id']}") - -lang_ids = list(map(lambda x: x['lang_id'], active_languages)) -print() - -lang_id = "" - -while not status: - lang_id = input("Please enter the language ID to verify: ") - if lang_id not in lang_ids: - print(f'{lang_id} is not a valid language ID') - elif lang_id == 'en': - print(f'{lang_id} is not a editable language') - else: - status = True + for language in active_languages: + print(f"{language['lang_name']} | {language['lang_id']}") - -with open(f"{lang_id}.json", "r") as f: - lang_file = json.load(f) - -# Identify missing and deprecated translations -missing_translation = [ - key for key in language_template - if key not in lang_file or not lang_file[key].strip() - ] - -deprecated_translation = [ - key for key in lang_file - if key not in language_template - ] - -with open(f"{lang_id}.json", "w") as f: - new_lang_file = dict(lang_file) - for key in missing_translation: - new_lang_file[key] = "" - - for key in deprecated_translation: - new_lang_file.pop(key) - - f.write(json.dumps(new_lang_file, ensure_ascii=False, indent='\t')) + lang_ids = list(map(lambda x: x['lang_id'], active_languages)) + print() + + lang_id = "" + + while not status: + lang_id = input("Please enter the language ID to verify: ") + if lang_id not in lang_ids: + print(f'{lang_id} is not a valid language ID') + elif lang_id == 'en': + print(f'{lang_id} is not a editable language') + else: + status = True -# Print missing translations -print(f"[Missing Translations] {len(missing_translation)} translation{'s' if len(missing_translation) > 1 else ''}") - - -# Print deprecated translations -print(f"[Deprecated Translations] {len(deprecated_translation)} translation{'s' if len(deprecated_translation) > 1 else ''}") \ No newline at end of file + with open(f"{lang_id}.json", "r") as f: + lang_file = json.load(f) + + # Identify missing and deprecated translations + missing_translation = [ + key for key in language_template + if key not in lang_file or not lang_file[key].strip() + ] + + deprecated_translation = [ + key for key in lang_file + if key not in language_template + ] + + with open(f"{lang_id}.json", "w") as f: + new_lang_file = dict(lang_file) + for key in missing_translation: + new_lang_file[key] = "" + + for key in deprecated_translation: + new_lang_file.pop(key) + + f.write(json.dumps(new_lang_file, ensure_ascii=False, indent='\t')) + + + print() + # Print missing translations + print(f"\t[Missing Translations] {len(missing_translation)} translation{'s' if len(missing_translation) > 1 else ''}") + # Print deprecated translations + print(f"\t[Deprecated Translations] {len(deprecated_translation)} translation{'s' if len(deprecated_translation) > 1 else ''}") + print(f"\t[Note] All missing translations are added into {lang_id}.json, all deprecated translations are removed from {lang_id}.json") \ No newline at end of file