@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,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
|
+
```
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# CLI 참조
|
|
2
|
+
|
|
3
|
+
::: info 번역
|
|
4
|
+
모든 비영어 문서는 Claude Sonnet 4를 사용하여 자동으로 번역됩니다.
|
|
5
|
+
:::
|
|
6
|
+
|
|
7
|
+
llm-translate는 문서 번역을 위한 명령줄 인터페이스를 제공합니다.
|
|
8
|
+
|
|
9
|
+
## 설치
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install -g @llm-translate/cli
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 전역 옵션
|
|
16
|
+
|
|
17
|
+
이 옵션들은 모든 명령에서 사용할 수 있습니다:
|
|
18
|
+
|
|
19
|
+
| 옵션 | 설명 |
|
|
20
|
+
|--------|-------------|
|
|
21
|
+
|`--help `,`-h`| 도움말 표시 |
|
|
22
|
+
|`--version `,`-V`| 버전 표시 |
|
|
23
|
+
|`--verbose `,`-v`| 상세 출력 활성화 |
|
|
24
|
+
|`--quiet `,`-q`| 필수가 아닌 출력 억제 |
|
|
25
|
+
|`--config`| 설정 파일 경로 |
|
|
26
|
+
|
|
27
|
+
## 명령
|
|
28
|
+
|
|
29
|
+
### [file](./file)
|
|
30
|
+
|
|
31
|
+
단일 파일을 번역합니다.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
llm-translate file <input> [output] [options]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### [dir](./dir)
|
|
38
|
+
|
|
39
|
+
디렉토리의 모든 파일을 번역합니다.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
llm-translate dir <input> <output> [options]
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### [init](./init)
|
|
46
|
+
|
|
47
|
+
설정 파일을 초기화합니다.
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
llm-translate init [options]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### [glossary](./glossary)
|
|
54
|
+
|
|
55
|
+
용어집 파일을 관리합니다.
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
llm-translate glossary <subcommand> [options]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 빠른 예제
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Translate a file to Korean
|
|
65
|
+
llm-translate file README.md -o README.ko.md -s en -t ko
|
|
66
|
+
|
|
67
|
+
# Translate with glossary
|
|
68
|
+
llm-translate file docs/guide.md -o docs/guide.ja.md \
|
|
69
|
+
-s en -t ja --glossary glossary.json
|
|
70
|
+
|
|
71
|
+
# Batch translate a directory
|
|
72
|
+
llm-translate dir ./docs ./docs-ko -s en -t ko
|
|
73
|
+
|
|
74
|
+
# Initialize config
|
|
75
|
+
llm-translate init --provider claude
|
|
76
|
+
|
|
77
|
+
# Validate glossary
|
|
78
|
+
llm-translate glossary validate glossary.json
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## 종료 코드
|
|
82
|
+
|
|
83
|
+
| 코드 | 설명 |
|
|
84
|
+
|------|-------------|
|
|
85
|
+
| 0 | 성공 |
|
|
86
|
+
| 1 | 일반 오류 |
|
|
87
|
+
| 2 | 잘못된 인수 |
|
|
88
|
+
| 3 | 파일을 찾을 수 없음 |
|
|
89
|
+
| 4 | 품질 임계값 미달 (엄격 모드) |
|
|
90
|
+
| 5 | 제공자/API 오류 |
|
|
91
|
+
| 6 | 용어집 검증 실패 |
|
|
92
|
+
|
|
93
|
+
## 환경 변수
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# API Keys
|
|
97
|
+
ANTHROPIC_API_KEY=sk-ant-xxxxx
|
|
98
|
+
OPENAI_API_KEY=sk-xxxxx
|
|
99
|
+
OLLAMA_BASE_URL=http://localhost:11434
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## 설정 우선순위
|
|
103
|
+
|
|
104
|
+
설정은 다음 순서로 적용됩니다 (나중 설정이 이전 설정을 덮어씁니다):
|
|
105
|
+
|
|
106
|
+
1. 내장 기본값
|
|
107
|
+
2. 설정 파일 (`.translaterc.json`)
|
|
108
|
+
3. 환경 변수
|
|
109
|
+
4. CLI 인수
|
|
110
|
+
|
|
111
|
+
자세한 내용은 [설정](../guide/configuration)을 참조하세요.
|