gpt-po 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,55 @@
1
+ # PO文件CHATGPT翻译工具
2
+
3
+ gettext(po)文件翻译工具,支持自定义系统提示词和用户字典,支持翻译指定的po文件到指定的目标语言,支持根据pot文件更新po文件。
4
+
5
+ 使用其他语言阅读:[English](./Readme.md) | 简体中文
6
+
7
+ ## 安装
8
+
9
+ ```
10
+ npm install openai
11
+ ```
12
+
13
+ 使用此工具前先设置 `OPENAI_API_KEY`,Windows中使用 `set OPENAI_API_KEY=<key>`, Linux中 `export OPENAI_API_KEY=<key>`
14
+
15
+ **建议使用付费的OpenAI API以提高翻译速度,免费的OpenAI API速度较慢(一分钟3条),且有使用限制。**
16
+
17
+ ## 常见用法
18
+
19
+ - `gpt-po sync --po <file> --pot <file>` 根据pot文件更新po文件,先更新po,再进行翻译
20
+ - `gpt-po --po <file>` 翻译指定的po文件到指定的目标语言,默认目标语言是简体中文
21
+ - `gpt-po userdict` 修改或查看用户字典
22
+ - `gpt-po systemprompt` 修改或查看系统提示词,如果你不确定如何使用,可以不用修改
23
+
24
+ ```
25
+ Usage: gpt-po [command] [options]
26
+
27
+ command tool for translate po files by gpt
28
+
29
+ Options:
30
+ -V, --version output the version number
31
+ -h, --help display help for command
32
+
33
+ Commands:
34
+ translate [options] translate po file (default command)
35
+ sync [options] update po from pot file
36
+ systemprompt open/edit system prompt
37
+ userdict open/edit user dictionary
38
+ help [command] display help for command
39
+ ```
40
+
41
+ ```
42
+ Usage: gpt-po [options]
43
+
44
+ translate po file (default command)
45
+
46
+ Options:
47
+ -k, --key <key> openai api key (env: OPENAI_API_KEY)
48
+ --host <host> openai api host (env: OPENAI_API_HOST)
49
+ --model <model> openai model (choices: "gpt-4", "gpt-4-0314", "gpt-4-32k", "gpt-4-32k-0314", "gpt-3.5-turbo", "gpt-3.5-turbo-0301",
50
+ default: "gpt-3.5-turbo")
51
+ --po <file> po file path
52
+ -l, --lang <lang> target language (default: "simplified chinese")
53
+ -o, --output <file> output file path, overwirte po file by default
54
+ -h, --help display help for command
55
+ ```
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gpt-po",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "command tool for translate po files by gpt",
5
5
  "main": "lib/src/index.js",
6
6
  "bin": {
@@ -24,9 +24,6 @@
24
24
  "bugs": {
25
25
  "url": "https://github.com/ryanhex53/gpt-po/issues"
26
26
  },
27
- "files": [
28
- "lib/**/*"
29
- ],
30
27
  "homepage": "https://github.com/ryanhex53/gpt-po#readme",
31
28
  "keywords": [
32
29
  "gettext",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gpt-po",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "command tool for translate po files by gpt",
5
5
  "main": "lib/src/index.js",
6
6
  "bin": {
@@ -24,9 +24,6 @@
24
24
  "bugs": {
25
25
  "url": "https://github.com/ryanhex53/gpt-po/issues"
26
26
  },
27
- "files": [
28
- "lib/**/*"
29
- ],
30
27
  "homepage": "https://github.com/ryanhex53/gpt-po#readme",
31
28
  "keywords": [
32
29
  "gettext",
@@ -55,4 +52,4 @@
55
52
  "engines": {
56
53
  "node": ">=12.0.0"
57
54
  }
58
- }
55
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAA6C;AAE7C,SAAsB,IAAI,CAAC,EAAU,EAAE,GAAW;;QAChD,MAAM,OAAO,GAAG,MAAM,IAAA,eAAO,EAAC,EAAE,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAO,EAAC,GAAG,CAAC,CAAC;QAEpC,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;YAClE,uCAAuC;YACvC,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAChD,IACE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC;oBACzB,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;oBAChC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAC1C;oBACA,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;iBACtE;aACF;SACF;QACD,OAAO,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC7C,MAAM,IAAA,iBAAS,EAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;CAAA;AAlBD,oBAkBC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/translate.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}