cc-translate 0.4.0 → 0.4.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/README.md +52 -0
- package/index.d.ts +7 -1
- package/index.d.ts.map +1 -1
- package/index.js +8 -11
- package/package.json +1 -1
- package/src/index.ts +0 -2
- package/types/index.d.ts +0 -1
- package/types/index.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# cc-translate
|
|
2
|
+
一个基于Chat GPT的翻译库 🚀
|
|
3
|
+
|
|
4
|
+
## 特征
|
|
5
|
+
- 支持通过一种源语言翻译出多国语言
|
|
6
|
+
- 默认使用gpt-4o模型进行翻译,你也可以设置.gpt-4o性价比更高
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## 安装
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
|
|
13
|
+
# 使用 npm
|
|
14
|
+
npm install cc-translate -D
|
|
15
|
+
|
|
16
|
+
# 或者使用 yarn
|
|
17
|
+
yarn add cc-translate -D
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 快速开始
|
|
22
|
+
|
|
23
|
+
```mjs
|
|
24
|
+
# translate.mjs
|
|
25
|
+
import {CwalletTranslate} from 'cc-translate';
|
|
26
|
+
|
|
27
|
+
# 获取当前文件的完整路径
|
|
28
|
+
const __dirname = import.meta.dirname;
|
|
29
|
+
|
|
30
|
+
# 创建一个translate实例
|
|
31
|
+
const client = new CwalletTranslate({
|
|
32
|
+
key: "your api key",
|
|
33
|
+
sourceLanguage: 'en',
|
|
34
|
+
# 缓存文件路径
|
|
35
|
+
cacheFileRootPath: path.resolve(__dirname, './cache'),
|
|
36
|
+
# 翻译源文件路径
|
|
37
|
+
fileRootPath: path.resolve(__dirname, './langs'),
|
|
38
|
+
# 调整翻译语境,告诉gpt我们的翻译要求。提高翻译准确性!
|
|
39
|
+
fineTune: ['我们是一个区块链钱包', '请使用行业专业术语并更切合生活的翻译',....],
|
|
40
|
+
# 需要翻译的语言列表
|
|
41
|
+
languages: [
|
|
42
|
+
'zh-CN',
|
|
43
|
+
'zh-TW',
|
|
44
|
+
'ja',
|
|
45
|
+
'ar',
|
|
46
|
+
...
|
|
47
|
+
],
|
|
48
|
+
# 输出文件路径
|
|
49
|
+
outputRootPath: path.resolve(__dirname, './langs'),
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
```
|
package/index.d.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { OpenAI } from "openai";
|
|
2
2
|
import { ICwalletTranslateParams, IJson, IOpenaiConfig, IOutputLanguageFile, ISingleTranslate, ITranslateChat, ITranslateChatResponse, SupportLanguageType } from "./types";
|
|
3
3
|
export declare class CwalletTranslate {
|
|
4
|
+
/** open ai api key */
|
|
4
5
|
private OPENAI_KEY;
|
|
6
|
+
/** */
|
|
5
7
|
CACHE_ROOT_PATH: string;
|
|
6
8
|
ENTRY_ROOT_PATH: string;
|
|
9
|
+
/** default en */
|
|
7
10
|
SOURCE_LANGUAGE: SupportLanguageType;
|
|
8
11
|
OUTPUT_ROOT_PATH: string | undefined;
|
|
9
12
|
languages: SupportLanguageType[];
|
|
10
13
|
client: OpenAI | null;
|
|
14
|
+
/** default model gpt-4o */
|
|
11
15
|
openaiConfig: IOpenaiConfig;
|
|
12
16
|
fineTune: string[];
|
|
13
17
|
constructor(params: ICwalletTranslateParams);
|
|
@@ -15,7 +19,9 @@ export declare class CwalletTranslate {
|
|
|
15
19
|
get outputPath(): string;
|
|
16
20
|
searchLanguage(code: SupportLanguageType): import("./types").ILanguage | undefined;
|
|
17
21
|
createOpenAIClient: () => void;
|
|
18
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* 翻译入口文件的所有支持的语言文件夹和其中的文件
|
|
24
|
+
*/
|
|
19
25
|
translate: () => Promise<void>;
|
|
20
26
|
/**
|
|
21
27
|
* 翻译单个文件
|
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;AAsBjB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,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,YAAY,EAAE,aAAa,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAEP,MAAM,EAAE,uBAAuB;
|
|
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;AAsBjB,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"}
|
package/index.js
CHANGED
|
@@ -31,7 +31,9 @@ export class CwalletTranslate {
|
|
|
31
31
|
});
|
|
32
32
|
this.client = client;
|
|
33
33
|
};
|
|
34
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* 翻译入口文件的所有支持的语言文件夹和其中的文件
|
|
36
|
+
*/
|
|
35
37
|
this.translate = () => __awaiter(this, void 0, void 0, function* () {
|
|
36
38
|
console.log("🚀 开始翻译");
|
|
37
39
|
console.log(`🚀 使用的模型: ${this.openaiConfig.model} 🚀`);
|
|
@@ -39,6 +41,7 @@ export class CwalletTranslate {
|
|
|
39
41
|
const translateFolderPath = path.join(this.ENTRY_ROOT_PATH, this.SOURCE_LANGUAGE);
|
|
40
42
|
// 翻译源语言问价夹下的所有json文件
|
|
41
43
|
const translateFolders = yield readFileOfDirSync(translateFolderPath);
|
|
44
|
+
console.log("🚀 ~ 需要翻译语言的文件:", translateFolders);
|
|
42
45
|
// 创建进度条
|
|
43
46
|
const multiBar = new cliProgress.MultiBar({
|
|
44
47
|
clearOnComplete: false,
|
|
@@ -85,8 +88,6 @@ export class CwalletTranslate {
|
|
|
85
88
|
/** 待翻译的文件名 */
|
|
86
89
|
fileName, translateJson, multiBar, callback, } = params;
|
|
87
90
|
try {
|
|
88
|
-
/** 待翻译的文件路径 */
|
|
89
|
-
const translateFilePath = path.join(this.ENTRY_ROOT_PATH, language, fileName);
|
|
90
91
|
// 等待翻译的数组
|
|
91
92
|
const jsonMap = {};
|
|
92
93
|
// 生成chat循环代码
|
|
@@ -109,7 +110,6 @@ export class CwalletTranslate {
|
|
|
109
110
|
jsonMap,
|
|
110
111
|
folderName: language,
|
|
111
112
|
fileName,
|
|
112
|
-
translateFilePath,
|
|
113
113
|
});
|
|
114
114
|
callback && callback();
|
|
115
115
|
}
|
|
@@ -209,7 +209,6 @@ export class CwalletTranslate {
|
|
|
209
209
|
jsonMap: {},
|
|
210
210
|
folderName: language,
|
|
211
211
|
fileName,
|
|
212
|
-
translateFilePath,
|
|
213
212
|
});
|
|
214
213
|
}
|
|
215
214
|
return;
|
|
@@ -221,7 +220,7 @@ export class CwalletTranslate {
|
|
|
221
220
|
* @param {Object} jsonMap
|
|
222
221
|
*/
|
|
223
222
|
this.outputLanguageFile = (params) => __awaiter(this, void 0, void 0, function* () {
|
|
224
|
-
const { folderName, fileName, jsonMap
|
|
223
|
+
const { folderName, fileName, jsonMap } = params;
|
|
225
224
|
const outputFilePath = path.join(this.outputPath, folderName, fileName);
|
|
226
225
|
//创建输出文件夹
|
|
227
226
|
notExistsToCreateFile(this.outputPath);
|
|
@@ -248,13 +247,11 @@ export class CwalletTranslate {
|
|
|
248
247
|
});
|
|
249
248
|
});
|
|
250
249
|
this.OPENAI_KEY = params.key;
|
|
251
|
-
this.CACHE_ROOT_PATH =
|
|
252
|
-
this.ENTRY_ROOT_PATH =
|
|
250
|
+
this.CACHE_ROOT_PATH = params.cacheFileRootPath;
|
|
251
|
+
this.ENTRY_ROOT_PATH = params.fileRootPath;
|
|
253
252
|
this.openaiConfig = (_a = params.openaiConfig) !== null && _a !== void 0 ? _a : DEFAULT_OPENAI_CONFIG;
|
|
254
253
|
this.SOURCE_LANGUAGE = (_b = params.sourceLanguage) !== null && _b !== void 0 ? _b : "en";
|
|
255
|
-
this.OUTPUT_ROOT_PATH = params.outputRootPath
|
|
256
|
-
? path.resolve(__dirname, params.outputRootPath)
|
|
257
|
-
: undefined;
|
|
254
|
+
this.OUTPUT_ROOT_PATH = params.outputRootPath;
|
|
258
255
|
this.fineTune = params.fineTune;
|
|
259
256
|
this.languages = (_c = params.languages) !== null && _c !== void 0 ? _c : [];
|
|
260
257
|
this.createOpenAIClient();
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
package/types/index.d.ts
CHANGED
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,WAAW,SAAS;IACxB,aAAa;IACb,IAAI,EAAE,mBAAmB,CAAC;IAC1B,UAAU;IACV,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,mBAAmB,GAC3B,IAAI,GACJ,OAAO,GACP,OAAO,GACP,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,OAAO,GACP,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,OAAO,GACP,IAAI,GACJ,IAAI,GACJ,OAAO,GACP,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,OAAO,CAAC;AAEZ,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACtC,MAAM,CAAC,mBAAmB,EAAE,SAAS,CAAC,CACvC,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/types/index.ts"],"names":[],"mappings":"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"}
|