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])}`));