summaryrefslogtreecommitdiff
path: root/app/akk-keilschrift.js
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2026-08-09 21:50:19 +0200
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2026-08-22 19:18:04 +0200
commit4b635085e9f10ccdded0e90e850be9274724683e (patch)
tree67c8671e2138c67b26b464887bf166c01d299af2 /app/akk-keilschrift.js
parent26c96e92cda9441ed3fe5e7b1b5849290bfef14c (diff)
Noch mehr Sprachen
Diffstat (limited to 'app/akk-keilschrift.js')
-rw-r--r--app/akk-keilschrift.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/app/akk-keilschrift.js b/app/akk-keilschrift.js
new file mode 100644
index 0000000..6a48393
--- /dev/null
+++ b/app/akk-keilschrift.js
@@ -0,0 +1,35 @@
+/* Baut i18n.akk-x-ob.js aus i18n.akk-x-ob.translit.js.
+ Aufruf: node akk-keilschrift.js
+ Umgesetzt wird ausschliesslich der Inhalt einfacher Zeichenketten;
+ Bezeichner, Zahlen und Kommentare bleiben unberuehrt. Jedes Zeichen,
+ das die Unicode-Namenstabelle nicht kennt, bricht den Lauf ab. */
+const fs = require('fs'), path = require('path');
+const { convert } = require('./akk-keilschrift-lib.js');
+const APP = __dirname;
+const src = fs.readFileSync(path.join(APP, 'i18n.akk-x-ob.translit.js'), 'utf8');
+const kopf = src.slice(0, src.indexOf('window.I18N_AKK_X_OB'));
+const rumpf = src.slice(src.indexOf('window.I18N_AKK_X_OB'));
+const KEY = /^[A-Za-z0-9.:_-]+$/;
+let n = 0;
+const neu = rumpf.replace(/'((?:[^'\\]|\\.)*)'/g, (m, s) => {
+ if (KEY.test(s)) return m;
+ n++; return "'" + convert(s) + "'";
+});
+const neuerKopf = kopf
+ .replace('UMSCHRIFT, QUELLE', 'KEILSCHRIFT, ERZEUGT')
+ .replace(/ Diese Datei wird NICHT[\s\S]*?mehrere Silben sich ein Zeichen teilen \(da\/ṭa, ka\/qa, ša\/…\)\./,
+ ' ERZEUGTE DATEI — nicht von Hand ändern. Quelle ist\n'
+ + ' i18n.akk-x-ob.translit.js; nach jeder Änderung dort neu bauen:\n'
+ + ' node akk-keilschrift.js\n'
+ + ' Ein Rückweg aus dieser Datei in die Umschrift existiert nicht:\n'
+ + ' die Umsetzung ist nicht injektiv, mehrere Silben teilen sich ein\n'
+ + ' Zeichen (da/ṭa, ka/qa, sa/ṣa).\n\n'
+ + ' SCHRIFT. Unicode-Keilschriftblock U+12000…U+1247F. Ohne\n'
+ + ' passenden Zeichensatz erscheinen leere Kästchen; das Stilblatt\n'
+ + ' setzt für lang="akk-x-ob" einen Stapel, der mit Santakku\n'
+ + ' beginnt — dem einzigen darin, dessen Zeichenformen wirklich\n'
+ + ' altbabylonisch sind. Die Referenzglyphen des Unicode-Standards\n'
+ + ' sind neuassyrisch, also rund tausend Jahre zu jung; das ist\n'
+ + ' eine Frage des Zeichensatzes, nicht der Kodierung.');
+fs.writeFileSync(path.join(APP, 'i18n.akk-x-ob.js'), neuerKopf + neu);
+console.log('umgesetzte Zeichenketten:', n);