diff options
Diffstat (limited to 'app/akk-keilschrift.js')
| -rw-r--r-- | app/akk-keilschrift.js | 35 |
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); |
