diff options
author | metamuffin <metamuffin@disroot.org> | 2024-04-03 18:08:52 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-04-03 18:08:52 +0200 |
commit | edbe7ad1be0a52dd4220f65d1ac98163a0a1b774 (patch) | |
tree | 01dce2d09562b0c52c6c8b370ef889fe0e057fbf /client-web/scripts/translate.py | |
parent | 93d09d0aaef7586389daa360c1a361e915c4a228 (diff) | |
download | keks-meet-edbe7ad1be0a52dd4220f65d1ac98163a0a1b774.tar keks-meet-edbe7ad1be0a52dd4220f65d1ac98163a0a1b774.tar.bz2 keks-meet-edbe7ad1be0a52dd4220f65d1ac98163a0a1b774.tar.zst |
autogenerate japanese translation
Diffstat (limited to 'client-web/scripts/translate.py')
-rw-r--r-- | client-web/scripts/translate.py | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/client-web/scripts/translate.py b/client-web/scripts/translate.py index 8e7de0c..2f45446 100644 --- a/client-web/scripts/translate.py +++ b/client-web/scripts/translate.py @@ -2,21 +2,30 @@ import json import sys from argostranslate import translate -srclang = "en" -dstlang = sys.argv[1] +for line in sys.stdin: + task = json.loads(line) + srclang = task["source"] + dstlang = task["target"] -installed_languages = { lang.code: lang for lang in translate.load_installed_languages() } -if srclang not in installed_languages: - raise Exception(f"need language {srclang}") -if dstlang not in installed_languages: - raise Exception(f"need language {dstlang}") -srclang = installed_languages[srclang] -dstlang = installed_languages[dstlang] -translator = srclang.get_translation(dstlang) -if translator is None: - raise Exception("no translator available") + installed_languages = { lang.code: lang for lang in translate.load_installed_languages() } + if srclang not in installed_languages: + raise Exception(f"need language {srclang}") + if dstlang not in installed_languages: + raise Exception(f"need language {dstlang}") + srclang = installed_languages[srclang] + dstlang = installed_languages[dstlang] + translator = srclang.get_translation(dstlang) + if translator is None: + raise Exception("no translator available") -print(json.loads("".join(sys.stdin))) + def tr(key, ob): + if ob == None: return None + if isinstance(ob, list): return [ tr(None,e) for e in ob ] + if isinstance(ob, dict): return { k: tr(k,v) for k, v in ob.items() } + if isinstance(ob, str): + print(f"{srclang.code}->{dstlang.code} {key}", file=sys.stderr) + return translator.translate(ob) + + print(json.dumps(tr("root", task["strings"]))) -print(translator.translate("Hello world")) |