i18n-auto-react
Version:
基于百度翻译API服务的自动翻译插件
43 lines (40 loc) • 1.34 kB
JavaScript
import fs from 'fs';
import path from 'path';
import { p as prettierJs } from '../utils/index.js';
import { e as exportTpl } from '../utils/tpl.js';
import { l as logger } from '../utils/log.js';
class GenExport {
config;
params = {};
constructor(config) {
this.config = config;
}
async genExportFile() {
let { languages, output, __rootPath } = this.config;
let imports = languages
.map((name) => {
let newName = name.replace('-', '_');
return `import ${newName} from './${name}';`;
})
.join('\n');
let resources = languages
.map((name) => {
let _name = name.replace('-', '_');
return `extendLocale('${_name}', ${_name});`;
})
.join('\n');
const file = exportTpl
.replace('$import', imports)
.replace('$resources', resources);
let dirPath = output.dir;
let ext = output.ext || 'js';
let curFilePath = path.resolve(__rootPath, dirPath, `index.${ext}`);
let code = await prettierJs(file);
fs.writeFileSync(curFilePath, code, { encoding: 'utf-8' });
}
run() {
this.genExportFile();
logger.info('\n生成导出文件成功!\n', 'green', true);
}
}
export { GenExport as G };