add auto translator

This commit is contained in:
Hiddify
2023-10-02 20:02:40 +02:00
parent 82df542db0
commit a6107f03e5
5 changed files with 42 additions and 288 deletions

View File

@@ -2,18 +2,29 @@ import i18n
import json
from deep_translator import GoogleTranslator
import sys
import os
def get_path(lang):
if lang == 'en':
return f'assets/translations/strings.i18n.json'
return f'assets/translations/strings_{lang}.i18n.json'
return f'../assets/translations/strings.i18n.json'
return f'../assets/translations/strings_{lang}.i18n.json'
def read_translate(lang):
pat = get_path(lang)
if not os.path.isfile(pat):
return {}
with open(pat) as f:
return json.load(f)
def recursive_translate(src, dst, translator):
for sk, sv in src.items():
if type(sv) == str and sk not in dst:
dst[sk] = translator.translate(sv)
if type(sv) == str:
if sk not in dst:
dst[sk] = translator.translate(sv)
print(sk, sv, dst[sk])
if not dst[sk]:
del dst[sk]
else:
@@ -26,14 +37,11 @@ if __name__ == "__main__":
src = sys.argv[1]
dst = sys.argv[2]
src_file = get_path(src)
dst_file = get_path(dst)
with open(src_file) as sf:
src_pofile = json.load(sf)
with open(dst_file) as df:
dst_pofile = json.load(df)
src_pofile = read_translate(src)
dst_pofile = read_translate(dst)
translator = GoogleTranslator(source=src, target=dst if dst != 'zh' else "zh-CN")
recursive_translate(src_pofile, dst_pofile, translator)
with open(dst_file, 'w') as df:
with open(get_path(dst), 'w') as df:
json.dump(dst_pofile, df)

View File

@@ -1,47 +1,36 @@
key="5Tqp1dLHQSk98s-twNF6RpwZu7lZSLLM"
wget -O assets/translations/strings.i18n.json "https://localise.biz/api/export/locale/en-US.json?index=id&key=$key"
wget -O assets/translations/strings_fa.i18n.json "https://localise.biz/api/export/locale/fa.json?index=id&key=$key"
wget -O assets/translations/strings_zh.i18n.json "https://localise.biz/api/export/locale/zh.json?index=id&key=$key"
wget -O assets/translations/strings_pt.i18n.json "https://localise.biz/api/export/locale/pt.json?index=id&key=$key"
wget -O assets/translations/strings_ru.i18n.json "https://localise.biz/api/export/locale/ru.json?index=id&key=$key"
key="FRu3eopQWgsvWmnycBXxv2eWpbUwGOu2"
wget -O assets/translations/strings.i18n.json "https://localise.biz/api/export/locale/en-US.json?index=id&format=i18next4&key=$key"
wget -O assets/translations/strings_fa.i18n.json "https://localise.biz/api/export/locale/fa.json?index=id&format=i18next4&key=$key"
# wget -O assets/translations/strings_zh.i18n.json "https://localise.biz/api/export/locale/zh.json?index=id&format=i18next4&key=$key"
# wget -O assets/translations/strings_pt.i18n.json "https://localise.biz/api/export/locale/pt.json?index=id&format=i18next4&key=$key"
wget -O assets/translations/strings_ru.i18n.json "https://localise.biz/api/export/locale/ru.json?index=id&format=i18next4&key=$key"
pip install polib deep-translator python-i18n
python3 auto_translate.py fa en
python3 auto_translate.py en fa
python3 auto_translate.py en zh
python3 auto_translate.py en pt
# python3 auto_translator.py fa en
python3 auto_translator.py en fa
# python3 auto_translator.py en zh
# python3 auto_translator.py en pt
python3 auto_translator.py en ru
function update_localise(){
lang=$1
pat="assets/translations/strings_${lang}.i18n.json"
pat="../assets/translations/strings_${lang}.i18n.json"
if [[ $lang == 'en' ]];then
pat="assets/translations/strings.i18n.json"
pat="../assets/translations/strings.i18n.json"
fi
curl "https://localise.biz/api/import/json?index=id&delete-absent=false&ignore-existing=false&locale=$lang&flag-new=Provisional&key=$LOCALIZ_KEY" \
# curl -X POST "https://localise.biz/api/import/json?locale=$lang&key=$LOCALIZ_KEY" \
curl "https://localise.biz/api/import/json?format=i18next4&delete-absent=false&ignore-existing=false&locale=$lang&flag-new=Provisional&key=$LOCALIZ_KEY" \
-H 'Accept: application/json' \
--data-binary $pat \
--compressed
--data-binary @$pat
}
function update_localise2(){
lang=$1
pat="assets/translations/strings_${lang}.i18n.json"
if [[ $lang == 'en' ]];then
pat="assets/translations/strings.i18n.json"
fi
curl "https://localise.biz/api/import/json?index=id&delete-absent=false&ignore-existing=false&locale=$lang&flag-new=Provisional&key=$LOCALIZ_KEY2" \
-H 'Accept: application/json' \
--data-binary $pat \
--compressed
}
update_localise fa
update_localise en
update_localise zh
update_localise2 en
update_localise2 pt
update_localise fa
# # update_localise zh
# # update_localise pt
update_localise ru

View File

@@ -242,4 +242,4 @@
"invalidConfig": "Invalid Configs"
}
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long