|
import os |
|
import locale |
|
import commentjson as json |
|
|
|
class I18nAuto: |
|
def __init__(self): |
|
if os.path.exists("config.json"): |
|
with open("config.json", "r", encoding='utf-8') as f: |
|
config = json.load(f) |
|
else: |
|
config = {} |
|
lang_config = config.get("language", "auto") |
|
language = os.environ.get("LANGUAGE", lang_config) |
|
if language == "auto": |
|
language = locale.getdefaultlocale()[0] |
|
self.language_map = {} |
|
self.file_is_exists = os.path.isfile(f"./locale/{language}.json") |
|
if self.file_is_exists: |
|
with open(f"./locale/{language}.json", "r", encoding="utf-8") as f: |
|
self.language_map.update(json.load(f)) |
|
|
|
def __call__(self, key): |
|
if self.file_is_exists and key in self.language_map: |
|
return self.language_map[key] |
|
else: |
|
return key |
|
|