UNPKG

i18-fe-automator

Version:

前端代码提取中文并替换成$t函数

54 lines (53 loc) 2.56 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_extra_1 = __importDefault(require("fs-extra")); // import type { StringObject } from '../types' const stateManager_1 = __importDefault(require("./utils/stateManager")); const excelUtil_1 = require("./utils/excelUtil"); const getAbsolutePath_1 = require("./utils/getAbsolutePath"); // import getLang from './utils/getLang' // import log from './utils/log' const getLocaleDir_1 = require("./utils/getLocaleDir"); // import { flatObjectDeep } from './utils/flatObjectDeep' function exportExcelEnAndCn(obj) { const { excelPath } = stateManager_1.default.getToolConfig(); const headers = (0, excelUtil_1.getExcelHeader)(); const excelFileName = `脚本输出文件(${new Date().valueOf()}).xlsx`; // 读取语言包 const localeDirPath = (0, getLocaleDir_1.getLocaleDir)(); // log.info('localeDirPath') // log.info(localeDirPath) // 读取./locales/en-US.json文件 const currentLocalePath = (0, getAbsolutePath_1.getAbsolutePath)(localeDirPath, `en-US.json`); const currentLocaleObj = fs_extra_1.default.readJSONSync(currentLocalePath); // log.info('currentLocaleObj') // log.info(currentLocaleObj) const data = []; const failData = []; Object.entries(obj).forEach(([key, value]) => { const en = currentLocaleObj[value] || ''; let isErrorKey = false; if (!key || (key && key.indexOf('[object Object]') > -1) || (key && key.indexOf('debug') > -1)) { isErrorKey = true; } if (isErrorKey || !en || !value) { failData.push([key, value, en]); } else { data.push([key, value, en]); } }); const res = data.concat(failData); console.log(`导出的excel中,共${res.length || 0}条,处理成功${data.length}条,处理失败${failData.length}条, 成功率${((data.length / res.length) * 100).toFixed(2) || 0}%`); if (failData.length) { console.log(`建议对这${failData.length}条数据,手动处理下excel中的key和英文翻译,然后再搜索代码中的key改下`); } const excelBuffer = (0, excelUtil_1.buildExcel)(headers, res, excelFileName); fs_extra_1.default.writeFileSync((0, getAbsolutePath_1.getAbsolutePath)(process.cwd(), excelPath), excelBuffer, 'utf8'); } exports.default = exportExcelEnAndCn;