td-web-cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ node_modules
2
+ dist
package/.prettierrc ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "semi": true,
3
+ "singleQuote": true,
4
+ "printWidth": 80,
5
+ "tabWidth": 2,
6
+ "trailingComma": "es5"
7
+ }
@@ -0,0 +1,135 @@
1
+ import axios from 'axios';
2
+ import { normalizeError } from '../utils/index.js';
3
+ // GET 请求封装
4
+ export const getData = async (url, params = {}, headers = {}) => {
5
+ const res = await axios.get(url, { params, headers });
6
+ return res.data;
7
+ };
8
+ // POST 请求封装
9
+ export const postData = async (url, params, headers = {}) => {
10
+ const res = await axios.post(url, params, {
11
+ headers,
12
+ });
13
+ return res.data;
14
+ };
15
+ // 流式传输 POST 请求(带取消功能)
16
+ export const postStream = async (url, params, headers = {}, onData, onError, onComplete, signal) => {
17
+ const config = {
18
+ headers,
19
+ responseType: 'stream',
20
+ signal, // 添加 AbortSignal 支持
21
+ };
22
+ try {
23
+ const response = await axios.post(url, params, config);
24
+ // 处理流数据
25
+ const stream = response.data;
26
+ let buffer = '';
27
+ // 监听 abort 事件
28
+ const onAbort = () => {
29
+ stream.destroy(new Error('请求已中止'));
30
+ };
31
+ signal === null || signal === void 0 ? void 0 : signal.addEventListener('abort', onAbort, { once: true });
32
+ stream.on('data', (chunk) => {
33
+ buffer += chunk.toString();
34
+ // 处理可能的多个消息在一个chunk中
35
+ const parts = buffer.split('\n');
36
+ buffer = parts.pop() || ''; // 保留未完成的部分
37
+ parts.forEach((part) => {
38
+ if (part.trim()) {
39
+ onData(part.trim());
40
+ }
41
+ });
42
+ });
43
+ stream.on('end', () => {
44
+ signal === null || signal === void 0 ? void 0 : signal.removeEventListener('abort', onAbort);
45
+ if (buffer.trim()) {
46
+ onData(buffer.trim());
47
+ }
48
+ onComplete === null || onComplete === void 0 ? void 0 : onComplete();
49
+ });
50
+ stream.on('error', (err) => {
51
+ signal === null || signal === void 0 ? void 0 : signal.removeEventListener('abort', onAbort);
52
+ // 如果是主动取消的请求,不触发 onError
53
+ if (err.message !== '请求已中止') {
54
+ onError === null || onError === void 0 ? void 0 : onError(err);
55
+ }
56
+ });
57
+ }
58
+ catch (error) {
59
+ // 如果是取消的请求,不触发 onError
60
+ if (!axios.isCancel(error)) {
61
+ onError === null || onError === void 0 ? void 0 : onError(normalizeError(error));
62
+ }
63
+ }
64
+ };
65
+ // SSE 传输 POST 请求(带取消功能)
66
+ export const postSSE = async (url, params, headers = {}, onMessage, onError, signal) => {
67
+ const config = {
68
+ headers: {
69
+ ...headers,
70
+ Accept: 'text/event-stream',
71
+ },
72
+ responseType: 'stream',
73
+ signal, // 添加 AbortSignal 支持
74
+ };
75
+ try {
76
+ const response = await axios.post(url, params, config);
77
+ const stream = response.data;
78
+ let buffer = '';
79
+ // 监听 abort 事件
80
+ const onAbort = () => {
81
+ stream.destroy(new Error('请求已中止'));
82
+ };
83
+ signal === null || signal === void 0 ? void 0 : signal.addEventListener('abort', onAbort, { once: true });
84
+ stream.on('data', (chunk) => {
85
+ buffer += chunk.toString();
86
+ // 处理SSE格式(以\n\n分隔的多个事件)
87
+ const events = buffer.split('\n\n');
88
+ buffer = events.pop() || '';
89
+ events.forEach((eventStr) => {
90
+ if (eventStr.trim()) {
91
+ const event = {};
92
+ eventStr.split('\n').forEach((line) => {
93
+ const sepIndex = line.indexOf(':');
94
+ if (sepIndex !== -1) {
95
+ const key = line.slice(0, sepIndex).trim();
96
+ // 注意 trimStart 保留 value 中的空格
97
+ event[key] = line.slice(sepIndex + 1).trimStart();
98
+ }
99
+ });
100
+ if (event.event || event.data) {
101
+ onMessage(event.event || 'message', event.data || '');
102
+ }
103
+ }
104
+ });
105
+ });
106
+ stream.on('error', (err) => {
107
+ signal === null || signal === void 0 ? void 0 : signal.removeEventListener('abort', onAbort);
108
+ // 如果是主动取消的请求,不触发 onError
109
+ if (err.message !== '请求已中止') {
110
+ onError === null || onError === void 0 ? void 0 : onError(err);
111
+ }
112
+ });
113
+ stream.on('end', () => {
114
+ signal === null || signal === void 0 ? void 0 : signal.removeEventListener('abort', onAbort);
115
+ });
116
+ }
117
+ catch (error) {
118
+ // 如果是取消的请求,不触发 onError
119
+ if (!axios.isCancel(error)) {
120
+ onError === null || onError === void 0 ? void 0 : onError(normalizeError(error));
121
+ }
122
+ }
123
+ };
124
+ // PUT 请求封装
125
+ export const putData = async (url, params, headers = {}) => {
126
+ const res = await axios.put(url, params, {
127
+ headers,
128
+ });
129
+ return res.data;
130
+ };
131
+ // DELETE 请求封装
132
+ export const deleteData = async (url, params = {}, headers = {}) => {
133
+ const res = await axios.delete(url, { params, headers });
134
+ return res.data;
135
+ };
@@ -0,0 +1,5 @@
1
+ const api = {
2
+ LANGUAGE_TOOL_V2_LANGUAGES: 'https://api.languagetool.org/v2/languages',
3
+ LANGUAGE_TOOL_V2_CHECK: 'https://api.languagetool.org/v2/check',
4
+ };
5
+ export default api;
package/dist/index.js ADDED
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI入口脚本
4
+ * 通过交互式选择执行不同模块功能
5
+ */
6
+ import { Command } from 'commander';
7
+ import { select, Separator } from '@inquirer/prompts';
8
+ import { i18n } from './modules/i18n/index.js';
9
+ import { logger, loggerError } from './utils/index.js';
10
+ const program = new Command();
11
+ /**
12
+ * 主程序入口函数
13
+ * 解析命令行参数,交互式选择模块并执行对应功能
14
+ */
15
+ async function main() {
16
+ try {
17
+ logger.info('td-web-cli程序启动');
18
+ // 解析命令行参数
19
+ program.parse(process.argv);
20
+ logger.info(`命令行参数解析完成:${process.argv.slice(2).join(' ')}`);
21
+ // 定义可用模块选项
22
+ const moduleChoices = [
23
+ {
24
+ name: '国际化',
25
+ value: 'i18n',
26
+ description: '国际化相关功能',
27
+ },
28
+ ];
29
+ // 交互式选择模块
30
+ const answer = await select({
31
+ message: '请选择要执行的模块:',
32
+ choices: [
33
+ ...moduleChoices,
34
+ new Separator(), // 分割线,便于未来扩展更多模块
35
+ ],
36
+ default: 'i18n', // 默认选项
37
+ pageSize: 10, // 最大显示选项数
38
+ loop: true, // 选项循环滚动
39
+ });
40
+ // 查找选择模块的名称,方便日志输出
41
+ const selectedModule = moduleChoices.find((item) => item.value === answer);
42
+ if (!selectedModule) {
43
+ logger.warn('未选择有效模块,程序已退出');
44
+ process.exit(0);
45
+ }
46
+ logger.info(`用户选择模块:${selectedModule.name}`);
47
+ // 根据选择执行对应模块
48
+ switch (answer) {
49
+ case 'i18n':
50
+ logger.info(`${selectedModule.name}模块开始执行`);
51
+ await i18n(program);
52
+ logger.info(`${selectedModule.name}模块执行完成`);
53
+ break;
54
+ default:
55
+ logger.warn(`${selectedModule.name}模块暂未实现,程序已退出`);
56
+ process.exit(0);
57
+ }
58
+ }
59
+ catch (error) {
60
+ // 记录错误日志,方便排查
61
+ loggerError(error, logger);
62
+ console.error('程序执行时发生异常,已记录日志,程序已退出');
63
+ process.exit(1);
64
+ }
65
+ }
66
+ // 启动主程序
67
+ main();
@@ -0,0 +1,156 @@
1
+ [2026-01-23T09:43:09.200Z] [INFO] 【td-web-cli】程序启动
2
+ [2026-01-23T09:43:09.203Z] [INFO] 命令行参数解析完成:
3
+ [2026-01-23T09:43:14.428Z] [INFO] 用户选择模块:国际化
4
+ [2026-01-23T09:43:14.428Z] [INFO] 【国际化】模块开始执行
5
+ [2026-01-23T09:43:14.429Z] [INFO] 【国际化】模块启动,等待用户选择功能
6
+ [2026-01-23T09:43:23.602Z] [INFO] 用户选择功能:excel转json
7
+ [2026-01-23T09:43:23.603Z] [INFO] 【excel转json】功能开始执行
8
+ [2026-01-23T09:43:23.603Z] [INFO] 开始加载配置文件:D:\test\td-web-cli\src\config\setting.json
9
+ [2026-01-23T09:43:23.604Z] [INFO] 配置文件加载成功
10
+ [2026-01-23T09:43:38.073Z] [ERROR] 程序执行时发生错误:ExitPromptError: User force closed the prompt with SIGINT
11
+ at Interface.sigint (file:///D:/test/td-web-cli/node_modules/@inquirer/core/dist/lib/create-prompt.js:62:37)
12
+ at Interface.emit (node:events:518:28)
13
+ at [_ttyWrite] [as _ttyWrite] (node:internal/readline/interface:1125:18)
14
+ at ReadStream.onkeypress (node:internal/readline/interface:264:20)
15
+ at ReadStream.emit (node:events:530:35)
16
+ at emitKeys (node:internal/readline/utils:371:14)
17
+ at emitKeys.next (<anonymous>)
18
+ at ReadStream.onData (node:internal/readline/emitKeypressEvents:64:36)
19
+ at ReadStream.emit (node:events:518:28)
20
+ at addChunk (node:internal/streams/readable:561:12)
21
+ [2026-01-23T09:43:48.089Z] [INFO] 【td-web-cli】程序启动
22
+ [2026-01-23T09:43:48.091Z] [INFO] 命令行参数解析完成:
23
+ [2026-01-23T09:43:48.995Z] [INFO] 用户选择模块:国际化
24
+ [2026-01-23T09:43:48.996Z] [INFO] 【国际化】模块开始执行
25
+ [2026-01-23T09:43:48.996Z] [INFO] 【国际化】模块启动,等待用户选择功能
26
+ [2026-01-23T09:43:50.021Z] [INFO] 用户选择功能:excel转json
27
+ [2026-01-23T09:43:50.021Z] [INFO] 【excel转json】功能开始执行
28
+ [2026-01-23T09:43:50.022Z] [INFO] 开始加载配置文件:D:\test\td-web-cli\src\config\setting.json
29
+ [2026-01-23T09:43:50.023Z] [INFO] 配置文件加载成功
30
+ [2026-01-23T09:43:53.691Z] [INFO] 开始读取excel文件:d:\test\A9-V4-CTC01翻译词条-20251215.xlsx
31
+ [2026-01-23T09:43:53.813Z] [INFO] 开始解析表头
32
+ [2026-01-23T09:43:53.814Z] [INFO] 开始解析数据行
33
+ [2026-01-23T09:43:53.815Z] [INFO] 开始生成语言文件,输出目录:d:\test\lang_20260123174353
34
+ [2026-01-23T09:43:53.818Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\cn\translate.json
35
+ [2026-01-23T09:43:53.820Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\zh\translate.json
36
+ [2026-01-23T09:43:53.832Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\de\translate.json
37
+ [2026-01-23T09:43:53.833Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\es\translate.json
38
+ [2026-01-23T09:43:53.835Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\laes\translate.json
39
+ [2026-01-23T09:43:53.836Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\nl\translate.json
40
+ [2026-01-23T09:43:53.840Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\ko\translate.json
41
+ [2026-01-23T09:43:53.841Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\fr\translate.json
42
+ [2026-01-23T09:43:53.843Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\hu\translate.json
43
+ [2026-01-23T09:43:53.844Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\it\translate.json
44
+ [2026-01-23T09:43:53.845Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\pl\translate.json
45
+ [2026-01-23T09:43:53.846Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\ro\translate.json
46
+ [2026-01-23T09:43:53.848Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\tr\translate.json
47
+ [2026-01-23T09:43:53.850Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\ru\translate.json
48
+ [2026-01-23T09:43:53.851Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\brpt\translate.json
49
+ [2026-01-23T09:43:53.852Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\pt\translate.json
50
+ [2026-01-23T09:43:53.857Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\cs\translate.json
51
+ [2026-01-23T09:43:53.858Z] [INFO] 已生成语言文件:d:\test\lang_20260123174353\uk\translate.json
52
+ [2026-01-23T09:43:53.861Z] [INFO] 全部转换完成
53
+ [2026-01-23T09:43:53.863Z] [INFO] 【excel转json】功能执行完成
54
+ [2026-01-23T09:43:53.863Z] [INFO] 【国际化】模块执行完成
55
+ [2026-01-23T09:44:24.418Z] [INFO] 【td-web-cli】程序启动
56
+ [2026-01-23T09:44:24.420Z] [INFO] 命令行参数解析完成:
57
+ [2026-01-23T09:44:25.076Z] [INFO] 用户选择模块:国际化
58
+ [2026-01-23T09:44:25.076Z] [INFO] 【国际化】模块开始执行
59
+ [2026-01-23T09:44:25.076Z] [INFO] 【国际化】模块启动,等待用户选择功能
60
+ [2026-01-23T09:44:26.585Z] [INFO] 用户选择功能:excel转json
61
+ [2026-01-23T09:44:26.585Z] [INFO] 【excel转json】功能开始执行
62
+ [2026-01-23T09:44:26.586Z] [INFO] 开始加载配置文件:D:\test\td-web-cli\src\config\setting.json
63
+ [2026-01-23T09:44:26.587Z] [INFO] 配置文件加载成功
64
+ [2026-01-23T09:44:30.266Z] [INFO] 开始读取excel文件:d:\test\A9-V4-CTC01翻译词条-20251215.xlsx
65
+ [2026-01-23T09:44:30.353Z] [INFO] 开始解析表头
66
+ [2026-01-23T09:44:30.354Z] [INFO] 开始解析数据行
67
+ [2026-01-23T09:44:30.356Z] [INFO] 开始生成语言文件,输出目录:d:\test\lang_20260123174430
68
+ [2026-01-23T09:44:30.357Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\cn\translate.json
69
+ [2026-01-23T09:44:30.361Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\zh\translate.json
70
+ [2026-01-23T09:44:30.604Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\de\translate.json
71
+ [2026-01-23T09:44:30.606Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\es\translate.json
72
+ [2026-01-23T09:44:30.608Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\laes\translate.json
73
+ [2026-01-23T09:44:30.610Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\nl\translate.json
74
+ [2026-01-23T09:44:30.612Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\ko\translate.json
75
+ [2026-01-23T09:44:30.613Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\fr\translate.json
76
+ [2026-01-23T09:44:30.614Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\hu\translate.json
77
+ [2026-01-23T09:44:30.616Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\it\translate.json
78
+ [2026-01-23T09:44:30.617Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\pl\translate.json
79
+ [2026-01-23T09:44:30.619Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\ro\translate.json
80
+ [2026-01-23T09:44:30.620Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\tr\translate.json
81
+ [2026-01-23T09:44:30.621Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\ru\translate.json
82
+ [2026-01-23T09:44:30.623Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\brpt\translate.json
83
+ [2026-01-23T09:44:30.625Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\pt\translate.json
84
+ [2026-01-23T09:44:30.627Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\cs\translate.json
85
+ [2026-01-23T09:44:30.628Z] [INFO] 已生成语言文件:d:\test\lang_20260123174430\uk\translate.json
86
+ [2026-01-23T09:44:30.629Z] [INFO] 全部转换完成
87
+ [2026-01-23T09:44:30.629Z] [INFO] 【excel转json】功能执行完成
88
+ [2026-01-23T09:44:30.630Z] [INFO] 【国际化】模块执行完成
89
+ [2026-01-23T09:50:09.256Z] [INFO] 【td-web-cli】程序启动
90
+ [2026-01-23T09:50:09.259Z] [INFO] 命令行参数解析完成:
91
+ [2026-01-23T09:50:10.219Z] [INFO] 用户选择模块:国际化
92
+ [2026-01-23T09:50:10.220Z] [INFO] 【国际化】模块开始执行
93
+ [2026-01-23T09:50:10.220Z] [INFO] 【国际化】模块启动,等待用户选择功能
94
+ [2026-01-23T09:50:11.433Z] [INFO] 用户选择功能:excel转json
95
+ [2026-01-23T09:50:11.433Z] [INFO] 【excel转json】功能开始执行
96
+ [2026-01-23T09:50:11.434Z] [INFO] 开始加载配置文件:D:\test\td-web-cli\src\config\setting.json
97
+ [2026-01-23T09:50:11.434Z] [INFO] 配置文件加载成功
98
+ [2026-01-23T09:50:14.730Z] [INFO] 开始读取excel文件:d:\test\A9-V4-CTC01翻译词条-20251215.xlsx
99
+ [2026-01-23T09:50:14.811Z] [INFO] 开始解析表头
100
+ [2026-01-23T09:50:14.812Z] [INFO] 开始解析数据行
101
+ [2026-01-23T09:50:14.813Z] [INFO] 开始生成语言文件,输出目录:d:\test\lang_20260123175014
102
+ [2026-01-23T09:50:14.824Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\cn\translate.json
103
+ [2026-01-23T09:50:14.838Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\zh\translate.json
104
+ [2026-01-23T09:50:14.839Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\de\translate.json
105
+ [2026-01-23T09:50:14.840Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\es\translate.json
106
+ [2026-01-23T09:50:14.842Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\laes\translate.json
107
+ [2026-01-23T09:50:14.843Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\nl\translate.json
108
+ [2026-01-23T09:50:14.845Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\ko\translate.json
109
+ [2026-01-23T09:50:14.846Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\fr\translate.json
110
+ [2026-01-23T09:50:14.848Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\hu\translate.json
111
+ [2026-01-23T09:50:14.856Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\it\translate.json
112
+ [2026-01-23T09:50:14.858Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\pl\translate.json
113
+ [2026-01-23T09:50:14.860Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\ro\translate.json
114
+ [2026-01-23T09:50:14.863Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\tr\translate.json
115
+ [2026-01-23T09:50:14.865Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\ru\translate.json
116
+ [2026-01-23T09:50:14.869Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\brpt\translate.json
117
+ [2026-01-23T09:50:14.870Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\pt\translate.json
118
+ [2026-01-23T09:50:14.871Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\cs\translate.json
119
+ [2026-01-23T09:50:14.872Z] [INFO] 已生成语言文件:d:\test\lang_20260123175014\uk\translate.json
120
+ [2026-01-23T09:50:14.872Z] [INFO] 全部转换完成
121
+ [2026-01-23T09:50:14.874Z] [INFO] 【excel转json】功能执行完成
122
+ [2026-01-23T09:50:14.875Z] [INFO] 【国际化】模块执行完成
123
+ [2026-01-23T09:54:36.137Z] [INFO] td-web-cli程序启动
124
+ [2026-01-23T09:54:36.139Z] [INFO] 命令行参数解析完成:
125
+ [2026-01-23T09:54:44.473Z] [INFO] 用户选择模块:国际化
126
+ [2026-01-23T09:54:44.473Z] [INFO] 国际化模块开始执行
127
+ [2026-01-23T09:54:44.473Z] [INFO] 国际化模块启动,等待用户选择功能
128
+ [2026-01-23T09:54:47.903Z] [INFO] 用户选择功能:excel转json
129
+ [2026-01-23T09:54:47.903Z] [INFO] excel转json功能开始执行
130
+ [2026-01-23T09:54:47.904Z] [INFO] 开始加载配置文件:D:\test\td-web-cli\src\config\setting.json
131
+ [2026-01-23T09:54:47.905Z] [INFO] 配置文件加载成功
132
+ [2026-01-23T09:54:58.946Z] [INFO] 开始读取excel文件:d:\test\A9-V4-CTC01翻译词条-20251215.xlsx
133
+ [2026-01-23T09:54:59.029Z] [INFO] 开始解析表头
134
+ [2026-01-23T09:54:59.030Z] [INFO] 开始解析数据行
135
+ [2026-01-23T09:54:59.031Z] [INFO] 开始生成语言文件,输出目录:d:\test\lang_20260123175459
136
+ [2026-01-23T09:54:59.032Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\cn\translate.json
137
+ [2026-01-23T09:54:59.035Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\zh\translate.json
138
+ [2026-01-23T09:54:59.036Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\de\translate.json
139
+ [2026-01-23T09:54:59.037Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\es\translate.json
140
+ [2026-01-23T09:54:59.038Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\laes\translate.json
141
+ [2026-01-23T09:54:59.039Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\nl\translate.json
142
+ [2026-01-23T09:54:59.056Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\ko\translate.json
143
+ [2026-01-23T09:54:59.057Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\fr\translate.json
144
+ [2026-01-23T09:54:59.059Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\hu\translate.json
145
+ [2026-01-23T09:54:59.060Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\it\translate.json
146
+ [2026-01-23T09:54:59.063Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\pl\translate.json
147
+ [2026-01-23T09:54:59.064Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\ro\translate.json
148
+ [2026-01-23T09:54:59.074Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\tr\translate.json
149
+ [2026-01-23T09:54:59.075Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\ru\translate.json
150
+ [2026-01-23T09:54:59.077Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\brpt\translate.json
151
+ [2026-01-23T09:54:59.079Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\pt\translate.json
152
+ [2026-01-23T09:54:59.081Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\cs\translate.json
153
+ [2026-01-23T09:54:59.083Z] [INFO] 已生成语言文件:d:\test\lang_20260123175459\uk\translate.json
154
+ [2026-01-23T09:54:59.086Z] [INFO] 全部转换完成
155
+ [2026-01-23T09:54:59.093Z] [INFO] excel转json功能执行完成
156
+ [2026-01-23T09:54:59.093Z] [INFO] 国际化模块执行完成