-
Notifications
You must be signed in to change notification settings - Fork 38
Expand file tree
/
Copy pathi18n.py
More file actions
76 lines (63 loc) · 1.75 KB
/
Copy pathi18n.py
File metadata and controls
76 lines (63 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import locale
import yaml
from pathlib import Path
_strings: dict = {}
_lang = "en"
_dir = Path(__file__).parent / "i18n"
def _detect_system_lang() -> str:
"""Return 'zh' if system locale is Chinese, else 'en'."""
try:
lang_code = locale.getdefaultlocale()[0] or ""
if lang_code.startswith("zh"):
return "zh"
except Exception:
pass
return "en"
def set_lang(lang: str):
global _lang, _strings
_lang = lang
f = _dir / f"{lang}.yaml"
if not f.exists():
f = _dir / "en.yaml"
_strings = yaml.safe_load(f.read_text("utf-8")) or {}
def get_lang() -> str:
return _lang
def t(key: str) -> str:
return _strings.get(key, key)
# Detect system language on import
set_lang(_detect_system_lang())
# Shared language list: (code, native_name)
LANGUAGES = [
("auto", None), # display name comes from t("asr_lang_auto")
("ja", "日本語"),
("en", "English"),
("zh", "中文"),
("ko", "한국어"),
("fr", "Français"),
("de", "Deutsch"),
("es", "Español"),
("ru", "Русский"),
("pt", "Português"),
("it", "Italiano"),
("nl", "Nederlands"),
("pl", "Polski"),
("tr", "Türkçe"),
("ar", "العربية"),
("th", "ไทย"),
("vi", "Tiếng Việt"),
("id", "Bahasa Indonesia"),
("ms", "Bahasa Melayu"),
("hi", "हिन्दी"),
("uk", "Українська"),
("cs", "Čeština"),
("ro", "Română"),
("el", "Ελληνικά"),
("hu", "Magyar"),
("sv", "Svenska"),
("da", "Dansk"),
("fi", "Suomi"),
("no", "Norsk"),
("he", "עברית"),
]
# Common languages shown directly in tray menu (no submenu)
COMMON_LANG_CODES = {"auto", "ja", "en", "zh", "ko", "fr", "de", "es", "ru"}