UNPKG

@c-sheep/i18n-extract-cli

Version:

这是一款能够自动将代码里的中文转成i18n国际化标记的命令行工具。当然,你也可以用它实现将中文语言包自动翻译成其他语言。适用于vue2、vue3和react

42 lines (41 loc) 1.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transformGit = void 0; const child_process_1 = require("child_process"); const startChangeSource_1 = require("./startChangeSource"); function doGenre(list, config) { (0, startChangeSource_1.genreI18n)({ ...config, incremental: true, includes: handleListToPath(list) }); } function handleListToPath(list) { return list.map((i) => i.execPath); } function handleFileList(list) { const typeList = list.map((item) => { const filePath = item.slice(3); return { isUpdate: ['A', 'M'].includes(item[0]), isSrc: filePath.startsWith('src/'), filePath: filePath, execPath: `**/${filePath.replace(/\\/g, '/')}` }; }); return typeList.filter((i) => i.isUpdate && i.isSrc); } function transformGit(i18nConfig) { return new Promise((resolve) => { (0, child_process_1.exec)('git status --porcelain', (error, stdout, stderr) => { if (error) { console.error(`执行错误: ${error.message}`); return; } if (stderr) { console.error(`标准错误: ${stderr}`); return; } const result = handleFileList(stdout.split('\n')); doGenre(result, i18nConfig); resolve(result); }); }); } exports.transformGit = transformGit;