aboutsummaryrefslogtreecommitdiff
path: root/client-web/scripts
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-04-03 18:08:52 +0200
committermetamuffin <metamuffin@disroot.org>2024-04-03 18:08:52 +0200
commitedbe7ad1be0a52dd4220f65d1ac98163a0a1b774 (patch)
tree01dce2d09562b0c52c6c8b370ef889fe0e057fbf /client-web/scripts
parent93d09d0aaef7586389daa360c1a361e915c4a228 (diff)
downloadkeks-meet-edbe7ad1be0a52dd4220f65d1ac98163a0a1b774.tar
keks-meet-edbe7ad1be0a52dd4220f65d1ac98163a0a1b774.tar.bz2
keks-meet-edbe7ad1be0a52dd4220f65d1ac98163a0a1b774.tar.zst
autogenerate japanese translation
Diffstat (limited to 'client-web/scripts')
-rw-r--r--client-web/scripts/apply_translations.ts0
-rw-r--r--client-web/scripts/find_missing_translations.ts (renamed from client-web/scripts/autogen_locale.ts)13
-rw-r--r--client-web/scripts/reformat_json.ts16
-rw-r--r--client-web/scripts/translate.py37
4 files changed, 46 insertions, 20 deletions
diff --git a/client-web/scripts/apply_translations.ts b/client-web/scripts/apply_translations.ts
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/client-web/scripts/apply_translations.ts
diff --git a/client-web/scripts/autogen_locale.ts b/client-web/scripts/find_missing_translations.ts
index c2f3d5b..d39590a 100644
--- a/client-web/scripts/autogen_locale.ts
+++ b/client-web/scripts/find_missing_translations.ts
@@ -1,10 +1,12 @@
// deno-lint-ignore-file no-explicit-any
+/// <reference lib="deno.worker" />
import { LOCALES } from "../source/locale/mod.ts";
-const global_lc = "en-US"
+const global_lc = "en"
function traverse_object(target: any, current: any): any {
if (typeof target == "string") return target
+ if (typeof target == "function") return undefined
const out = {} as any
for (const key in target) {
if (!current) {
@@ -20,9 +22,8 @@ function traverse_object(target: any, current: any): any {
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}`
- );
+ if (lc.search("-") != -1) continue
+ const k = traverse_object(master, LOCALES[lc]);
+ if (JSON.stringify(k).length <= 2) continue
+ console.log(JSON.stringify({ source: global_lc, target: lc, strings: k }));
}
diff --git a/client-web/scripts/reformat_json.ts b/client-web/scripts/reformat_json.ts
new file mode 100644
index 0000000..35fc1dd
--- /dev/null
+++ b/client-web/scripts/reformat_json.ts
@@ -0,0 +1,16 @@
+
+
+
+
+const decoder = new TextDecoder();
+let text = ""
+for await (const chunk of Deno.stdin.readable) {
+ text += decoder.decode(chunk);
+}
+
+for (const ob of text.split("\n")) {
+ if (!ob.length) continue
+ console.log(JSON.stringify(JSON.parse(ob), null, 4));
+}
+
+
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"))