cc-translate 0.5.0 → 0.5.2

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.
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,uBAAuB,EACvB,KAAK,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAgBjB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAMvE,qBAAa,gBAAgB;IAC3B,uBAAuB;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,MAAM;IACN,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB;IACjB,eAAe,EAAE,mBAAmB,CAAC;IACrC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,2BAA2B;IAC3B,YAAY,EAAE,aAAa,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAEP,MAAM,EAAE,uBAAuB;IAY3C,IAAI,gBAAgB,kCAOnB;IAED,IAAI,UAAU,WAEb;IAED,cAAc,CAAC,IAAI,EAAE,mBAAmB;IAIxC,kBAAkB,aAOhB;IACF;;OAEG;IACH,SAAS,sBA0DP;IACF;;;;OAIG;IACH,eAAe,WAAkB,gBAAgB,mBAoD/C;IAEF;;;;;;;OAOG;IACH,aAAa,WAAY,cAAc,KAAG,OAAO,CAAC,sBAAsB,CAAC,CA2DvE;IACF;;;;;OAKG;IACH,mBAAmB,aACP,mBAAmB,YACnB,MAAM,KACf,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CA6B3B;IAEF;;;OAGG;IACH,kBAAkB,WAAkB,mBAAmB,mBAsCrD;CACH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,uBAAuB,EACvB,KAAK,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAgBjB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAMvE,qBAAa,gBAAgB;IAC3B,uBAAuB;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,MAAM;IACN,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB;IACjB,eAAe,EAAE,mBAAmB,CAAC;IACrC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,2BAA2B;IAC3B,YAAY,EAAE,aAAa,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAEP,MAAM,EAAE,uBAAuB;IAY3C,IAAI,gBAAgB,kCAOnB;IAED,IAAI,UAAU,WAEb;IAED,cAAc,CAAC,IAAI,EAAE,mBAAmB;IAIxC,kBAAkB,aAOhB;IACF;;OAEG;IACH,SAAS,sBAoDP;IACF;;;;OAIG;IACH,eAAe,WAAkB,gBAAgB,mBAoD/C;IAEF;;;;;;;OAOG;IACH,aAAa,WAAY,cAAc,KAAG,OAAO,CAAC,sBAAsB,CAAC,CA2DvE;IACF;;;;;OAKG;IACH,mBAAmB,aACP,mBAAmB,YACnB,MAAM,KACf,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CA6B3B;IAEF;;;OAGG;IACH,kBAAkB,WAAkB,mBAAmB,mBAsCrD;CACH"}
package/index.js CHANGED
@@ -12,7 +12,7 @@ import fs from "fs";
12
12
  import colors from "ansi-colors";
13
13
  import { OpenAI } from "openai";
14
14
  import cliProgress from "cli-progress";
15
- import { chunkArray, getRandomNumber, notExistsToCreateFile, readFileOfDirSync, readJsonFileSync, } from "./lib/utils.js";
15
+ import { dequeue, getRandomNumber, notExistsToCreateFile, readFileOfDirSync, readJsonFileSync, } from "./lib/utils.js";
16
16
  import { getCacheFileSync, registerLanguageCacheFile, translateJSONDiffToJson, } from "./lib/cache/index.js";
17
17
  import { logErrorToFile } from "./lib/log/index.js";
18
18
  import { SUPPORT_LANGUAGE_MAP } from "./lib/support.js";
@@ -70,10 +70,7 @@ export class CwalletTranslate {
70
70
  }));
71
71
  }
72
72
  }
73
- promises = chunkArray(arr, 8);
74
- for (const chunk of promises) {
75
- yield Promise.all(chunk.map((fn) => fn()));
76
- }
73
+ yield dequeue(arr);
77
74
  multiBar.stop();
78
75
  console.log("🚀 翻译完毕");
79
76
  });
@@ -174,7 +171,7 @@ export class CwalletTranslate {
174
171
  value: (_c = (_b = chatCompletion === null || chatCompletion === void 0 ? void 0 : chatCompletion.choices[0]) === null || _b === void 0 ? void 0 : _b.message.content) !== null && _c !== void 0 ? _c : value,
175
172
  index,
176
173
  });
177
- }), getRandomNumber(200, 300));
174
+ }), getRandomNumber(120, 130));
178
175
  }
