Skip to content

Commit 03eb851

Browse files
committed
Add ru and update ir translation.
1 parent c6a2ddb commit 03eb851

File tree

13 files changed

+1865
-195
lines changed

13 files changed

+1865
-195
lines changed

.gitignore

+7-1
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,10 @@ desktop.ini
1717
/code/default/gae_proxy/local/ipv6_tunnel/set_best_server_temp.bat
1818
.pytest_cache
1919
*.log
20-
code/version.txt
20+
code/version.txt
21+
22+
23+
# Babel files
24+
messages.po-e
25+
messages.pot
26+
translated.po

code/default/babel_update.py

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#!/usr/env/bin python
2+
3+
import os
4+
5+
6+
# pip install googletrans==4.0.0-rc1
7+
from googletrans import Translator
8+
import polib
9+
10+
11+
translator = Translator(service_urls=[
12+
'translate.google.com',
13+
])
14+
15+
for lang in ["ru_RU"]: # "fa_IR",
16+
for module in ["launcher", "smart_router", "x_tunnel"]: #
17+
source_po = polib.pofile(f'{module}/lang/zh_CN/LC_MESSAGES/messages.po')
18+
lang_path = f'{module}/lang/{lang}/LC_MESSAGES'
19+
if not os.path.isdir(lang_path):
20+
os.makedirs(lang_path, exist_ok=True)
21+
22+
new_fp = f'{lang_path}/translated.po'
23+
with open(new_fp, "w") as fd:
24+
fd.write("")
25+
26+
new_po = polib.pofile(new_fp)
27+
28+
for entry in source_po:
29+
try:
30+
result = translator.translate(entry.msgid, dest=lang[0:2])
31+
res_text = result.text
32+
except Exception as e:
33+
print(f"translate {entry.msgid} failed, e:{e}")
34+
res_text = ""
35+
36+
new_entry = polib.POEntry(
37+
msgid=entry.msgid,
38+
msgstr=res_text,
39+
occurrences=entry.occurrences )
40+
41+
new_po.append(new_entry)
42+
43+
new_po.save(new_fp)
44+
print(f"module {module} translated to {lang}.")

code/default/launcher/config.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
config.load()
8585

8686
app_name = "XX-Net"
87-
valid_language = ['en_US', 'fa_IR', 'zh_CN']
87+
valid_language = ['en_US', 'fa_IR', 'zh_CN', 'ru_RU']
8888
try:
8989
fp = os.path.join(root_path, "code", "app_info.json")
9090
with open(fp, "r") as fd:
@@ -106,6 +106,9 @@ def _get_os_language():
106106
return 'en_US'
107107
elif b'fa' in lang_code:
108108
return 'fa_IR'
109+
elif b'ru' in lang_code:
110+
return 'ru_RU'
111+
109112
except:
110113
pass
111114
elif sys_platform.platform == "android":
@@ -120,6 +123,8 @@ def _get_os_language():
120123
return 'en_US'
121124
elif 'fa' in lang_code:
122125
return 'fa_IR'
126+
elif 'ru' in lang_code:
127+
return 'ru_RU'
123128
else:
124129
return None
125130
except Exception as e:
@@ -133,6 +138,8 @@ def _get_os_language():
133138
return 'en_US'
134139
elif 'fa' in lang_code:
135140
return 'fa_IR'
141+
elif 'ru' in lang_code:
142+
return 'ru_RU'
136143
else:
137144
return None
138145
else:

0 commit comments

Comments
 (0)