@c-sheep/i18n-extract-cli
Version:
这是一款能够自动将代码里的中文转成i18n国际化标记的命令行工具。当然,你也可以用它实现将中文语言包自动翻译成其他语言。适用于vue2、vue3和react
42 lines (41 loc) • 1.44 kB
JavaScript
;
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;