From ff2688fae1e5663c2ca626fecc045123f2d240bd Mon Sep 17 00:00:00 2001 From: Terry Geng Date: Sat, 11 Jul 2020 11:57:09 +0800 Subject: [PATCH] feat: Unknown language strings fall back to en_US. --- constants.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/constants.py b/constants.py index 2db849d..3936be0 100644 --- a/constants.py +++ b/constants.py @@ -2,18 +2,24 @@ import json import variables as var +default_lang_dict = {} lang_dict = {} def load_lang(lang): - global lang_dict + global lang_dict, default_lang_dict + with open("lang/en_US", "r") as f: + default_lang_dict = json.load(f) with open(f"lang/{lang}", "r") as f: lang_dict = json.load(f) def tr_cli(option, *argv, **kwargs): try: - string = lang_dict['cli'][option] + if option in lang_dict['cli'] and lang_dict['cli'][option]: + string = lang_dict['cli'][option] + else: + string = default_lang_dict['cli'][option] except KeyError: raise KeyError("Missed strings in language file: '{string}'. ".format(string=option)) return _tr(string, *argv, **kwargs) @@ -21,7 +27,10 @@ def tr_cli(option, *argv, **kwargs): def tr_web(option, *argv, **kwargs): try: - string = lang_dict['web'][option] + if option in lang_dict['web'] and lang_dict['web'][option]: + string = lang_dict['web'][option] + else: + string = default_lang_dict['web'][option] except KeyError: raise KeyError("Missed strings in language file: '{string}'. ".format(string=option)) return _tr(string, *argv, **kwargs)