feat: Unknown language strings fall back to en_US.

This commit is contained in:
Terry Geng 2020-07-11 11:57:09 +08:00
parent f76bb2ab2a
commit ff2688fae1
No known key found for this signature in database
GPG Key ID: F982F8EA1DF720E7

View File

@ -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)