diff options
author | metamuffin <metamuffin@disroot.org> | 2024-04-03 17:02:15 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-04-03 17:02:15 +0200 |
commit | 93d09d0aaef7586389daa360c1a361e915c4a228 (patch) | |
tree | 7aac353617952819d49b89eab28b9080759aa956 /client-web/scripts | |
parent | 4903ef899abb88148a0835b5bde69f6de5a69a98 (diff) | |
download | keks-meet-93d09d0aaef7586389daa360c1a361e915c4a228.tar keks-meet-93d09d0aaef7586389daa360c1a361e915c4a228.tar.bz2 keks-meet-93d09d0aaef7586389daa360c1a361e915c4a228.tar.zst |
maybe autogen languages
Diffstat (limited to 'client-web/scripts')
-rw-r--r-- | client-web/scripts/autogen_locale.ts | 28 | ||||
-rw-r--r-- | client-web/scripts/translate.py | 22 |
2 files changed, 50 insertions, 0 deletions
diff --git a/client-web/scripts/autogen_locale.ts b/client-web/scripts/autogen_locale.ts new file mode 100644 index 0000000..c2f3d5b --- /dev/null +++ b/client-web/scripts/autogen_locale.ts @@ -0,0 +1,28 @@ +// deno-lint-ignore-file no-explicit-any +import { LOCALES } from "../source/locale/mod.ts"; + +const global_lc = "en-US" + +function traverse_object(target: any, current: any): any { + if (typeof target == "string") return target + const out = {} as any + for (const key in target) { + if (!current) { + out[key] = target[key] + } else { + if (key in current) continue + out[key] = traverse_object(target[key], current) + } + } + return out +} + +const master = LOCALES[global_lc] +for (const lc in LOCALES) { + if (lc == global_lc) continue + const k = JSON.stringify(traverse_object(master, LOCALES[lc])); + if (k.length <= 2) continue + console.log( + `New strings required in ${lc}:\n\t${k}` + ); +} diff --git a/client-web/scripts/translate.py b/client-web/scripts/translate.py new file mode 100644 index 0000000..8e7de0c --- /dev/null +++ b/client-web/scripts/translate.py @@ -0,0 +1,22 @@ +import json +import sys +from argostranslate import translate + +srclang = "en" +dstlang = sys.argv[1] + +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))) + +print(translator.translate("Hello world")) |