From 406a82f82eb77bd0480594b8e43a8f0085e2262b Mon Sep 17 00:00:00 2001 From: metamuffin Date: Wed, 3 Apr 2024 21:18:52 +0200 Subject: autogenerate es translation --- client-web/scripts/translate_argos.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 client-web/scripts/translate_argos.py (limited to 'client-web/scripts/translate_argos.py') diff --git a/client-web/scripts/translate_argos.py b/client-web/scripts/translate_argos.py new file mode 100644 index 0000000..2f45446 --- /dev/null +++ b/client-web/scripts/translate_argos.py @@ -0,0 +1,31 @@ +import json +import sys +from argostranslate import translate + +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") + + + 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"]))) + -- cgit v1.2.3-70-g09d2