profit-planet-frontend/scripts/check-translations.mjs
DeathKaioken 4074ea4eee Bibelbumser
Co-authored-by: Copilot <copilot@github.com>
2026-05-04 23:48:09 +02:00

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