@thor123141245r/ai-translate 0.0.0 → 1.0.1
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 +161 -71
- package/README.zh-CN.md +194 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +77 -0
- package/dist/cli.js.map +1 -1
- package/dist/i18n/align.d.ts +3 -0
- package/dist/i18n/align.d.ts.map +1 -0
- package/dist/i18n/align.js +46 -0
- package/dist/i18n/align.js.map +1 -0
- package/dist/i18n/cache.d.ts +14 -0
- package/dist/i18n/cache.d.ts.map +1 -0
- package/dist/i18n/cache.js +36 -0
- package/dist/i18n/cache.js.map +1 -0
- package/dist/i18n/command.d.ts +7 -0
- package/dist/i18n/command.d.ts.map +1 -0
- package/dist/i18n/command.js +84 -0
- package/dist/i18n/command.js.map +1 -0
- package/dist/i18n/extract.d.ts +7 -0
- package/dist/i18n/extract.d.ts.map +1 -0
- package/dist/i18n/extract.js +24 -0
- package/dist/i18n/extract.js.map +1 -0
- package/dist/i18n/json-path.d.ts +7 -0
- package/dist/i18n/json-path.d.ts.map +1 -0
- package/dist/i18n/json-path.js +61 -0
- package/dist/i18n/json-path.js.map +1 -0
- package/dist/i18n/parse.d.ts +6 -0
- package/dist/i18n/parse.d.ts.map +1 -0
- package/dist/i18n/parse.js +44 -0
- package/dist/i18n/parse.js.map +1 -0
- package/dist/i18n/placeholders.d.ts +7 -0
- package/dist/i18n/placeholders.d.ts.map +1 -0
- package/dist/i18n/placeholders.js +44 -0
- package/dist/i18n/placeholders.js.map +1 -0
- package/dist/i18n/prompt.d.ts +13 -0
- package/dist/i18n/prompt.d.ts.map +1 -0
- package/dist/i18n/prompt.js +37 -0
- package/dist/i18n/prompt.js.map +1 -0
- package/dist/i18n/translate.d.ts +29 -0
- package/dist/i18n/translate.d.ts.map +1 -0
- package/dist/i18n/translate.js +199 -0
- package/dist/i18n/translate.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +6 -1
- package/.agentdocs/code-changes/2026-01-22/AI/347/277/273/350/257/221/345/231/250TS/345/256/236/347/216/260-/345/256/236/347/216/260.md +0 -22
- package/.agentdocs/code-changes/2026-01-23/CLI/345/210/206/345/217/221-npx/345/256/236/347/216/260.md +0 -18
- package/.agentdocs/code-changes/2026-01-23/sora-watermask-remover-/345/233/275/351/231/205/345/214/226/347/277/273/350/257/221-/345/256/236/347/216/260.md +0 -37
- package/.agentdocs/code-changes/2026-01-23//351/205/215/347/275/256/350/257/273/345/217/226-/347/216/257/345/242/203/345/217/230/351/207/217/344/274/230/345/205/210-/345/256/236/347/216/260.md +0 -22
- package/.agentdocs/plans/2026-01-22/AI/347/277/273/350/257/221/345/231/250TS/345/256/236/347/216/260-/344/274/230/345/214/226/346/226/271/346/241/210.md +0 -67
- package/.agentdocs/plans/2026-01-23/CLI/345/210/206/345/217/221-npx/346/226/271/346/241/210.md +0 -60
- package/.agentdocs/plans/2026-01-23/sora-watermask-remover-/345/233/275/351/231/205/345/214/226/347/277/273/350/257/221-/344/274/230/345/214/226/346/226/271/346/241/210.md +0 -51
- package/.agentdocs/plans/2026-01-23//351/205/215/347/275/256/350/257/273/345/217/226-/347/216/257/345/242/203/345/217/230/351/207/217/344/274/230/345/205/210-/344/274/230/345/214/226/346/226/271/346/241/210.md +0 -80
- package/SKILL.md +0 -103
- package/src/asyncTransform.ts +0 -31
- package/src/bin/ai-translate.ts +0 -5
- package/src/cli.ts +0 -313
- package/src/index.ts +0 -9
- package/src/logger.ts +0 -3
- package/src/model.ts +0 -139
- package/src/prompt.ts +0 -71
- package/src/split.ts +0 -111
- package/src/utils.ts +0 -15
- package/tsconfig.json +0 -19
package/README.md
CHANGED
|
@@ -1,77 +1,170 @@
|
|
|
1
|
-
#
|
|
1
|
+
# ai-translate: Reusable AI Translation CLI + i18n JSON Batch Translator
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Source repo for the npm package `@thor123141245r/ai-translate`.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
- CLI:`ai-translate` 命令行翻译
|
|
7
|
-
- 模块:`AiTranslateTransform`、`TextSplitterStream` 等可复用组件
|
|
8
|
-
- 配置:`.ai-translate.json` 本地或全局配置
|
|
9
|
-
- 最小验证脚本:本地可运行的快速自测
|
|
5
|
+
Looking for Chinese docs? See `README.zh-CN.md`.
|
|
10
6
|
|
|
11
|
-
|
|
7
|
+
This project provides two main capabilities:
|
|
8
|
+
- General file translation: split a file into chunks and translate with an LLM (good for Markdown, technical docs, code comments, etc.)
|
|
9
|
+
- i18n JSON translation: use `en.json` as the canonical source of truth and batch-generate/fill other locale JSON files (preserve keys and structure, translate string values only)
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
The key design principle is: keep structure handling local, and let the model only translate text. This avoids unstable results caused by sending large structured files into the LLM context.
|
|
12
|
+
|
|
13
|
+
## Features
|
|
14
|
+
- CLI:
|
|
15
|
+
- `ai-translate` for general file translation
|
|
16
|
+
- `ai-translate i18n` for i18n JSON translation based on a source JSON
|
|
17
|
+
- Reusable modules: `AiTranslateTransform`, `TextSplitterStream`, `translateI18nDir`
|
|
18
|
+
- Config file: `.ai-translate.json` (supports env var overrides)
|
|
19
|
+
- Providers via LangChain SDK: ollama / openai / anthropic / mistral / deepseek
|
|
20
|
+
- i18n-specific:
|
|
21
|
+
- Translate values only; never modify keys/structure
|
|
22
|
+
- Batch model calls to keep context stable
|
|
23
|
+
- Placeholder protection (e.g. `{{name}}`, `{name}`, `%s`)
|
|
24
|
+
- Local cache to reduce repeated translations
|
|
25
|
+
|
|
26
|
+
## CLI
|
|
27
|
+
|
|
28
|
+
### General translation flags
|
|
29
|
+
| Flag | Description | Notes |
|
|
15
30
|
| --- | --- | --- |
|
|
16
|
-
| `-h`, `--help` |
|
|
17
|
-
| `-v`, `--version` |
|
|
18
|
-
| `-c`, `--config DIR` |
|
|
19
|
-
| `-f`, `--from LANG` |
|
|
20
|
-
| `-t`, `--to LANG` |
|
|
21
|
-
| `-i`, `--input FILE` |
|
|
22
|
-
| `-o`, `--output FILE` |
|
|
23
|
-
| `--format FORMAT` |
|
|
24
|
-
| `set KEY VALUE` |
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
31
|
+
| `-h`, `--help` | Show help | |
|
|
32
|
+
| `-v`, `--version` | Show version | |
|
|
33
|
+
| `-c`, `--config DIR` | Config directory or config file path | reads `.ai-translate.json` |
|
|
34
|
+
| `-f`, `--from LANG` | Source language | English name or BCP47 code |
|
|
35
|
+
| `-t`, `--to LANG` | Target language | English name or BCP47 code |
|
|
36
|
+
| `-i`, `--input FILE` | Input file path | |
|
|
37
|
+
| `-o`, `--output FILE` | Output file path | |
|
|
38
|
+
| `--format FORMAT` | Input format | cpp/go/java/js/php/proto/python/rst/ruby/rust/scala/swift/markdown/latex/html |
|
|
39
|
+
| `set KEY VALUE` | Write config key | see config section |
|
|
40
|
+
| `i18n` | i18n JSON translation | translate values only |
|
|
41
|
+
|
|
42
|
+
### Config keys
|
|
43
|
+
| Key | Description | Default |
|
|
28
44
|
| --- | --- | --- |
|
|
29
|
-
| `provider` |
|
|
30
|
-
| `model` |
|
|
31
|
-
| `apiKey` |
|
|
32
|
-
| `baseUrl` |
|
|
33
|
-
| `temperature` |
|
|
34
|
-
| `maxRetries` |
|
|
35
|
-
| `chunkSize` |
|
|
36
|
-
|
|
37
|
-
##
|
|
45
|
+
| `provider` | Provider | `ollama` |
|
|
46
|
+
| `model` | Model name | `qwen2.5:7b` |
|
|
47
|
+
| `apiKey` | API key | empty |
|
|
48
|
+
| `baseUrl` | Base URL | empty |
|
|
49
|
+
| `temperature` | Temperature | `0.1` |
|
|
50
|
+
| `maxRetries` | Max retries | `10` |
|
|
51
|
+
| `chunkSize` | Split chunk size | `1000` |
|
|
52
|
+
|
|
53
|
+
## Quick Start
|
|
54
|
+
|
|
55
|
+
### Run via npx / pnpx
|
|
38
56
|
```bash
|
|
39
|
-
|
|
57
|
+
npx @thor123141245r/ai-translate --help
|
|
58
|
+
pnpx @thor123141245r/ai-translate --help
|
|
40
59
|
```
|
|
41
60
|
|
|
42
|
-
|
|
61
|
+
### Choose a provider (required for real translations)
|
|
62
|
+
This tool needs access to an LLM provider. If no provider is configured, translation calls will fail.
|
|
63
|
+
|
|
64
|
+
Pick ONE of the options below:
|
|
65
|
+
|
|
66
|
+
#### Option A: OpenAI (cloud)
|
|
67
|
+
Set env vars:
|
|
43
68
|
```bash
|
|
44
|
-
|
|
69
|
+
export OPENAI_API_KEY="YOUR_KEY"
|
|
45
70
|
```
|
|
46
71
|
|
|
47
|
-
|
|
48
|
-
无需全局安装,直接运行:
|
|
72
|
+
Then set provider (writes `.ai-translate.json`):
|
|
49
73
|
```bash
|
|
50
|
-
npx @thor123141245r/ai-translate
|
|
51
|
-
|
|
74
|
+
npx @thor123141245r/ai-translate set provider openai
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
#### Option B: Anthropic (cloud)
|
|
78
|
+
```bash
|
|
79
|
+
export ANTHROPIC_API_KEY="YOUR_KEY"
|
|
80
|
+
npx @thor123141245r/ai-translate set provider anthropic
|
|
52
81
|
```
|
|
53
82
|
|
|
54
|
-
|
|
83
|
+
#### Option C: Mistral (cloud)
|
|
55
84
|
```bash
|
|
56
|
-
|
|
85
|
+
export MISTRAL_API_KEY="YOUR_KEY"
|
|
86
|
+
npx @thor123141245r/ai-translate set provider mistral
|
|
57
87
|
```
|
|
58
88
|
|
|
59
|
-
|
|
89
|
+
#### Option D: DeepSeek (cloud)
|
|
60
90
|
```bash
|
|
61
|
-
|
|
91
|
+
export DEEPSEEK_API_KEY="YOUR_KEY"
|
|
92
|
+
npx @thor123141245r/ai-translate set provider deepseek
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
#### Option E: Ollama (local)
|
|
96
|
+
Start Ollama and make sure `OLLAMA_BASE_URL` works (default is `http://127.0.0.1:11434`).
|
|
97
|
+
```bash
|
|
98
|
+
export OLLAMA_BASE_URL="http://127.0.0.1:11434"
|
|
99
|
+
npx @thor123141245r/ai-translate set provider ollama
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Notes:
|
|
103
|
+
- `AI_TRANSLATE_API_KEY` overrides provider-specific API keys.
|
|
104
|
+
- `AI_TRANSLATE_BASE_URL` overrides provider-specific base URLs.
|
|
105
|
+
|
|
106
|
+
### Local development
|
|
107
|
+
```bash
|
|
108
|
+
npm install
|
|
109
|
+
npm run build
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Usage
|
|
113
|
+
|
|
114
|
+
### General file translation
|
|
115
|
+
```bash
|
|
116
|
+
# Translate a file
|
|
62
117
|
node dist/bin/ai-translate.js -f Spanish -t English -i input.md -o output.md
|
|
63
118
|
|
|
64
|
-
#
|
|
119
|
+
# Read from stdin using config in current folder
|
|
65
120
|
echo "translate" | node dist/bin/ai-translate.js -f en -t en -c .
|
|
66
121
|
```
|
|
67
122
|
|
|
68
|
-
|
|
123
|
+
How it works:
|
|
124
|
+
1. Infer `--format` from the flag or file extension
|
|
125
|
+
2. Split input into chunks (default chunkSize=1000)
|
|
126
|
+
3. Translate each chunk using a single consistent prompt
|
|
127
|
+
4. Preserve original whitespace as much as possible
|
|
128
|
+
|
|
129
|
+
### i18n JSON translation (use en.json as source of truth)
|
|
130
|
+
Do NOT translate `en.json` as plain text. It will likely break JSON syntax or translate keys.
|
|
131
|
+
Use `i18n` subcommand to translate leaf string values only.
|
|
132
|
+
|
|
69
133
|
```bash
|
|
70
|
-
|
|
134
|
+
# Run via npx
|
|
135
|
+
npx @thor123141245r/ai-translate i18n --base ./src/i18n/pages/sora-watermask-remover --source en --targets ru
|
|
136
|
+
|
|
137
|
+
# Default mode=fill: keep existing translations, only fill missing values
|
|
138
|
+
node dist/bin/ai-translate.js i18n --base ./src/i18n/pages/sora-watermask-remover --source en
|
|
139
|
+
|
|
140
|
+
# Specify targets (also creates target files when missing)
|
|
141
|
+
node dist/bin/ai-translate.js i18n --base ./src/i18n/pages/sora-watermask-remover --source en --targets ru,de
|
|
142
|
+
|
|
143
|
+
# Overwrite all values (use with care)
|
|
144
|
+
node dist/bin/ai-translate.js i18n --base ./src/i18n/pages/sora-watermask-remover --source en --targets ru --mode overwrite
|
|
145
|
+
|
|
146
|
+
# Dry run (no file writes)
|
|
147
|
+
node dist/bin/ai-translate.js i18n --base ./src/i18n/pages/sora-watermask-remover --source en --dry
|
|
71
148
|
```
|
|
72
149
|
|
|
73
|
-
|
|
74
|
-
|
|
150
|
+
How it works:
|
|
151
|
+
- Reads source JSON from `--base` (default `{source}.json`, e.g. `en.json`)
|
|
152
|
+
- Target files are `{lang}.json` (e.g. `ru.json`)
|
|
153
|
+
- Extracts all leaf string values from the source JSON
|
|
154
|
+
- Calls the model in batches (model never sees the whole JSON)
|
|
155
|
+
- Writes translated values back by key path (keys/structure are preserved)
|
|
156
|
+
- Writes a cache file `.ai-translate.cache.json` under the base directory by default
|
|
157
|
+
|
|
158
|
+
Common i18n flags:
|
|
159
|
+
- `--mode fill` (default): fill missing values only
|
|
160
|
+
- `--mode overwrite`: translate all string values
|
|
161
|
+
- `--mode prune`: align to source and remove extra keys
|
|
162
|
+
- `--batchMaxItems` / `--batchMaxChars`: control batch size per model call
|
|
163
|
+
- `--cache`: cache file name under `--base`
|
|
164
|
+
|
|
165
|
+
## Configuration
|
|
166
|
+
Config file: `.ai-translate.json`. You can write it via CLI:
|
|
167
|
+
|
|
75
168
|
```bash
|
|
76
169
|
node dist/bin/ai-translate.js set provider ollama
|
|
77
170
|
node dist/bin/ai-translate.js set apiKey YOUR_API_KEY
|
|
@@ -79,42 +172,39 @@ node dist/bin/ai-translate.js set model qwen2.5:7b
|
|
|
79
172
|
node dist/bin/ai-translate.js set chunkSize 1000
|
|
80
173
|
```
|
|
81
174
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
- model
|
|
85
|
-
- apiKey
|
|
86
|
-
- baseUrl
|
|
87
|
-
- temperature
|
|
88
|
-
- maxRetries
|
|
89
|
-
- chunkSize
|
|
175
|
+
## Environment Variable Priority
|
|
176
|
+
Priority: env vars > config file > defaults.
|
|
90
177
|
|
|
91
|
-
|
|
92
|
-
运行时读取优先级:环境变量 > 配置文件 > 默认值。
|
|
93
|
-
|
|
94
|
-
优先读取的通用环境变量:
|
|
178
|
+
Common env vars:
|
|
95
179
|
- `AI_TRANSLATE_API_KEY`
|
|
96
180
|
- `AI_TRANSLATE_BASE_URL`
|
|
97
181
|
|
|
98
|
-
|
|
182
|
+
Provider-specific env vars:
|
|
99
183
|
- `OPENAI_API_KEY` / `OPENAI_BASE_URL`
|
|
100
184
|
- `ANTHROPIC_API_KEY` / `ANTHROPIC_BASE_URL`
|
|
101
185
|
- `MISTRAL_API_KEY` / `MISTRAL_BASE_URL`
|
|
102
186
|
- `DEEPSEEK_API_KEY` / `DEEPSEEK_BASE_URL`
|
|
103
187
|
- `OLLAMA_BASE_URL`
|
|
104
188
|
|
|
105
|
-
|
|
106
|
-
-
|
|
107
|
-
-
|
|
108
|
-
|
|
109
|
-
## 复用说明
|
|
110
|
-
本实现依赖 LangChain 的官方 SDK 与 `@commenthol/ai-translate` 的设计模式:
|
|
111
|
-
- 文本分块使用 `@langchain/textsplitters`
|
|
112
|
-
- 模型调用使用 `@langchain/*` 系列 ChatModel
|
|
113
|
-
- 配置管理使用 `@commenthol/app-config`
|
|
189
|
+
## Notes
|
|
190
|
+
- For i18n, always use `ai-translate i18n` instead of translating JSON as plain text.
|
|
191
|
+
- Avoid verbose logs and sensitive data in production environments.
|
|
114
192
|
|
|
115
|
-
##
|
|
193
|
+
## Minimal Validation
|
|
116
194
|
```bash
|
|
117
195
|
npm run validate
|
|
118
196
|
```
|
|
119
197
|
|
|
120
|
-
|
|
198
|
+
# About the Author
|
|
199
|
+
|
|
200
|
+
I build **AI SaaS for global markets**—from **idea validation & vibe coding** to **engineering, infra, SEO/backlinks, and growth experiments**.
|
|
201
|
+
|
|
202
|
+
Everything here comes from **real projects, real traffic, and real revenue attempts**.
|
|
203
|
+
|
|
204
|
+
- **Knowledge Base**: [Thor’s AI Going-Global Content Planning](https://my.feishu.cn/wiki/DUzewBOq2iy1rPkSYJecMRXYnFh)
|
|
205
|
+
- **Blog**: [Thor-AI Blog](https://www.notion.so/Thor-AI-2eaf0388ab4680d0a98bedc8d290e1be?pvs=21)
|
|
206
|
+
- **Open Source (High Star)**: Smart Campus System — [GitHub](https://github.com/214140846/TOGO_School_Miniprograme) | [Gitee](https://gitee.com/zengyunengineer/TOGO_School_Miniprograme) | [Skillhub-MCP](https://github.com/214140846/skillhub-mcp)
|
|
207
|
+
- **Social**: [Jike](https://web.okjike.com/u/159D450D-2193-4739-8825-AA8EBEC2E9B4)
|
|
208
|
+
- **Products**: [sora2.cloud](https://sora2.cloud/) | [ricebowl.ai](https://ricebowl.ai/)
|
|
209
|
+
- **Notes**: [AI Video & Image Collection](https://www.notion.so/Ricebowl-AI-2eef0388ab468155b14cd0ac0dd14fa9?pvs=21)
|
|
210
|
+
- **PyPI**: [skillhub-mcp](https://pypi.org/project/skillhub-mcp/)
|
package/README.zh-CN.md
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# ai-translate:可复用的 AI 翻译 CLI 与 i18n JSON 批量翻译
|
|
2
|
+
|
|
3
|
+
本仓库是 npm 包 `@thor123141245r/ai-translate` 的源码。
|
|
4
|
+
|
|
5
|
+
它提供两类能力:
|
|
6
|
+
- 通用文件翻译:把任意文本文件分块后交给大模型翻译(适合 Markdown、技术文档、代码注释等)
|
|
7
|
+
- i18n JSON 翻译:以 `en.json` 为标准,批量生成/补齐其他语言 JSON(严格保留 key 与结构,只翻译字符串 value)
|
|
8
|
+
|
|
9
|
+
核心设计原则是:结构在本地处理,模型只做翻译。避免把大体量结构化文件整段塞进模型上下文导致不稳定。
|
|
10
|
+
|
|
11
|
+
## 功能概览
|
|
12
|
+
- CLI:
|
|
13
|
+
- `ai-translate` 通用文件翻译
|
|
14
|
+
- `ai-translate i18n` i18n JSON 批量翻译
|
|
15
|
+
- 可复用模块:`AiTranslateTransform`、`TextSplitterStream`、`translateI18nDir`
|
|
16
|
+
- 配置:`.ai-translate.json`(支持环境变量覆盖)
|
|
17
|
+
- 兼容多模型提供方:ollama / openai / anthropic / mistral / deepseek(通过 LangChain 官方 SDK)
|
|
18
|
+
- i18n 专用能力:
|
|
19
|
+
- 只翻译 value,不改 key 与结构
|
|
20
|
+
- 批处理调用,避免上下文混乱
|
|
21
|
+
- 占位符保护(例如 `{{name}}`、`{name}`、`%s`)
|
|
22
|
+
- 本地缓存,减少重复翻译
|
|
23
|
+
|
|
24
|
+
## CLI
|
|
25
|
+
|
|
26
|
+
### 通用翻译参数
|
|
27
|
+
| 参数 | 作用 | 备注 |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| `-h`, `--help` | 输出帮助信息 | |
|
|
30
|
+
| `-v`, `--version` | 输出版本号 | |
|
|
31
|
+
| `-c`, `--config DIR` | 指定配置目录或配置文件路径 | 读取 `.ai-translate.json` |
|
|
32
|
+
| `-f`, `--from LANG` | 源语言 | 可用英文名或 BCP47 代码 |
|
|
33
|
+
| `-t`, `--to LANG` | 目标语言 | 可用英文名或 BCP47 代码 |
|
|
34
|
+
| `-i`, `--input FILE` | 输入文件路径 | |
|
|
35
|
+
| `-o`, `--output FILE` | 输出文件路径 | |
|
|
36
|
+
| `--format FORMAT` | 指定输入格式 | cpp/go/java/js/php/proto/python/rst/ruby/rust/scala/swift/markdown/latex/html |
|
|
37
|
+
| `set KEY VALUE` | 写入配置项 | 见配置说明 |
|
|
38
|
+
| `i18n` | i18n JSON 批量翻译 | 只翻译 value |
|
|
39
|
+
|
|
40
|
+
### 配置项
|
|
41
|
+
| 参数 | 作用 | 默认值 |
|
|
42
|
+
| --- | --- | --- |
|
|
43
|
+
| `provider` | 模型提供方 | `ollama` |
|
|
44
|
+
| `model` | 模型名称 | `qwen2.5:7b` |
|
|
45
|
+
| `apiKey` | 模型 API Key | 空 |
|
|
46
|
+
| `baseUrl` | 模型 Base URL | 空 |
|
|
47
|
+
| `temperature` | 模型温度 | `0.1` |
|
|
48
|
+
| `maxRetries` | 最大重试次数 | `10` |
|
|
49
|
+
| `chunkSize` | 文本分块大小 | `1000` |
|
|
50
|
+
|
|
51
|
+
## 快速开始
|
|
52
|
+
|
|
53
|
+
### npx / pnpx 运行
|
|
54
|
+
```bash
|
|
55
|
+
npx @thor123141245r/ai-translate --help
|
|
56
|
+
pnpx @thor123141245r/ai-translate --help
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 选择模型提供方(要真正翻译必须配置)
|
|
60
|
+
本工具需要能访问某个大模型提供方;如果未配置 provider 或未提供 key,翻译调用会失败。
|
|
61
|
+
|
|
62
|
+
下面任选一种方式:
|
|
63
|
+
|
|
64
|
+
#### 方式 A:OpenAI(云)
|
|
65
|
+
先配置环境变量:
|
|
66
|
+
```bash
|
|
67
|
+
export OPENAI_API_KEY="你的key"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
再设置 provider(会写入 `.ai-translate.json`):
|
|
71
|
+
```bash
|
|
72
|
+
npx @thor123141245r/ai-translate set provider openai
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
#### 方式 B:Anthropic(云)
|
|
76
|
+
```bash
|
|
77
|
+
export ANTHROPIC_API_KEY="你的key"
|
|
78
|
+
npx @thor123141245r/ai-translate set provider anthropic
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
#### 方式 C:Mistral(云)
|
|
82
|
+
```bash
|
|
83
|
+
export MISTRAL_API_KEY="你的key"
|
|
84
|
+
npx @thor123141245r/ai-translate set provider mistral
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
#### 方式 D:DeepSeek(云)
|
|
88
|
+
```bash
|
|
89
|
+
export DEEPSEEK_API_KEY="你的key"
|
|
90
|
+
npx @thor123141245r/ai-translate set provider deepseek
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
#### 方式 E:Ollama(本地)
|
|
94
|
+
启动 Ollama,并确保 `OLLAMA_BASE_URL` 可访问(默认 `http://127.0.0.1:11434`)。
|
|
95
|
+
```bash
|
|
96
|
+
export OLLAMA_BASE_URL="http://127.0.0.1:11434"
|
|
97
|
+
npx @thor123141245r/ai-translate set provider ollama
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
补充说明:
|
|
101
|
+
- `AI_TRANSLATE_API_KEY` 会覆盖各 provider 的 `*_API_KEY`
|
|
102
|
+
- `AI_TRANSLATE_BASE_URL` 会覆盖各 provider 的 `*_BASE_URL` 或 `OLLAMA_BASE_URL`
|
|
103
|
+
|
|
104
|
+
### 本地开发
|
|
105
|
+
```bash
|
|
106
|
+
npm install
|
|
107
|
+
npm run build
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## 用法
|
|
111
|
+
|
|
112
|
+
### 通用文件翻译
|
|
113
|
+
```bash
|
|
114
|
+
# 翻译文件
|
|
115
|
+
node dist/bin/ai-translate.js -f Spanish -t English -i input.md -o output.md
|
|
116
|
+
|
|
117
|
+
# 从 stdin 读取,并使用当前目录的配置文件
|
|
118
|
+
echo "translate" | node dist/bin/ai-translate.js -f en -t en -c .
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
工作方式:
|
|
122
|
+
1. 通过 `--format` 或文件扩展名推断格式
|
|
123
|
+
2. 将输入按 chunkSize 分块(默认 1000)
|
|
124
|
+
3. 对每个分块使用统一 Prompt 调用模型翻译
|
|
125
|
+
4. 尽量保留原始空白与结构
|
|
126
|
+
|
|
127
|
+
### i18n JSON 翻译(以 en.json 为标准)
|
|
128
|
+
不要把 `en.json` 当纯文本翻译,这很容易破坏 JSON 语法或把 key 翻译掉。
|
|
129
|
+
请使用 `i18n` 子命令:只翻译叶子字符串 value。
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
# 用 npx 直接运行
|
|
133
|
+
npx @thor123141245r/ai-translate i18n --base ./src/i18n/pages/sora-watermask-remover --source en --targets ru
|
|
134
|
+
|
|
135
|
+
# 默认 mode=fill:保留已有翻译,只补齐缺失项
|
|
136
|
+
node dist/bin/ai-translate.js i18n --base ./src/i18n/pages/sora-watermask-remover --source en
|
|
137
|
+
|
|
138
|
+
# 指定目标语言(即使目标文件不存在也会生成)
|
|
139
|
+
node dist/bin/ai-translate.js i18n --base ./src/i18n/pages/sora-watermask-remover --source en --targets ru,de
|
|
140
|
+
|
|
141
|
+
# 覆盖重翻(慎用)
|
|
142
|
+
node dist/bin/ai-translate.js i18n --base ./src/i18n/pages/sora-watermask-remover --source en --targets ru --mode overwrite
|
|
143
|
+
|
|
144
|
+
# 仅预览统计(不写文件)
|
|
145
|
+
node dist/bin/ai-translate.js i18n --base ./src/i18n/pages/sora-watermask-remover --source en --dry
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
工作方式:
|
|
149
|
+
- 从 `--base` 目录读取源文件(默认 `{source}.json`,例如 `en.json`)
|
|
150
|
+
- 目标文件默认 `{lang}.json`(例如 `ru.json`)
|
|
151
|
+
- 本地解析 JSON,提取所有“叶子字符串 value”作为待翻译单元
|
|
152
|
+
- 通过批处理调用模型(模型不会拿到整份 JSON)
|
|
153
|
+
- 按原 key 路径写回翻译结果,严格不改 key
|
|
154
|
+
- 默认在目录下写入缓存 `.ai-translate.cache.json`,减少重复翻译
|
|
155
|
+
|
|
156
|
+
i18n 常用参数:
|
|
157
|
+
- `--mode fill`:只补齐缺失项(推荐默认)
|
|
158
|
+
- `--mode overwrite`:重翻全部字符串 value
|
|
159
|
+
- `--mode prune`:对齐结构并清理多余 key
|
|
160
|
+
- `--batchMaxItems` / `--batchMaxChars`:控制批处理大小
|
|
161
|
+
- `--cache`:自定义缓存文件名(相对于 `--base`)
|
|
162
|
+
|
|
163
|
+
## 配置说明
|
|
164
|
+
配置文件名为 `.ai-translate.json`,可通过命令行写入:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
node dist/bin/ai-translate.js set provider ollama
|
|
168
|
+
node dist/bin/ai-translate.js set apiKey YOUR_API_KEY
|
|
169
|
+
node dist/bin/ai-translate.js set model qwen2.5:7b
|
|
170
|
+
node dist/bin/ai-translate.js set chunkSize 1000
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## 环境变量优先级
|
|
174
|
+
优先级:环境变量 > 配置文件 > 默认值。
|
|
175
|
+
|
|
176
|
+
通用环境变量:
|
|
177
|
+
- `AI_TRANSLATE_API_KEY`
|
|
178
|
+
- `AI_TRANSLATE_BASE_URL`
|
|
179
|
+
|
|
180
|
+
提供方环境变量:
|
|
181
|
+
- `OPENAI_API_KEY` / `OPENAI_BASE_URL`
|
|
182
|
+
- `ANTHROPIC_API_KEY` / `ANTHROPIC_BASE_URL`
|
|
183
|
+
- `MISTRAL_API_KEY` / `MISTRAL_BASE_URL`
|
|
184
|
+
- `DEEPSEEK_API_KEY` / `DEEPSEEK_BASE_URL`
|
|
185
|
+
- `OLLAMA_BASE_URL`
|
|
186
|
+
|
|
187
|
+
## 注意事项
|
|
188
|
+
- i18n 场景请优先使用 `ai-translate i18n`,不要直接把 `en.json` 当纯文本翻译
|
|
189
|
+
- 生产环境注意避免输出冗长日志与敏感信息
|
|
190
|
+
|
|
191
|
+
## 最小自测
|
|
192
|
+
```bash
|
|
193
|
+
npm run validate
|
|
194
|
+
```
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AA2LA,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,EAAE;;;CAoBxC,CAAA;AAWD,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,OAAO,SAEjD,CAAA;AAuFD,eAAO,MAAM,GAAG,GAAU,OAAO,MAAM,EAAE,kBA8ExC,CAAA"}
|
package/dist/cli.js
CHANGED
|
@@ -6,6 +6,7 @@ import { AppConfig, StringSchema, v } from '@commenthol/app-config';
|
|
|
6
6
|
import { logger } from './logger.js';
|
|
7
7
|
import { modelFactory, AiTranslateTransform } from './model.js';
|
|
8
8
|
import { TextSplitterStream, recursiveChunkTextSplitter, getFormatByExtension } from './split.js';
|
|
9
|
+
import { runI18nCommand } from './i18n/command.js';
|
|
9
10
|
const log = logger('cli');
|
|
10
11
|
const help = {};
|
|
11
12
|
help._ = `
|
|
@@ -17,6 +18,7 @@ Usage:
|
|
|
17
18
|
|
|
18
19
|
Commands:
|
|
19
20
|
set set config value
|
|
21
|
+
i18n translate i18n json files based on a source json
|
|
20
22
|
|
|
21
23
|
Flags:
|
|
22
24
|
-h, --help Help for ai-translate
|
|
@@ -62,6 +64,29 @@ Available KEYs:
|
|
|
62
64
|
maxRetries max. number of retries; default=10
|
|
63
65
|
chunkSize number of chunks used in text-splitter; default=1000
|
|
64
66
|
`;
|
|
67
|
+
help.i18n = `
|
|
68
|
+
Translate i18n JSON files based on a source JSON (default: en.json)
|
|
69
|
+
|
|
70
|
+
Reads source file (like en.json) in a directory, and writes translated files
|
|
71
|
+
like ru.json, de.json... while preserving keys and structure.
|
|
72
|
+
|
|
73
|
+
Usage:
|
|
74
|
+
ai-translate [flags] i18n --base DIR [--source en] [--targets ru,de]
|
|
75
|
+
|
|
76
|
+
Required:
|
|
77
|
+
--base DIR directory containing source json and target json files
|
|
78
|
+
|
|
79
|
+
Optional:
|
|
80
|
+
--source LANG source language code; default="en"
|
|
81
|
+
--file FILE source file name; default="{source}.json"
|
|
82
|
+
--targets LIST comma/space separated target languages; if omitted,
|
|
83
|
+
infer from existing *.json in DIR (excluding source)
|
|
84
|
+
--mode MODE fill|overwrite|prune; default="fill"
|
|
85
|
+
--dry dry run (no file writes)
|
|
86
|
+
--cache FILE cache file name under DIR; default=".ai-translate.cache.json"
|
|
87
|
+
--batchMaxItems N max items per model call; default=40
|
|
88
|
+
--batchMaxChars N max chars per model call; default=6000
|
|
89
|
+
`;
|
|
65
90
|
const PACKAGE_JSON = '../package.json';
|
|
66
91
|
const APP = 'ai-translate';
|
|
67
92
|
const CONF_FILE = `.${APP}.json`;
|
|
@@ -71,6 +96,9 @@ const commands = {
|
|
|
71
96
|
const key = nextArg(argv);
|
|
72
97
|
const value = nextArg(argv);
|
|
73
98
|
c.set = [key, value];
|
|
99
|
+
},
|
|
100
|
+
i18n: (c) => {
|
|
101
|
+
c.i18n = true;
|
|
74
102
|
}
|
|
75
103
|
};
|
|
76
104
|
const flags = {
|
|
@@ -103,6 +131,49 @@ const flags = {
|
|
|
103
131
|
const format = nextArg(argv);
|
|
104
132
|
if (format)
|
|
105
133
|
f.format = format;
|
|
134
|
+
},
|
|
135
|
+
'--base': (f, argv) => {
|
|
136
|
+
const dir = nextArg(argv);
|
|
137
|
+
if (dir)
|
|
138
|
+
f.base = dir;
|
|
139
|
+
},
|
|
140
|
+
'--source': (f, argv) => {
|
|
141
|
+
const lang = nextArg(argv);
|
|
142
|
+
if (lang)
|
|
143
|
+
f.source = lang;
|
|
144
|
+
},
|
|
145
|
+
'--file': (f, argv) => {
|
|
146
|
+
const name = nextArg(argv);
|
|
147
|
+
if (name)
|
|
148
|
+
f.file = name;
|
|
149
|
+
},
|
|
150
|
+
'--targets': (f, argv) => {
|
|
151
|
+
const list = nextArg(argv);
|
|
152
|
+
if (list)
|
|
153
|
+
f.targets = list;
|
|
154
|
+
},
|
|
155
|
+
'--mode': (f, argv) => {
|
|
156
|
+
const m = nextArg(argv);
|
|
157
|
+
if (m)
|
|
158
|
+
f.mode = m;
|
|
159
|
+
},
|
|
160
|
+
'--dry': (f) => {
|
|
161
|
+
f.dry = true;
|
|
162
|
+
},
|
|
163
|
+
'--cache': (f, argv) => {
|
|
164
|
+
const name = nextArg(argv);
|
|
165
|
+
if (name)
|
|
166
|
+
f.cache = name;
|
|
167
|
+
},
|
|
168
|
+
'--batchMaxItems': (f, argv) => {
|
|
169
|
+
const n = nextArg(argv);
|
|
170
|
+
if (n)
|
|
171
|
+
f.batchMaxItems = n;
|
|
172
|
+
},
|
|
173
|
+
'--batchMaxChars': (f, argv) => {
|
|
174
|
+
const n = nextArg(argv);
|
|
175
|
+
if (n)
|
|
176
|
+
f.batchMaxChars = n;
|
|
106
177
|
}
|
|
107
178
|
};
|
|
108
179
|
flags['-h'] = flags['--help'];
|
|
@@ -228,6 +299,12 @@ export const cli = async (args) => {
|
|
|
228
299
|
}
|
|
229
300
|
return;
|
|
230
301
|
}
|
|
302
|
+
if (cmd.i18n) {
|
|
303
|
+
const runtimeConfig = resolveRuntimeConfig(appConf.config);
|
|
304
|
+
const model = modelFactory(runtimeConfig);
|
|
305
|
+
await runI18nCommand({ console: _console, model, argvOpts: opts });
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
231
308
|
const sourceLanguage = String(opts.sourceLanguage || DEFAULT_LANG);
|
|
232
309
|
const targetLanguage = String(opts.targetLanguage || DEFAULT_LANG);
|
|
233
310
|
const reader = opts.input ? fs.createReadStream(String(opts.input)) : process.stdin;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"align.d.ts","sourceRoot":"","sources":["../../src/i18n/align.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAA;AAEtD,eAAO,MAAM,cAAc,GACzB,QAAQ,OAAO,EACf,QAAQ,OAAO,EACf,MAAM,SAAS,KACd,OA6CF,CAAA"}
|