Files
vac-optimizer/scripts/generate-langs.js
T

34 lines
1.1 KiB
JavaScript

const fs = require('fs');
const path = require('path');
const i18nDir = path.join(__dirname, '../src/i18n');
const registryFile = path.join(__dirname, '../src/app/i18n-registry.ts');
if (!fs.existsSync(i18nDir)) {
console.error(`i18n directory not found at ${i18nDir}`);
process.exit(1);
}
const files = fs.readdirSync(i18nDir).filter((file) => file.endsWith('.json'));
let importStatements = '';
let registryEntries = '';
files.forEach((file) => {
const langCode = path.basename(file, '.json');
importStatements += `import ${langCode} from '../i18n/${file}';\n`;
registryEntries += `\t${langCode}: ${langCode} as AppTranslations,\n`;
});
const content = `// This file is auto-generated by scripts/generate-langs.js. Do not edit directly.
import { AppTranslations } from './services/translation-service';
${importStatements}
export const translationsMap: Record<string, AppTranslations> = {
${registryEntries}};
export const availableLanguagesList: string[] = Object.keys(translationsMap);
`;
fs.writeFileSync(registryFile, content, 'utf8');
console.log(`Successfully generated i18n registry at ${registryFile} with ${files.length} languages.`);