canary_clis/dist/export.js
2022-12-20 00:02:24 +00:00

43 lines
1.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.exportMessages = void 0;
/**
* @author linhuiw
* @desc 导出未翻译文件
*/
require('ts-node').register({
compilerOptions: {
module: 'commonjs'
}
});
const fs = require("fs");
const d3_dsv_1 = require("d3-dsv");
const utils_1 = require("./utils");
function exportMessages(file, lang) {
const CONFIG = utils_1.getProjectConfig();
const langs = lang ? [lang] : CONFIG.distLangs;
const srcLangObjs = utils_1.getTargetLangObjs(CONFIG.srcLang);
langs.map(lang => {
// 已经存在的翻译文案
const targetLangObjs = utils_1.getTargetLangObjs(lang, (message, key) => !/[\u4E00-\u9FA5]/.test(srcLangObjs[key]) || srcLangObjs[key] !== message);
// 待翻译的文案
const messagesToTranslate = Object.keys(srcLangObjs)
.filter(key => !targetLangObjs.hasOwnProperty(key))
.map(key => {
// 把中文文案直接写回对应的文案
let message = srcLangObjs[key];
message = JSON.stringify(message).slice(1, -1);
targetLangObjs[key] = message;
});
if (messagesToTranslate.length === 0) {
console.log('未发现未翻译文案');
return;
}
const content = d3_dsv_1.tsvFormatRows(messagesToTranslate);
const sourceFile = file || `./export-${lang}`;
fs.writeFileSync(sourceFile, content);
console.log(`Exported ${messagesToTranslate.length} message(s).`);
});
}
exports.exportMessages = exportMessages;
//# sourceMappingURL=export.js.map