UNPKG

@neiderruiz/translate-files

Version:

Internationalize and manage your website easily with (CSV or JSON to i18n)

43 lines (36 loc) 1.47 kB
import fs from "fs"; import path from "path"; import { langs } from "../translate/types/langs"; import { translateFileCsv } from "../translate/utils/translate-file-csv"; const renameFiles = (language: string) => { const localesPath = './public/locales' const outputDir = path.join(localesPath, language); const translatedFilePath = path.join(localesPath, `${language}.json`); const newFilePath = path.join(localesPath, language, 'translation.json'); if (!fs.existsSync(outputDir)) { fs.mkdirSync(outputDir, { recursive: true }); } if (fs.existsSync(translatedFilePath)) { fs.renameSync(translatedFilePath, newFilePath); console.log(`✅ Archivo ${language}.json translated and renamed to translation.json \n`); } else { console.log(`🛑 Archivo ${language}.json not found`); } } export type ConfigOptionsAstro = { separator?: string; } const makeTranslations = async (idDoc: string, config?: ConfigOptionsAstro) => { const localesPath = './public/locales'; await translateFileCsv(idDoc, localesPath, config); const files = fs.readdirSync(localesPath); const jsonFiles = files.filter(file => path.extname(file) === '.json') .map(file => file.replace('.json', '')); const existingCodes = jsonFiles.filter(code => langs.some(lang => lang.code === code)); existingCodes.forEach((element) => { renameFiles(element); }); }; export { makeTranslations };