From 2369f01b1aaf8a5a087b7667c18990f3b8a181df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Mon, 3 Jun 2024 15:18:22 +0900 Subject: [PATCH] fix(i18n): cannot get locale in MacOS --- i18n/i18n.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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