26 lines
1.2 KiB
JavaScript
26 lines
1.2 KiB
JavaScript
import { readFileSync } from 'fs';
|
|
|
|
const enRaw = readFileSync('src/app/i18n/translations/en.ts', 'utf8');
|
|
const deRaw = readFileSync('src/app/i18n/translations/de.ts', 'utf8');
|
|
|
|
// Extract all "key": "value" pairs
|
|
const kvRegex = /"(k[0-9a-f]+)": "([^"\\]*(\\.[^"\\]*)*)"/g;
|
|
|
|
const en = {};
|
|
const de = {};
|
|
let m;
|
|
while ((m = kvRegex.exec(enRaw)) !== null) en[m[1]] = m[2];
|
|
kvRegex.lastIndex = 0;
|
|
while ((m = kvRegex.exec(deRaw)) !== null) de[m[1]] = m[2];
|
|
|
|
// Find keys in both with identical values
|
|
const same = Object.keys(en).filter(k => de[k] !== undefined && en[k] === de[k]);
|
|
console.log(`Keys with identical en/de values (${same.length} total):`);
|
|
same.forEach(k => console.log(` ${k}: ${JSON.stringify(en[k])}`));
|
|
|
|
// Find keys in en that look German (contain typical German words or chars)
|
|
const germanPattern = /\b(den|die|das|der|und|nicht|Sie|Ihr|Bitte|werden|wurde|kein|eine|einem|ist|sind|können|bitte|beim|durch|für|mit|Keine|Alle|Alle|beim|oder)\b/;
|
|
const germanInEn = Object.keys(en).filter(k => germanPattern.test(en[k]));
|
|
console.log(`\nKeys in en.ts that look German (${germanInEn.length} total):`);
|
|
germanInEn.forEach(k => console.log(` ${k}: ${JSON.stringify(en[k])}`));
|