Spaces:
Running
Running
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] # get the language code of the system (ex. zh_CN) | |
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 | |