// scripts/generate-locales.js const fs = require("fs"); const path = require("path"); const localesDir = path.join(__dirname, "../public/locales"); const outputFile = path.join(__dirname, "../src/i18n/generatedLocales.ts"); // Discover locale folders const rawLocales = fs .readdirSync(localesDir) .filter((name) => fs.statSync(path.join(localesDir, name)).isDirectory()); // Normalise folder names (e.g., en_GB → en-GB) const locales = rawLocales.map((l) => l.replace("_", "-")); // Sort by locale code locales.sort((a, b) => a.localeCompare(b)); // Only region-specific locales (those with a hyphen) const availableLocales = locales.filter((l) => l.includes("-")); // Generate TS file const ts = ` // AUTO-GENERATED FILE — DO NOT EDIT MANUALLY export const availableLocales = ${JSON.stringify(availableLocales, null, 2)} as const; export type Locale = typeof availableLocales[number]; `; fs.writeFileSync(outputFile, ts); console.log("Generated generatedLocales.ts");