biosn2 commited on
Commit
92491d6
·
verified ·
1 Parent(s): 18f3236

Upload tools/i18n/i18n.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. tools/i18n/i18n.py +36 -0
tools/i18n/i18n.py ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import locale
3
+ import os
4
+
5
+ I18N_JSON_DIR : os.PathLike = os.path.join(os.path.dirname(os.path.relpath(__file__)), 'locale')
6
+
7
+ def load_language_list(language):
8
+ with open(os.path.join(I18N_JSON_DIR, f"{language}.json"), "r", encoding="utf-8") as f:
9
+ language_list = json.load(f)
10
+ return language_list
11
+
12
+ def scan_language_list():
13
+ language_list = []
14
+ for name in os.listdir(I18N_JSON_DIR):
15
+ if name.endswith(".json"):language_list.append(name.split('.')[0])
16
+ return language_list
17
+
18
+ class I18nAuto:
19
+ def __init__(self, language=None):
20
+ if language in ["Auto", None]:
21
+ language = locale.getdefaultlocale()[0]
22
+ # getlocale can't identify the system's language ((None, None))
23
+ if not os.path.exists(os.path.join(I18N_JSON_DIR, f"{language}.json")):
24
+ language = "en_US"
25
+ self.language = language
26
+ self.language_map = load_language_list(language)
27
+
28
+ def __call__(self, key):
29
+ return self.language_map.get(key, key)
30
+
31
+ def __repr__(self):
32
+ return "Use Language: " + self.language
33
+
34
+ if __name__ == "__main__":
35
+ i18n = I18nAuto(language='en_US')
36
+ print(i18n)