@llm-translate/cli 1.0.0-next.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/.dockerignore +51 -0
- package/.env.example +33 -0
- package/.github/workflows/docs-pages.yml +57 -0
- package/.github/workflows/release.yml +49 -0
- package/.translaterc.json +44 -0
- package/CLAUDE.md +243 -0
- package/Dockerfile +55 -0
- package/README.md +371 -0
- package/RFC.md +1595 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +4494 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/index.d.ts +1152 -0
- package/dist/index.js +3841 -0
- package/dist/index.js.map +1 -0
- package/docker-compose.yml +56 -0
- package/docs/.vitepress/config.ts +161 -0
- package/docs/api/agent.md +262 -0
- package/docs/api/engine.md +274 -0
- package/docs/api/index.md +171 -0
- package/docs/api/providers.md +304 -0
- package/docs/changelog.md +64 -0
- package/docs/cli/dir.md +243 -0
- package/docs/cli/file.md +213 -0
- package/docs/cli/glossary.md +273 -0
- package/docs/cli/index.md +129 -0
- package/docs/cli/init.md +158 -0
- package/docs/cli/serve.md +211 -0
- package/docs/glossary.json +235 -0
- package/docs/guide/chunking.md +272 -0
- package/docs/guide/configuration.md +139 -0
- package/docs/guide/cost-optimization.md +237 -0
- package/docs/guide/docker.md +371 -0
- package/docs/guide/getting-started.md +150 -0
- package/docs/guide/glossary.md +241 -0
- package/docs/guide/index.md +86 -0
- package/docs/guide/ollama.md +515 -0
- package/docs/guide/prompt-caching.md +221 -0
- package/docs/guide/providers.md +232 -0
- package/docs/guide/quality-control.md +206 -0
- package/docs/guide/vitepress-integration.md +265 -0
- package/docs/index.md +63 -0
- package/docs/ja/api/agent.md +262 -0
- package/docs/ja/api/engine.md +274 -0
- package/docs/ja/api/index.md +171 -0
- package/docs/ja/api/providers.md +304 -0
- package/docs/ja/changelog.md +64 -0
- package/docs/ja/cli/dir.md +243 -0
- package/docs/ja/cli/file.md +213 -0
- package/docs/ja/cli/glossary.md +273 -0
- package/docs/ja/cli/index.md +111 -0
- package/docs/ja/cli/init.md +158 -0
- package/docs/ja/guide/chunking.md +271 -0
- package/docs/ja/guide/configuration.md +139 -0
- package/docs/ja/guide/cost-optimization.md +30 -0
- package/docs/ja/guide/getting-started.md +150 -0
- package/docs/ja/guide/glossary.md +214 -0
- package/docs/ja/guide/index.md +32 -0
- package/docs/ja/guide/ollama.md +410 -0
- package/docs/ja/guide/prompt-caching.md +221 -0
- package/docs/ja/guide/providers.md +232 -0
- package/docs/ja/guide/quality-control.md +137 -0
- package/docs/ja/guide/vitepress-integration.md +265 -0
- package/docs/ja/index.md +58 -0
- package/docs/ko/api/agent.md +262 -0
- package/docs/ko/api/engine.md +274 -0
- package/docs/ko/api/index.md +171 -0
- package/docs/ko/api/providers.md +304 -0
- package/docs/ko/changelog.md +64 -0
- package/docs/ko/cli/dir.md +243 -0
- package/docs/ko/cli/file.md +213 -0
- package/docs/ko/cli/glossary.md +273 -0
- package/docs/ko/cli/index.md +111 -0
- package/docs/ko/cli/init.md +158 -0
- package/docs/ko/guide/chunking.md +271 -0
- package/docs/ko/guide/configuration.md +139 -0
- package/docs/ko/guide/cost-optimization.md +30 -0
- package/docs/ko/guide/getting-started.md +150 -0
- package/docs/ko/guide/glossary.md +214 -0
- package/docs/ko/guide/index.md +32 -0
- package/docs/ko/guide/ollama.md +410 -0
- package/docs/ko/guide/prompt-caching.md +221 -0
- package/docs/ko/guide/providers.md +232 -0
- package/docs/ko/guide/quality-control.md +137 -0
- package/docs/ko/guide/vitepress-integration.md +265 -0
- package/docs/ko/index.md +58 -0
- package/docs/zh/api/agent.md +262 -0
- package/docs/zh/api/engine.md +274 -0
- package/docs/zh/api/index.md +171 -0
- package/docs/zh/api/providers.md +304 -0
- package/docs/zh/changelog.md +64 -0
- package/docs/zh/cli/dir.md +243 -0
- package/docs/zh/cli/file.md +213 -0
- package/docs/zh/cli/glossary.md +273 -0
- package/docs/zh/cli/index.md +111 -0
- package/docs/zh/cli/init.md +158 -0
- package/docs/zh/guide/chunking.md +271 -0
- package/docs/zh/guide/configuration.md +139 -0
- package/docs/zh/guide/cost-optimization.md +30 -0
- package/docs/zh/guide/getting-started.md +150 -0
- package/docs/zh/guide/glossary.md +214 -0
- package/docs/zh/guide/index.md +32 -0
- package/docs/zh/guide/ollama.md +410 -0
- package/docs/zh/guide/prompt-caching.md +221 -0
- package/docs/zh/guide/providers.md +232 -0
- package/docs/zh/guide/quality-control.md +137 -0
- package/docs/zh/guide/vitepress-integration.md +265 -0
- package/docs/zh/index.md +58 -0
- package/package.json +91 -0
- package/release.config.mjs +15 -0
- package/schemas/glossary.schema.json +110 -0
- package/src/cli/commands/dir.ts +469 -0
- package/src/cli/commands/file.ts +291 -0
- package/src/cli/commands/glossary.ts +221 -0
- package/src/cli/commands/init.ts +68 -0
- package/src/cli/commands/serve.ts +60 -0
- package/src/cli/index.ts +64 -0
- package/src/cli/options.ts +59 -0
- package/src/core/agent.ts +1119 -0
- package/src/core/chunker.ts +391 -0
- package/src/core/engine.ts +634 -0
- package/src/errors.ts +188 -0
- package/src/index.ts +147 -0
- package/src/integrations/vitepress.ts +549 -0
- package/src/parsers/markdown.ts +383 -0
- package/src/providers/claude.ts +259 -0
- package/src/providers/interface.ts +109 -0
- package/src/providers/ollama.ts +379 -0
- package/src/providers/openai.ts +308 -0
- package/src/providers/registry.ts +153 -0
- package/src/server/index.ts +152 -0
- package/src/server/middleware/auth.ts +93 -0
- package/src/server/middleware/logger.ts +90 -0
- package/src/server/routes/health.ts +84 -0
- package/src/server/routes/translate.ts +210 -0
- package/src/server/types.ts +138 -0
- package/src/services/cache.ts +899 -0
- package/src/services/config.ts +217 -0
- package/src/services/glossary.ts +247 -0
- package/src/types/analysis.ts +164 -0
- package/src/types/index.ts +265 -0
- package/src/types/modes.ts +121 -0
- package/src/types/mqm.ts +157 -0
- package/src/utils/logger.ts +141 -0
- package/src/utils/tokens.ts +116 -0
- package/tests/fixtures/glossaries/ml-glossary.json +53 -0
- package/tests/fixtures/input/lynq-installation.ko.md +350 -0
- package/tests/fixtures/input/lynq-installation.md +350 -0
- package/tests/fixtures/input/simple.ko.md +27 -0
- package/tests/fixtures/input/simple.md +27 -0
- package/tests/unit/chunker.test.ts +229 -0
- package/tests/unit/glossary.test.ts +146 -0
- package/tests/unit/markdown.test.ts +205 -0
- package/tests/unit/tokens.test.ts +81 -0
- package/tsconfig.json +28 -0
- package/tsup.config.ts +34 -0
- package/vitest.config.ts +16 -0
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
# llm-translate dir
|
|
2
|
+
|
|
3
|
+
::: info 翻訳について
|
|
4
|
+
英語以外のドキュメントはすべてClaude Sonnet 4を使用して自動翻訳されています。
|
|
5
|
+
:::
|
|
6
|
+
|
|
7
|
+
ディレクトリ内のすべてのファイルを翻訳します。
|
|
8
|
+
|
|
9
|
+
## 概要
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
llm-translate dir <input> <output> [options]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 引数
|
|
16
|
+
|
|
17
|
+
| 引数 | 説明 |
|
|
18
|
+
|----------|-------------|
|
|
19
|
+
|`<input>`| 入力ディレクトリパス(必須) |
|
|
20
|
+
|`<output>`| 出力ディレクトリパス(必須) |
|
|
21
|
+
|
|
22
|
+
## オプション
|
|
23
|
+
|
|
24
|
+
### 言語オプション
|
|
25
|
+
|
|
26
|
+
| オプション | デフォルト | 説明 |
|
|
27
|
+
|--------|---------|-------------|
|
|
28
|
+
|`-s, --source-lang <lang>`| 設定のデフォルト | ソース言語コード |
|
|
29
|
+
|`-t, --target-lang <lang>`| 必須 | ターゲット言語コード |
|
|
30
|
+
|
|
31
|
+
### 翻訳オプション
|
|
32
|
+
|
|
33
|
+
| オプション | デフォルト | 説明 |
|
|
34
|
+
|--------|---------|-------------|
|
|
35
|
+
|`-g, --glossary <path>`| なし | 用語集ファイルのパス |
|
|
36
|
+
|`-p, --provider <name>`|` claude`| LLMプロバイダー (claude\|openai\|ollama) |
|
|
37
|
+
|`-m, --model <name>`| プロバイダーのデフォルト | モデル名 |
|
|
38
|
+
|`--context <text>`| なし | 翻訳のための追加コンテキスト |
|
|
39
|
+
|
|
40
|
+
### 品質オプション
|
|
41
|
+
|
|
42
|
+
| オプション | デフォルト | 説明 |
|
|
43
|
+
|--------|---------|-------------|
|
|
44
|
+
|`--quality <0-100>`| 85 | 品質しきい値 |
|
|
45
|
+
|`--max-iterations <n>`| 4 | 最大改良反復回数 |
|
|
46
|
+
|
|
47
|
+
### ファイル選択
|
|
48
|
+
|
|
49
|
+
| オプション | デフォルト | 説明 |
|
|
50
|
+
|--------|---------|-------------|
|
|
51
|
+
|`--include <patterns>`|`*.md,*.markdown`| 含めるファイルパターン(カンマ区切り) |
|
|
52
|
+
|`--exclude <patterns>`| なし | 除外するファイルパターン(カンマ区切り) |
|
|
53
|
+
|
|
54
|
+
### 処理オプション
|
|
55
|
+
|
|
56
|
+
| オプション | デフォルト | 説明 |
|
|
57
|
+
|--------|---------|-------------|
|
|
58
|
+
|`--parallel <n>`| 3 | 並列ファイル処理 |
|
|
59
|
+
|`--chunk-size <tokens>`| 1024 | チャンクあたりの最大トークン数 |
|
|
60
|
+
|`--no-cache`| false | 翻訳キャッシュを無効化 |
|
|
61
|
+
|
|
62
|
+
### 出力オプション
|
|
63
|
+
|
|
64
|
+
| オプション | デフォルト | 説明 |
|
|
65
|
+
|--------|---------|-------------|
|
|
66
|
+
|`-f, --format <fmt>`| auto | 出力フォーマットを強制 (md\|html\|txt) |
|
|
67
|
+
|`--dry-run`| false | 翻訳される内容を表示 |
|
|
68
|
+
|`--json`| false | 結果をJSONで出力 |
|
|
69
|
+
|`-v, --verbose`| false | 詳細ログを有効化 |
|
|
70
|
+
|`-q, --quiet`| false | エラー以外の出力を抑制 |
|
|
71
|
+
|
|
72
|
+
## 例
|
|
73
|
+
|
|
74
|
+
### 基本的な使用方法
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Translate all markdown files
|
|
78
|
+
llm-translate dir ./docs ./docs-ko -s en -t ko
|
|
79
|
+
|
|
80
|
+
# With glossary
|
|
81
|
+
llm-translate dir ./docs ./docs-ko -s en -t ko -g glossary.json
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### ファイル選択
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# Custom include pattern
|
|
88
|
+
llm-translate dir ./docs ./docs-ko -s en -t ko --include "**/*.md"
|
|
89
|
+
|
|
90
|
+
# Multiple patterns
|
|
91
|
+
llm-translate dir ./docs ./docs-ko -s en -t ko --include "*.md,*.markdown,*.mdx"
|
|
92
|
+
|
|
93
|
+
# Exclude certain directories
|
|
94
|
+
llm-translate dir ./docs ./docs-ko -s en -t ko \
|
|
95
|
+
--exclude "node_modules/**,dist/**,drafts/**"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### 並列処理
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# Process 5 files in parallel
|
|
102
|
+
llm-translate dir ./docs ./docs-ko -s en -t ko --parallel 5
|
|
103
|
+
|
|
104
|
+
# Sequential processing (for rate-limited APIs)
|
|
105
|
+
llm-translate dir ./docs ./docs-ko -s en -t ko --parallel 1
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 品質設定
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# High quality for important docs
|
|
112
|
+
llm-translate dir ./docs ./docs-ko -s en -t ko --quality 95 --max-iterations 6
|
|
113
|
+
|
|
114
|
+
# Faster processing with lower threshold
|
|
115
|
+
llm-translate dir ./docs ./docs-ko -s en -t ko --quality 70 --max-iterations 2
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### プレビューモード
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# Show what would be translated
|
|
122
|
+
llm-translate dir ./docs ./docs-ko -s en -t ko --dry-run
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
出力:
|
|
126
|
+
```
|
|
127
|
+
Dry run mode - no translation will be performed
|
|
128
|
+
|
|
129
|
+
Files to translate:
|
|
130
|
+
getting-started.md → docs-ko/getting-started.md
|
|
131
|
+
guide/setup.md → docs-ko/guide/setup.md
|
|
132
|
+
api/reference.md → docs-ko/api/reference.md
|
|
133
|
+
|
|
134
|
+
Total: 3 file(s)
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## 出力構造
|
|
138
|
+
|
|
139
|
+
ディレクトリ構造はデフォルトで保持されます:
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
Input: Output:
|
|
143
|
+
docs/ docs-ko/
|
|
144
|
+
├── getting-started.md ├── getting-started.md
|
|
145
|
+
├── guide/ ├── guide/
|
|
146
|
+
│ ├── setup.md │ ├── setup.md
|
|
147
|
+
│ └── advanced.md │ └── advanced.md
|
|
148
|
+
└── api/ └── api/
|
|
149
|
+
└── reference.md └── reference.md
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## 進捗レポート
|
|
153
|
+
|
|
154
|
+
### 通常モード
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
ℹ Found 5 file(s) to translate
|
|
158
|
+
ℹ Input: ./docs
|
|
159
|
+
ℹ Output: ./docs-ko
|
|
160
|
+
ℹ Target language: ko
|
|
161
|
+
ℹ Parallel processing: 3 file(s) at a time
|
|
162
|
+
[1/5] getting-started.md ✓
|
|
163
|
+
[2/5] guide/setup.md ✓
|
|
164
|
+
[3/5] guide/advanced.md ✓
|
|
165
|
+
[4/5] api/reference.md ✓
|
|
166
|
+
[5/5] api/types.md ✓
|
|
167
|
+
|
|
168
|
+
────────────────────────────────────────────────────────
|
|
169
|
+
Translation Summary
|
|
170
|
+
────────────────────────────────────────────────────────
|
|
171
|
+
Files: 5 succeeded, 0 failed
|
|
172
|
+
Duration: 45.2s
|
|
173
|
+
Tokens: 12,450 input / 8,320 output
|
|
174
|
+
Cache: 5,200 read / 2,100 write
|
|
175
|
+
────────────────────────────────────────────────────────
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### JSON出力
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
llm-translate dir ./docs ./docs-ko -t ko --json
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
```json
|
|
185
|
+
{
|
|
186
|
+
"success": true,
|
|
187
|
+
"totalFiles": 5,
|
|
188
|
+
"successCount": 5,
|
|
189
|
+
"failCount": 0,
|
|
190
|
+
"totalDuration": 45234,
|
|
191
|
+
"tokensUsed": {
|
|
192
|
+
"input": 12450,
|
|
193
|
+
"output": 8320,
|
|
194
|
+
"cacheRead": 5200,
|
|
195
|
+
"cacheWrite": 2100
|
|
196
|
+
},
|
|
197
|
+
"files": [...]
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## ベストプラクティス
|
|
202
|
+
|
|
203
|
+
### 1. まずプレビューを実行
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
llm-translate dir ./docs ./docs-ko -s en -t ko --dry-run
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### 2. 適切な並列度を使用
|
|
210
|
+
|
|
211
|
+
- レート制限のあるAPI:`--parallel 1-2`
|
|
212
|
+
- 高い制限:`--parallel 5-10`
|
|
213
|
+
- ローカル (Ollama):`--parallel 1`(モデル制限あり)
|
|
214
|
+
|
|
215
|
+
### 3. 大規模プロジェクトの処理
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
# Split by subdirectory for better control
|
|
219
|
+
llm-translate dir ./docs/guide ./docs-ko/guide -s en -t ko
|
|
220
|
+
llm-translate dir ./docs/api ./docs-ko/api -s en -t ko
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### 4. キャッシングの活用
|
|
224
|
+
|
|
225
|
+
キャッシュにより変更されていないコンテンツをスキップできます:
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
# First run: translates all
|
|
229
|
+
llm-translate dir ./docs ./docs-ko -s en -t ko
|
|
230
|
+
|
|
231
|
+
# Second run: uses cache for unchanged content
|
|
232
|
+
llm-translate dir ./docs ./docs-ko -s en -t ko
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### 5. コンテンツタイプ別の品質設定
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
# High quality for user-facing docs
|
|
239
|
+
llm-translate dir ./docs/public ./docs-ko/public -s en -t ko --quality 95
|
|
240
|
+
|
|
241
|
+
# Standard quality for internal docs
|
|
242
|
+
llm-translate dir ./docs/internal ./docs-ko/internal -s en -t ko --quality 80
|
|
243
|
+
```
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
# llm-translate file
|
|
2
|
+
|
|
3
|
+
::: info 翻訳について
|
|
4
|
+
英語以外のドキュメントはすべてClaude Sonnet 4を使用して自動翻訳されています。
|
|
5
|
+
:::
|
|
6
|
+
|
|
7
|
+
単一ファイルを翻訳します。
|
|
8
|
+
|
|
9
|
+
## 概要
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
llm-translate file <input> [output] [options]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 引数
|
|
16
|
+
|
|
17
|
+
| 引数 | 説明 |
|
|
18
|
+
|----------|-------------|
|
|
19
|
+
|`<input>`| 入力ファイルパス(必須) |
|
|
20
|
+
|`[output]`| 出力ファイルパス(オプション、デフォルトはstdout) |
|
|
21
|
+
|
|
22
|
+
## オプション
|
|
23
|
+
|
|
24
|
+
### 翻訳オプション
|
|
25
|
+
|
|
26
|
+
| オプション | デフォルト | 説明 |
|
|
27
|
+
|--------|---------|-------------|
|
|
28
|
+
|`--source-lang `,`-s`| 必須 | ソース言語コード |
|
|
29
|
+
|`--target-lang `,`-t`| 必須 | ターゲット言語コード |
|
|
30
|
+
|`--glossary `,`-g`| なし | 用語集ファイルのパス |
|
|
31
|
+
|
|
32
|
+
### 品質オプション
|
|
33
|
+
|
|
34
|
+
| オプション | デフォルト | 説明 |
|
|
35
|
+
|--------|---------|-------------|
|
|
36
|
+
|`--quality`| 85 | 品質しきい値(0-100) |
|
|
37
|
+
|`--max-iterations`| 4 | 最大改良反復回数 |
|
|
38
|
+
|`--strict-quality`| false | しきい値を満たさない場合に失敗 |
|
|
39
|
+
|`--strict-glossary`| false | 用語集の用語が適用されない場合に失敗 |
|
|
40
|
+
|
|
41
|
+
### プロバイダーオプション
|
|
42
|
+
|
|
43
|
+
| オプション | デフォルト | 説明 |
|
|
44
|
+
|--------|---------|-------------|
|
|
45
|
+
|`--provider `,`-p`| claude | プロバイダー名 |
|
|
46
|
+
|`--model `,`-m`| 可変 | モデル識別子 |
|
|
47
|
+
|
|
48
|
+
### 出力オプション
|
|
49
|
+
|
|
50
|
+
| オプション | デフォルト | 説明 |
|
|
51
|
+
|--------|---------|-------------|
|
|
52
|
+
|`--output `,`-o`| auto | 出力ファイルパス |
|
|
53
|
+
|`--format `,`-f`| auto | 出力フォーマットを強制(md\|html\|txt) |
|
|
54
|
+
|`--dry-run`| false | 実行される内容を表示 |
|
|
55
|
+
|`--json`| false | 結果をJSONで出力 |
|
|
56
|
+
|`--verbose `,`-v`| false | 詳細ログを有効化 |
|
|
57
|
+
|`--quiet `,`-q`| false | エラー以外の出力を抑制 |
|
|
58
|
+
|
|
59
|
+
### 高度なオプション
|
|
60
|
+
|
|
61
|
+
| オプション | デフォルト | 説明 |
|
|
62
|
+
|--------|---------|-------------|
|
|
63
|
+
|`--no-cache`| false | 翻訳キャッシュを無効化 |
|
|
64
|
+
|`--chunk-size`| 1024 | チャンクあたりの最大トークン数 |
|
|
65
|
+
|`--context`| なし | 翻訳のための追加コンテキスト |
|
|
66
|
+
|
|
67
|
+
## 例
|
|
68
|
+
|
|
69
|
+
### 基本的な使用方法
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Translate to Korean
|
|
73
|
+
llm-translate file README.md -o README.ko.md -s en -t ko
|
|
74
|
+
|
|
75
|
+
# With explicit output path
|
|
76
|
+
llm-translate file README.md --output README.ko.md --source-lang en --target-lang ko
|
|
77
|
+
|
|
78
|
+
# Specify source and target languages
|
|
79
|
+
llm-translate file doc.md -o doc.ja.md --source-lang en --target-lang ja
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 用語集を使用
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# Use glossary for consistent terminology
|
|
86
|
+
llm-translate file api-docs.md -o api-docs.ko.md \
|
|
87
|
+
-s en -t ko \
|
|
88
|
+
--glossary glossary.json
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 品質管理
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# Higher quality threshold
|
|
95
|
+
llm-translate file important.md -o important.ko.md \
|
|
96
|
+
-s en -t ko \
|
|
97
|
+
--quality 95 \
|
|
98
|
+
--max-iterations 6
|
|
99
|
+
|
|
100
|
+
# Strict mode (fail if not met)
|
|
101
|
+
llm-translate file legal.md -o legal.ko.md \
|
|
102
|
+
--source-lang en \
|
|
103
|
+
--target-lang ko \
|
|
104
|
+
--quality 95 \
|
|
105
|
+
--strict-quality
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### プロバイダー選択
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# Use Claude Sonnet
|
|
112
|
+
llm-translate file doc.md -o doc.ko.md \
|
|
113
|
+
-s en -t ko \
|
|
114
|
+
--provider claude \
|
|
115
|
+
--model claude-sonnet-4-5-20250929
|
|
116
|
+
|
|
117
|
+
# Use OpenAI
|
|
118
|
+
llm-translate file doc.md -o doc.ko.md \
|
|
119
|
+
-s en -t ko \
|
|
120
|
+
--provider openai \
|
|
121
|
+
--model gpt-4o
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### stdinから
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# Pipe content (uses stdin mode when no TTY)
|
|
128
|
+
cat doc.md | llm-translate -s en -t ko > doc.ko.md
|
|
129
|
+
|
|
130
|
+
# Use with other tools
|
|
131
|
+
curl https://example.com/doc.md | llm-translate -s en -t ko
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## 出力フォーマット
|
|
135
|
+
|
|
136
|
+
### 通常モード
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
✓ Translated README.md → README.ko.md
|
|
140
|
+
Quality: 92/85 (threshold met)
|
|
141
|
+
Duration: 3.2s
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### 詳細モード
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
llm-translate file doc.md -o doc.ko.md --target ko --verbose
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
ℹ Loading configuration...
|
|
152
|
+
ℹ Provider: claude (claude-haiku-4-5-20251001)
|
|
153
|
+
ℹ Parsing document...
|
|
154
|
+
ℹ Chunks: 5
|
|
155
|
+
ℹ Starting translation...
|
|
156
|
+
|
|
157
|
+
[Chunk 1/5] Starting initial translation...
|
|
158
|
+
[Chunk 1/5] Quality: 78/85
|
|
159
|
+
[Chunk 1/5] Generating improvements...
|
|
160
|
+
[Chunk 1/5] Quality: 91/85 ✓
|
|
161
|
+
|
|
162
|
+
[Chunk 2/5] Starting initial translation...
|
|
163
|
+
[Chunk 2/5] Quality: 88/85 ✓
|
|
164
|
+
...
|
|
165
|
+
|
|
166
|
+
✓ Translation complete
|
|
167
|
+
Quality: 89/85 (threshold met)
|
|
168
|
+
Iterations: avg 1.8
|
|
169
|
+
Tokens: 5,234 input / 6,456 output
|
|
170
|
+
Cache: 3,200 read / 800 written
|
|
171
|
+
Duration: 8.4s
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## 言語コード
|
|
175
|
+
|
|
176
|
+
一般的な言語コード:
|
|
177
|
+
|
|
178
|
+
| コード | 言語 |
|
|
179
|
+
|------|----------|
|
|
180
|
+
|`en`| 英語 |
|
|
181
|
+
|`ko`| 韓国語 |
|
|
182
|
+
|`ja`| 日本語 |
|
|
183
|
+
|`zh`| 中国語(簡体字) |
|
|
184
|
+
|`zh-TW`| 中国語(繁体字) |
|
|
185
|
+
|`es`| スペイン語 |
|
|
186
|
+
|`fr`| フランス語 |
|
|
187
|
+
|`de`| ドイツ語 |
|
|
188
|
+
|
|
189
|
+
## エラーハンドリング
|
|
190
|
+
|
|
191
|
+
### ファイルが見つからない
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
$ llm-translate file missing.md -s en -t ko
|
|
195
|
+
Error: Could not read file 'missing.md'
|
|
196
|
+
Exit code: 3
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### 品質が満たされない(厳格モード)
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
$ llm-translate file doc.md -o doc.ko.md -s en -t ko --quality 99 --strict-quality
|
|
203
|
+
Error: Quality threshold not met: 94/99
|
|
204
|
+
Exit code: 4
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### APIエラー
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
$ llm-translate file doc.md --target ko
|
|
211
|
+
Error: Provider error: Rate limit exceeded
|
|
212
|
+
Exit code: 5
|
|
213
|
+
```
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
# llm-translate glossary
|
|
2
|
+
|
|
3
|
+
::: info 翻訳について
|
|
4
|
+
英語以外のドキュメントはすべてClaude Sonnet 4を使用して自動翻訳されています。
|
|
5
|
+
:::
|
|
6
|
+
|
|
7
|
+
一貫した用語使用のための用語集ファイルを管理します。
|
|
8
|
+
|
|
9
|
+
## 概要
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
llm-translate glossary <subcommand> [options]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## サブコマンド
|
|
16
|
+
|
|
17
|
+
### list
|
|
18
|
+
|
|
19
|
+
用語集内のすべての用語を一覧表示します。
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
llm-translate glossary list --glossary glossary.json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
オプション:
|
|
26
|
+
| オプション | 説明 |
|
|
27
|
+
|--------|-------------|
|
|
28
|
+
|`--glossary `,`-g`| 用語集ファイルのパス(必須) |
|
|
29
|
+
|`--target `,`-t`| 対象言語でフィルタリング |
|
|
30
|
+
|`--format `| 出力形式:` table `,` json`|
|
|
31
|
+
|
|
32
|
+
例:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# List all terms
|
|
36
|
+
llm-translate glossary list -g glossary.json
|
|
37
|
+
|
|
38
|
+
# Filter by target language
|
|
39
|
+
llm-translate glossary list -g glossary.json --target ko
|
|
40
|
+
|
|
41
|
+
# JSON output
|
|
42
|
+
llm-translate glossary list -g glossary.json --format json
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
出力:
|
|
46
|
+
```
|
|
47
|
+
Glossary: glossary.json (15 terms)
|
|
48
|
+
|
|
49
|
+
Source | Korean (ko) | Japanese (ja) | Flags
|
|
50
|
+
----------------|------------------|------------------|-------
|
|
51
|
+
component | 컴포넌트 | コンポーネント |
|
|
52
|
+
prop | 프롭 | プロップ |
|
|
53
|
+
state | 상태 | ステート |
|
|
54
|
+
TypeScript | - | - | DNT
|
|
55
|
+
API | - | - | DNT, CS
|
|
56
|
+
|
|
57
|
+
DNT = Do Not Translate, CS = Case Sensitive
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### validate
|
|
61
|
+
|
|
62
|
+
用語集ファイルの構造と内容を検証します。
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
llm-translate glossary validate --glossary glossary.json
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
オプション:
|
|
69
|
+
| オプション | 説明 |
|
|
70
|
+
|--------|-------------|
|
|
71
|
+
|`--glossary `,`-g`| 用語集ファイルのパス(必須) |
|
|
72
|
+
|`--strict`| 警告時に失敗 |
|
|
73
|
+
|
|
74
|
+
例:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Basic validation
|
|
78
|
+
llm-translate glossary validate -g glossary.json
|
|
79
|
+
|
|
80
|
+
# Strict mode
|
|
81
|
+
llm-translate glossary validate -g glossary.json --strict
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
出力:
|
|
85
|
+
```
|
|
86
|
+
Validating glossary.json...
|
|
87
|
+
|
|
88
|
+
✓ Valid JSON structure
|
|
89
|
+
✓ Required fields present
|
|
90
|
+
✓ 15 terms found
|
|
91
|
+
|
|
92
|
+
Warnings:
|
|
93
|
+
- Term "component" has no context
|
|
94
|
+
- Term "hook" missing Japanese translation
|
|
95
|
+
|
|
96
|
+
✓ Validation passed (2 warnings)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### add
|
|
100
|
+
|
|
101
|
+
用語集に新しい用語を追加します。
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
llm-translate glossary add <source> [options]
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
オプション:
|
|
108
|
+
| オプション | 説明 |
|
|
109
|
+
|--------|-------------|
|
|
110
|
+
|`--glossary `,`-g`| 用語集ファイルのパス(必須) |
|
|
111
|
+
|`--target `| 対象翻訳(形式:` lang=value`) |
|
|
112
|
+
|`--context`| 用語のコンテキスト |
|
|
113
|
+
|`--dnt`| 「翻訳しない」としてマーク |
|
|
114
|
+
|`--case-sensitive`| 大文字小文字を区別するとしてマーク |
|
|
115
|
+
|
|
116
|
+
例:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# Add with translations
|
|
120
|
+
llm-translate glossary add "container" \
|
|
121
|
+
-g glossary.json \
|
|
122
|
+
--target ko="컨테이너" \
|
|
123
|
+
--target ja="コンテナ"
|
|
124
|
+
|
|
125
|
+
# Add do-not-translate term
|
|
126
|
+
llm-translate glossary add "Kubernetes" \
|
|
127
|
+
-g glossary.json \
|
|
128
|
+
--dnt
|
|
129
|
+
|
|
130
|
+
# Add with context
|
|
131
|
+
llm-translate glossary add "instance" \
|
|
132
|
+
-g glossary.json \
|
|
133
|
+
--target ko="인스턴스" \
|
|
134
|
+
--context "Cloud computing instance"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### remove
|
|
138
|
+
|
|
139
|
+
用語集から用語を削除します。
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
llm-translate glossary remove <source> --glossary glossary.json
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
例:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
llm-translate glossary remove "deprecated-term" -g glossary.json
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### update
|
|
152
|
+
|
|
153
|
+
既存の用語を更新します。
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
llm-translate glossary update <source> [options]
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
オプション:
|
|
160
|
+
| オプション | 説明 |
|
|
161
|
+
|--------|-------------|
|
|
162
|
+
|`--glossary `,`-g`| 用語集ファイルのパス(必須) |
|
|
163
|
+
|`--target`| 対象翻訳を更新 |
|
|
164
|
+
|`--context`| コンテキストを更新 |
|
|
165
|
+
|`--dnt`| 翻訳しない設定を設定/解除 |
|
|
166
|
+
|
|
167
|
+
例:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
# Update translation
|
|
171
|
+
llm-translate glossary update "component" \
|
|
172
|
+
-g glossary.json \
|
|
173
|
+
--target ko="컴포넌트 요소"
|
|
174
|
+
|
|
175
|
+
# Add context
|
|
176
|
+
llm-translate glossary update "state" \
|
|
177
|
+
-g glossary.json \
|
|
178
|
+
--context "React component state"
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### stats
|
|
182
|
+
|
|
183
|
+
用語集の統計情報を表示します。
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
llm-translate glossary stats --glossary glossary.json
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
出力:
|
|
190
|
+
```
|
|
191
|
+
Glossary Statistics: glossary.json
|
|
192
|
+
|
|
193
|
+
Terms: 15
|
|
194
|
+
- With translations: 12
|
|
195
|
+
- Do not translate: 3
|
|
196
|
+
|
|
197
|
+
Languages:
|
|
198
|
+
- Korean (ko): 12 terms
|
|
199
|
+
- Japanese (ja): 10 terms
|
|
200
|
+
- Chinese (zh): 8 terms
|
|
201
|
+
|
|
202
|
+
Token estimate: ~450 tokens
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### merge
|
|
206
|
+
|
|
207
|
+
複数の用語集をマージします。
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
llm-translate glossary merge \
|
|
211
|
+
--input glossary-a.json \
|
|
212
|
+
--input glossary-b.json \
|
|
213
|
+
--output merged.json
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
オプション:
|
|
217
|
+
| オプション | 説明 |
|
|
218
|
+
|--------|-------------|
|
|
219
|
+
|`--input `,`-i`| 入力用語集ファイル(複数) |
|
|
220
|
+
|`--output `,`-o`| マージされた用語集の出力 |
|
|
221
|
+
|`--strategy `| 競合解決:` first `,` last `,` error`|
|
|
222
|
+
|
|
223
|
+
### export
|
|
224
|
+
|
|
225
|
+
用語集を異なる形式にエクスポートします。
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
llm-translate glossary export --glossary glossary.json --format csv
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
オプション:
|
|
232
|
+
| オプション | 説明 |
|
|
233
|
+
|--------|-------------|
|
|
234
|
+
|`--format `| エクスポート形式:` csv `,` tsv `,` xlsx`|
|
|
235
|
+
|`--output `,`-o`| 出力ファイルパス |
|
|
236
|
+
|
|
237
|
+
## ベストプラクティス
|
|
238
|
+
|
|
239
|
+
### 大規模な用語集の整理
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
# Split by domain
|
|
243
|
+
glossaries/
|
|
244
|
+
├── common.json # Shared terms
|
|
245
|
+
├── frontend.json # UI terminology
|
|
246
|
+
├── backend.json # Server terminology
|
|
247
|
+
└── devops.json # Infrastructure terms
|
|
248
|
+
|
|
249
|
+
# Merge for use
|
|
250
|
+
llm-translate glossary merge \
|
|
251
|
+
-i glossaries/common.json \
|
|
252
|
+
-i glossaries/frontend.json \
|
|
253
|
+
-o project-glossary.json
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### バージョン管理
|
|
257
|
+
|
|
258
|
+
用語集をバージョン管理に含める:
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
git add glossary.json
|
|
262
|
+
git commit -m "Add project glossary"
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### 定期的なメンテナンス
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
# Validate before commits
|
|
269
|
+
llm-translate glossary validate -g glossary.json --strict
|
|
270
|
+
|
|
271
|
+
# Review stats periodically
|
|
272
|
+
llm-translate glossary stats -g glossary.json
|
|
273
|
+
```
|