UNPKG

@tenado/i18n-cli

Version:

i18n-cli是一个自动国际化脚本,通过执行命令,自动提取代码里面的中文,自动调用百度或谷歌翻译接口,自动将翻译结果以 key-value 形式存入*.json 语言包里

45 lines (41 loc) 1.45 kB
/** * 处理并收集需要翻译的内容 * 1、获取已经收集到的key列表 * 2、获取需要处理的文件列表 * 3、转换文件 */ const chalk = require("chalk"); const getLangTranslates = require("./core/utils/getTranslate.js"); const getFilesFromFolder = require("./core/utils/file.js"); const transformCore = require("./core/transform/index.js"); const saveTranslate = require("./core/utils/saveTranslate.js"); const mergeOptions = require("./core/utils/mergeOptions.js"); module.exports = (opts) => { const options = mergeOptions(opts); const { entry } = options; if (!Array.isArray(entry) && !typeof entry !== "string") { console.log(chalk.red("entry必须是字符串或数组")); process.exit(2); } // 已经翻译的 let localData = {}; // 需要翻译的 let needTranslate = {}; // 1、获取已经收集到的key列表 const localLang = options.local; localData = getLangTranslates(options, localLang); // 2、获取需要处理的文件列表 // 需要处理的文件列表 let targetFiles = []; targetFiles = getFilesFromFolder(options); // 3、转换文件 // 4、将未翻译的存入local语言对应的json文件中 try { targetFiles.forEach((file) => { console.log(chalk.green(`开始转换${file.filePath}`)); transformCore(localData, needTranslate, file, options); }); } finally { saveTranslate(options, localLang, needTranslate); } };