179
176
  catch (error) {
180
177
  logErrorToFile({ error: error, key, fileName, language });
@@ -18,7 +18,7 @@ export declare const getCacheFileSync: (filePath: string) => Promise<IJson>;
18
18
  */
19
19
  export declare const registerLanguageCacheFile: (params: IRegisterLanguageCacheFile) => Promise<void>;
20
20
  /**
21
- * 根据现有的源文件生成缓存
21
+ * 根据已翻译文件生成缓存
22
22
  */
23
23
  export declare const generateCache: (params: IGenerateCacheParams) => Promise<void>;
24
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/cache/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,EACL,0BAA0B,EAC3B,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,gBACrB,KAAK,mBACD,KAAK,UAiBvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,aAAoB,MAAM,KAAG,OAAO,CAAC,KAAK,CAMtE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,WAC5B,0BAA0B,kBAmBnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,WAAkB,oBAAoB,kBAoB/D,CAAC;AAsCF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,WAAY,wBAAwB,SA8BhE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/cache/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,EACL,0BAA0B,EAC3B,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,gBACrB,KAAK,mBACD,KAAK,UAiBvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,aAAoB,MAAM,KAAG,OAAO,CAAC,KAAK,CAMtE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,WAC5B,0BAA0B,kBAmBnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,WAAkB,oBAAoB,kBAwC/D,CAAC;AAwCF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,WAAY,wBAAwB,SA8BhE,CAAC"}
@@ -65,21 +65,32 @@ export const registerLanguageCacheFile = (params) => __awaiter(void 0, void 0, v
65
65
  yield fs.writeFileSync(cacheFilePath, JSON.stringify(cacheObject, null, 2), "utf8");
66
66
  });
67
67
  /**
68
- * 根据现有的源文件生成缓存
68
+ * 根据已翻译文件生成缓存
69
69
  */
