diff --git a/frontend/vite-plugin-generate-locales.js.js b/frontend/vite-plugin-generate-locales.js.js new file mode 100644 index 0000000..e03bee6 --- /dev/null +++ b/frontend/vite-plugin-generate-locales.js.js @@ -0,0 +1,48 @@ +import fs from "fs"; +import path from "path"; + +export default function GenerateLocalesPlugin() { + return { + name: "generate-locales", + buildStart() { + const localesDir = path.resolve(__dirname, "public", "locales"); + + if (fs.existsSync(localesDir)) { + const localesList = fs + .readdirSync(localesDir) + .filter((file) => { + return fs.statSync(path.join(localesDir, file)).isDirectory(); + }) + .map((locale) => { + const commonFilePath = path.join(localesDir, locale, "common.json"); + if (fs.existsSync(commonFilePath)) { + const commonFile = JSON.parse( + fs.readFileSync(commonFilePath, "utf-8") + ); + return { + code: locale, + name: commonFile.yourLanguage || locale, + }; + } + return { + code: locale, + name: locale, + }; + }); + + // Save the array to a JSON file + const outputPath = path.resolve( + __dirname, + "src", + "utils", + "localesList.json" + ); + fs.writeFileSync(outputPath, JSON.stringify(localesList, null, 2)); + + console.log(`Locales list saved to ${outputPath}`); + } else { + console.error("Locales directory not found."); + } + }, + }; +} diff --git a/frontend/vite.config.js b/frontend/vite.config.js index 3709e65..a8265c1 100644 --- a/frontend/vite.config.js +++ b/frontend/vite.config.js @@ -1,6 +1,7 @@ import process from "node:process"; import { defineConfig, searchForWorkspaceRoot } from "vite"; import react from "@vitejs/plugin-react"; +import GenerateLocalesPlugin from "./vite-plugin-generate-locales.js"; export default defineConfig({ base: "/app", @@ -27,5 +28,5 @@ export default defineConfig({ outDir: "build", chunkSizeWarningLimit: 1000, }, - plugins: [react()], + plugins: [react(), GenerateLocalesPlugin()], }); diff --git a/generateLocalesList.js b/generateLocalesList.js deleted file mode 100644 index 63a4fda..0000000 --- a/generateLocalesList.js +++ /dev/null @@ -1,40 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const localesDir = path.join(__dirname, "frontend", "public", "locales"); // Adjust the path if necessary - -if (fs.existsSync(localesDir)) { - const localesList = fs - .readdirSync(localesDir) - .filter((file) => { - return fs.statSync(path.join(localesDir, file)).isDirectory(); - }) - .map((locale) => { - const commonFilePath = path.join(localesDir, locale, "common.json"); - if (fs.existsSync(commonFilePath)) { - const commonFile = require(commonFilePath); - return { - code: locale, - name: commonFile.yourLanguage || locale, - }; - } - return { - code: locale, - name: locale, - }; - }); - - // Save the array to a JSON file - const outputPath = path.join( - __dirname, - "frontend", - "src", - "utils", - "localesList.json" - ); - fs.writeFileSync(outputPath, JSON.stringify(localesList, null, 2)); - - console.log(`Locales list saved to ${outputPath}`); -} else { - console.error("Locales directory not found."); -}