UNPKG

@awesome-fe/translate

Version:
71 lines 3.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handler = exports.builder = exports.describe = exports.command = void 0; const get_translation_engine_1 = require("../../translation-engine/get-translation-engine"); const get_translator_1 = require("../../translator/get-translator"); const globby_1 = require("globby"); const translation_engine_type_1 = require("../../translation-engine/translation-engine-type"); exports.command = `translate <sourceGlobs...>`; exports.describe = '自动翻译 sourceGlob 中的文件,支持 html 和 markdown 两种格式'; exports.builder = { sourceGlobs: { description: '文件通配符,注意:要包含在引号里,参见 https://github.com/isaacs/node-glob#glob-primer', }, engine: { type: 'string', description: '要使用的翻译引擎。如果使用 normalize 引擎可以对目标进行预处理,以减少变更冲突', choices: [ translation_engine_type_1.TranslationEngineType.google, translation_engine_type_1.TranslationEngineType.dict, translation_engine_type_1.TranslationEngineType.fake, translation_engine_type_1.TranslationEngineType.normalizer, translation_engine_type_1.TranslationEngineType.extractor, translation_engine_type_1.TranslationEngineType.vectorizer, ], default: translation_engine_type_1.TranslationEngineType.google, }, dict: { type: 'string', description: '当使用 dict 引擎时,指定要使用的字典目录,字典目录是由一组 markdown 文件构成的与原文同构的目录。', }, jsonProperties: { type: 'array', alias: 'jp', description: '当进行 json 翻译时,要翻译的属性名称,会自动进行递归查找。', default: [], }, mustIncludesTag: { type: 'string', alias: 'it', description: '当进行 jsdoc 翻译时,只有具有此标签的注释及其子注释才会被翻译,比如 Angular 官方文档中,这个值是 `publicApi`', }, mustExcludesTag: { type: 'string', alias: 'et', description: '当进行 jsdoc 翻译时,只有没有此标签的注释及其子注释才会被翻译,比如 Angular Components 官方文档中,这个值是 `docs-private`', }, }; const handler = async function (params) { const filenames = (0, globby_1.sync)(params.sourceGlobs); if (filenames.length === 0) { console.error('没有找到任何文件,请检查 sourceGlobs 是否正确!'); return; } const translationEngine = (0, get_translation_engine_1.getTranslationEngine)(params.engine, params); for (const filename of filenames) { console.log('translating: ', filename); const translator = (0, get_translator_1.getTranslator)(filename, translationEngine, params); await translator.setup(); try { await translator.translateFile(filename, params); } catch (e) { console.error(e); } finally { await translator.tearDown(); } } }; exports.handler = handler; //# sourceMappingURL=translate.js.map