70
70
  export const generateCache = (params) => __awaiter(void 0, void 0, void 0, function* () {
71
- // 获取待翻译的源文件夹
72
- // 读取文件夹下的所有文件
73
- // 复制文件中的所有内容
74
- // 遍历需要翻译的语言 生成缓存文件
75
- const { sourceFolderPath, languages, exportFolderPath } = params;
71
+ const { sourceFolderPath, languages, exportFolderPath, sourceLanguage } = params;
76
72
  if (!languages || !Array.isArray(languages) || languages.length === 0)
77
73
  return;
78
- const fileData = readAllFilesOfFolder(sourceFolderPath);
79
- fileData.forEach(({ fileName, data }) => {
80
- languages.forEach((language) => {
74
+ // 读取源文件夹下的所有文件
75
+ const sourceFileData = readAllFilesOfFolder(path.resolve(sourceFolderPath, sourceLanguage));
76
+ // 源文件数据map
77
+ const sourceFileMap = {};
78
+ sourceFileData.forEach((item) => {
79
+ sourceFileMap[item.fileName] = item;
80
+ });
81
+ languages.forEach((language) => {
82
+ // 获取当前语言的文件数据
83
+ const currentFileData = readAllFilesOfFolder(path.join(sourceFolderPath, language));
84
+ currentFileData.forEach(({ data, fileName }) => {
85
+ const translated = {};
86
+ // 遍历文件中的已经翻译的内容
87
+ Object.entries(data).forEach(([key, value]) => {
88
+ if (value) {
89
+ translated[key] = sourceFileMap[fileName].data[key];
90
+ }
91
+ });
81
92
  notExistsToCreateFile(path.resolve(exportFolderPath, language));
82
- fs.writeFileSync(path.resolve(exportFolderPath, language, fileName), data, "utf-8");
93
+ fs.writeFileSync(path.resolve(exportFolderPath, language, fileName), JSON.stringify(translated, null, 2), "utf-8");
83
94
  });
84
95
  });
85
96
  });
@@ -90,6 +101,8 @@ export const generateCache = (params) => __awaiter(void 0, void 0, void 0, funct
90
101
  */
91
102
  const readAllFilesOfFolder = (sourceFolderPath) => {
92
103
  try {
104
+ if (!fs.existsSync(sourceFolderPath))
105
+ return [];
93
106
  const sourceFiles = fs.readdirSync(sourceFolderPath);
94
107
  return sourceFiles.map((fileName) => {
95
108
  return readFile(sourceFolderPath, fileName);
@@ -104,10 +117,11 @@ const readFile = (sourceFolderPath, fileName) => {
104
117
  const filePath = path.resolve(sourceFolderPath, fileName);
105
118
  try {
106
119
  const jsonData = fs.readFileSync(filePath, "utf-8");
120
+ const data = JSON.parse(jsonData);
107
121
  return {
108
122
  fileName,
109
123
  filePath,
110
- data: jsonData,
124
+ data,
111
125
  };
112
126
  }
113
127
  catch (error) {
@@ -115,7 +129,7 @@ const readFile = (sourceFolderPath, fileName) => {
115
129
  return {
116
130
  fileName,
117
131
  filePath,
118
- data: "{}",
132
+ data: {},
119
133
  };
120
134
  }
121
135
  };
package/lib/utils.d.ts CHANGED
@@ -23,4 +23,5 @@ export declare const isDirectoryPath: (path: string) => boolean;
23
23
  export declare const readFileOfDirSync: (dirPath: string) => string[];
24
24
  export declare function chunkArray<T extends object>(array: T[], chunkSize: number): T[][];
25
25
  export declare function intersection<T>(arr1: T[], arr2: T[]): T[];
26
+ export declare const dequeue: (queue: (() => Promise<void>)[]) => Promise<void>;
26
27
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,SAAU,MAAM,SAGjD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,SAAgB,MAAM,iBAUlD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,WAAY,qBAAqB,SAS3D,CAAC;AAEF,eAAO,MAAM,eAAe,QAAS,MAAM,OAAO,MAAM,WAEvD,CAAC;AAEF,eAAO,MAAM,eAAe,SAAU,MAAM,YAG3C,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAAa,MAAM,aAKhD,CAAC;AAEF,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,SASzE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAczD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGjD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,SAAU,MAAM,SAGjD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,SAAgB,MAAM,iBAUlD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,WAAY,qBAAqB,SAS3D,CAAC;AAEF,eAAO,MAAM,eAAe,QAAS,MAAM,OAAO,MAAM,WAEvD,CAAC;AAEF,eAAO,MAAM,eAAe,SAAU,MAAM,YAG3C,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAAa,MAAM,aAKhD,CAAC;AAEF,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,SASzE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAczD;AAED,eAAO,MAAM,OAAO,UAAiB,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,kBAoB3D,CAAC"}
package/lib/utils.js CHANGED
@@ -9,6 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import path from "path";
11
11
  import fs from "fs";
12
+ import { logErrorToFile } from "./log/index.js";
12
13
  /**
13
14
  * 不存在的文件夹则创建
14
15
  * @param {string} path
@@ -86,3 +87,25 @@ export function intersection(arr1, arr2) {
86
87
  }
87
88
  return [...intersectionSet];
88
89
  }
90
+ export const dequeue = (queue) => __awaiter(void 0, void 0, void 0, function* () {
91
+ while (queue.length) {
92
+ const requestPromiseFactory = queue.shift(); // 出列
93
+ if (!requestPromiseFactory) {
94
+ dequeue(queue);
95
+ return;
96
+ }
97
+ try {
98
+ yield requestPromiseFactory();
99
+ }
100
+ catch (err) {
101
+ logErrorToFile({
102
+ error: err,
103
+ language: "ar",
104
+ fileName: "",
105
+ key: "",
106
+ });
107
+ }
108
+ finally {
109
+ }
110
+ }
111
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cc-translate",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "A language translation tool based on OpenAI",
5
5
  "author": "maybe",
6
6
  "packageManager": "yarn@1.22.22",
package/src/index.ts CHANGED
@@ -14,7 +14,7 @@ import {
14
14
  SupportLanguageType,
15
15
  } from "./types";
16
16
  import {
17
- chunkArray,
17
+ dequeue,
18
18
  getRandomNumber,
19
19
  notExistsToCreateFile,
20
20
  readFileOfDirSync,
@@ -139,13 +139,7 @@ export class CwalletTranslate {
139
139
  );
140
140
  }
141
141
  }
142
-
143
- promises = chunkArray(arr, 8);
144
-
145
- for (const chunk of promises) {
146
- await Promise.all(chunk.map((fn) => fn()));
147
- }
148
-
142
+ await dequeue(arr);
149
143
  multiBar.stop();
150
144
  console.log("🚀 翻译完毕");
151
145
  };
@@ -264,7 +258,7 @@ export class CwalletTranslate {
264
258
  value: chatCompletion?.choices[0]?.message.content ?? value,
265
259
  index,
266
260
  });
267
- }, getRandomNumber(200, 300));
261
+ }, getRandomNumber(120, 130));
268
262
  } catch (error) {
269
263
  logErrorToFile({ error: error as Error, key, fileName, language });
270
264
  resolve({
@@ -6,6 +6,7 @@ import {
6
6
  readJsonFileSync,
7
7
  } from "../utils.js";
8
8
  import {
9
+ ICacheFile,
9
10
  IDeleteSingleCacheParams,
10
11
  IGenerateCacheParams,
11
12
  IJson,
@@ -79,24 +80,44 @@ export const registerLanguageCacheFile = async (
79
80
  };
80
81
 
81
82
  /**
82
- * 根据现有的源文件生成缓存
83
+ * 根据已翻译文件生成缓存
83
84
  */
84
85
  export const generateCache = async (params: IGenerateCacheParams) => {
85
- // 获取待翻译的源文件夹
86
- // 读取文件夹下的所有文件
87
- // 复制文件中的所有内容
88
- // 遍历需要翻译的语言 生成缓存文件
89
- const { sourceFolderPath, languages, exportFolderPath } = params;
86
+ const { sourceFolderPath, languages, exportFolderPath, sourceLanguage } =
87
+ params;
90
88
 
91
89
  if (!languages || !Array.isArray(languages) || languages.length === 0) return;
92
90
 
93
- const fileData = readAllFilesOfFolder(sourceFolderPath);
94
- fileData.forEach(({ fileName, data }) => {
95
- languages.forEach((language) => {
91
+ // 读取源文件夹下的所有文件
92
+ const sourceFileData = readAllFilesOfFolder(
93
+ path.resolve(sourceFolderPath, sourceLanguage)
94
+ );
95
+ // 源文件数据map
96
+ const sourceFileMap: Record<string, ICacheFile> = {};
97
+
98
+ sourceFileData.forEach((item) => {
99
+ sourceFileMap[item.fileName] = item;
100
+ });
101
+
102
+ languages.forEach((language) => {
103
+ // 获取当前语言的文件数据
104
+ const currentFileData = readAllFilesOfFolder(
105
+ path.join(sourceFolderPath, language)
106
+ );
107
+
108
+ currentFileData.forEach(({ data, fileName }) => {
109
+ const translated: Record<string, string> = {};
110
+ // 遍历文件中的已经翻译的内容
111
+ Object.entries(data).forEach(([key, value]) => {
112
+ if (value) {
113
+ translated[key] = sourceFileMap[fileName].data[key];
114
+ }
115
+ });
116
+
96
117
  notExistsToCreateFile(path.resolve(exportFolderPath, language));
97
118
  fs.writeFileSync(
98
119
  path.resolve(exportFolderPath, language, fileName),
99
- data,
120
+ JSON.stringify(translated, null, 2),
100
121
  "utf-8"
101
122
  );
102
123
  });
@@ -109,6 +130,7 @@ export const generateCache = async (params: IGenerateCacheParams) => {
109
130
  */
110
131
  const readAllFilesOfFolder = (sourceFolderPath: string) => {
111
132
  try {
133
+ if (!fs.existsSync(sourceFolderPath)) return [];
112
134
  const sourceFiles = fs.readdirSync(sourceFolderPath);
113
135
  return sourceFiles.map((fileName) => {
114
136
  return readFile(sourceFolderPath, fileName);
@@ -119,15 +141,16 @@ const readAllFilesOfFolder = (sourceFolderPath: string) => {
119
141
  }
120
142
  };
121
143
 
122
- const readFile = (sourceFolderPath: string, fileName: string) => {
144
+ const readFile = (sourceFolderPath: string, fileName: string): ICacheFile => {
123
145
  const filePath = path.resolve(sourceFolderPath, fileName);
124
146
 
125
147
  try {
126
148
  const jsonData = fs.readFileSync(filePath, "utf-8");
149
+ const data = JSON.parse(jsonData) as Record<string, string>;
127
150
  return {
128
151
  fileName,
129
152
  filePath,
130
- data: jsonData,
153
+ data,
131
154
  };
132
155
  } catch (error) {
133
156
  console.error("read file error:", error);
@@ -135,7 +158,7 @@ const readFile = (sourceFolderPath: string, fileName: string) => {
135
158
  return {
136
159
  fileName,
137
160
  filePath,
138
- data: "{}",
161
+ data: {},
139
162
  };
140
163
  }
141
164
  };
package/src/lib/utils.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import path from "path";
2
2
  import fs from "fs";
3
3
  import { ICreateJsonFileParams } from "../types";
4
+ import { logErrorToFile } from "./log/index.js";
4
5
 
5
6
  /**
6
7
  * 不存在的文件夹则创建
@@ -88,3 +89,25 @@ export function intersection<T>(arr1: T[], arr2: T[]): T[] {
88
89
 
89
90
  return [...intersectionSet];
90
91
  }
92
+
93
+ export const dequeue = async (queue: (() => Promise<void>)[]) => {
94
+ while (queue.length) {
95
+ const requestPromiseFactory = queue.shift(); // 出列
96
+ if (!requestPromiseFactory) {
97
+ dequeue(queue);
98
+ return;
99
+ }
100
+
101
+ try {
102
+ await requestPromiseFactory();
103
+ } catch (err) {
104
+ logErrorToFile({
105
+ error: err as Error,
106
+ language: "ar",
107
+ fileName: "",
108
+ key: "",
109
+ });
110
+ } finally {
111
+ }
112
+ }
113
+ };
@@ -123,6 +123,7 @@ export interface ITestParams {
123
123
 
124
124
  export interface IGenerateCacheParams {
125
125
  sourceFolderPath: string;
126
+ sourceLanguage: SupportLanguageType;
126
127
  languages: SupportLanguageType[];
127
128
  exportFolderPath: string;
128
129
  }
@@ -134,3 +135,9 @@ export interface IDeleteSingleCacheParams {
134
135
  /** 不传默认删除所有 */
135
136
  languages?: SupportLanguageType[];
136
137
  }
138
+
139
+ export interface ICacheFile {
140
+ fileName: string;
141
+ filePath: string;
142
+ data: Record<string, string>;
143
+ }
package/test.mjs CHANGED
@@ -1,15 +1,17 @@
1
1
  import path from "path";
2
- import { deleteBatchCache, generateCache } from "./index.js";
2
+ import { deleteBatchCache, generateCache, CwalletTranslate } from "./index.js";
3
3
 
4
- // deleteBatchCache({
5
- // keys: ["10001", "10002"],
6
- // cacheFolderPath: path.resolve("./src/cache"),
7
- // cacheFileName: "common.json",
8
- // languages: [],
9
- // });
4
+ // // deleteBatchCache({
5
+ // // keys: ["10001", "10002"],
6
+ // // cacheFolderPath: path.resolve("./src/cache"),
7
+ // // cacheFileName: "common.json",
8
+ // // languages: [],
9
+ // // });
10
10
 
11
11
  // generateCache({
12
- // sourceFolderPath: path.resolve("./src/langs/en"),
12
+ // sourceFolderPath: path.resolve("./src/langs"),
13
+ // sourceLanguage: "en",
13
14
  // exportFolderPath: path.resolve("./src/cache"),
14
- // languages: ["ja", "ar", "bn", "de", "id"],
15
+ // languages: ["ja", "zh-CN"],
15
16
  // });
17
+
package/types/index.d.ts CHANGED
@@ -80,6 +80,7 @@ export interface ITestParams {
80
80
  }
81
81
  export interface IGenerateCacheParams {
82
82
  sourceFolderPath: string;
83
+ sourceLanguage: SupportLanguageType;
83
84
  languages: SupportLanguageType[];
84
85
  exportFolderPath: string;
85
86
  }
@@ -90,4 +91,9 @@ export interface IDeleteSingleCacheParams {
90
91
  /** 不传默认删除所有 */
91
92
  languages?: SupportLanguageType[];
92
93
  }
94
+ export interface ICacheFile {
95
+ fileName: string;
96
+ filePath: string;
97
+ data: Record<string, string>;
98
+ }
93
99
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/types/index.ts"],"names":[],"mappings":"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"}