diff --git a/i18n/i18n.py b/i18n/i18n.py index 00e91bf..dab3b0b 100644 --- a/i18n/i18n.py +++ b/i18n/i18n.py @@ -1,6 +1,7 @@ import json import locale import os +from configs import singleton_variable def load_language_list(language): @@ -8,13 +9,13 @@ def load_language_list(language): language_list = json.load(f) return language_list - +@singleton_variable class I18nAuto: def __init__(self, language=None): if language in ["Auto", None]: - language = locale.getdefaultlocale()[ - 0 - ] # getlocale can't identify the system's language ((None, None)) + language = locale.getdefaultlocale( + envvars=('LANG', 'LC_ALL', 'LC_CTYPE', 'LANGUAGE') + )[0] if not os.path.exists(f"./i18n/locale/{language}.json"): language = "en_US" self.language = language @@ -24,4 +25,4 @@ class I18nAuto: return self.language_map.get(key, key) def __repr__(self): - return "Use Language: " + self.language + return "Language: " + self.language