@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.
Files changed (157) hide show
  1. package/.dockerignore +51 -0
  2. package/.env.example +33 -0
  3. package/.github/workflows/docs-pages.yml +57 -0
  4. package/.github/workflows/release.yml +49 -0
  5. package/.translaterc.json +44 -0
  6. package/CLAUDE.md +243 -0
  7. package/Dockerfile +55 -0
  8. package/README.md +371 -0
  9. package/RFC.md +1595 -0
  10. package/dist/cli/index.d.ts +2 -0
  11. package/dist/cli/index.js +4494 -0
  12. package/dist/cli/index.js.map +1 -0
  13. package/dist/index.d.ts +1152 -0
  14. package/dist/index.js +3841 -0
  15. package/dist/index.js.map +1 -0
  16. package/docker-compose.yml +56 -0
  17. package/docs/.vitepress/config.ts +161 -0
  18. package/docs/api/agent.md +262 -0
  19. package/docs/api/engine.md +274 -0
  20. package/docs/api/index.md +171 -0
  21. package/docs/api/providers.md +304 -0
  22. package/docs/changelog.md +64 -0
  23. package/docs/cli/dir.md +243 -0
  24. package/docs/cli/file.md +213 -0
  25. package/docs/cli/glossary.md +273 -0
  26. package/docs/cli/index.md +129 -0
  27. package/docs/cli/init.md +158 -0
  28. package/docs/cli/serve.md +211 -0
  29. package/docs/glossary.json +235 -0
  30. package/docs/guide/chunking.md +272 -0
  31. package/docs/guide/configuration.md +139 -0
  32. package/docs/guide/cost-optimization.md +237 -0
  33. package/docs/guide/docker.md +371 -0
  34. package/docs/guide/getting-started.md +150 -0
  35. package/docs/guide/glossary.md +241 -0
  36. package/docs/guide/index.md +86 -0
  37. package/docs/guide/ollama.md +515 -0
  38. package/docs/guide/prompt-caching.md +221 -0
  39. package/docs/guide/providers.md +232 -0
  40. package/docs/guide/quality-control.md +206 -0
  41. package/docs/guide/vitepress-integration.md +265 -0
  42. package/docs/index.md +63 -0
  43. package/docs/ja/api/agent.md +262 -0
  44. package/docs/ja/api/engine.md +274 -0
  45. package/docs/ja/api/index.md +171 -0
  46. package/docs/ja/api/providers.md +304 -0
  47. package/docs/ja/changelog.md +64 -0
  48. package/docs/ja/cli/dir.md +243 -0
  49. package/docs/ja/cli/file.md +213 -0
  50. package/docs/ja/cli/glossary.md +273 -0
  51. package/docs/ja/cli/index.md +111 -0
  52. package/docs/ja/cli/init.md +158 -0
  53. package/docs/ja/guide/chunking.md +271 -0
  54. package/docs/ja/guide/configuration.md +139 -0
  55. package/docs/ja/guide/cost-optimization.md +30 -0
  56. package/docs/ja/guide/getting-started.md +150 -0
  57. package/docs/ja/guide/glossary.md +214 -0
  58. package/docs/ja/guide/index.md +32 -0
  59. package/docs/ja/guide/ollama.md +410 -0
  60. package/docs/ja/guide/prompt-caching.md +221 -0
  61. package/docs/ja/guide/providers.md +232 -0
  62. package/docs/ja/guide/quality-control.md +137 -0
  63. package/docs/ja/guide/vitepress-integration.md +265 -0
  64. package/docs/ja/index.md +58 -0
  65. package/docs/ko/api/agent.md +262 -0
  66. package/docs/ko/api/engine.md +274 -0
  67. package/docs/ko/api/index.md +171 -0
  68. package/docs/ko/api/providers.md +304 -0
  69. package/docs/ko/changelog.md +64 -0
  70. package/docs/ko/cli/dir.md +243 -0
  71. package/docs/ko/cli/file.md +213 -0
  72. package/docs/ko/cli/glossary.md +273 -0
  73. package/docs/ko/cli/index.md +111 -0
  74. package/docs/ko/cli/init.md +158 -0
  75. package/docs/ko/guide/chunking.md +271 -0
  76. package/docs/ko/guide/configuration.md +139 -0
  77. package/docs/ko/guide/cost-optimization.md +30 -0
  78. package/docs/ko/guide/getting-started.md +150 -0
  79. package/docs/ko/guide/glossary.md +214 -0
  80. package/docs/ko/guide/index.md +32 -0
  81. package/docs/ko/guide/ollama.md +410 -0
  82. package/docs/ko/guide/prompt-caching.md +221 -0
  83. package/docs/ko/guide/providers.md +232 -0
  84. package/docs/ko/guide/quality-control.md +137 -0
  85. package/docs/ko/guide/vitepress-integration.md +265 -0
  86. package/docs/ko/index.md +58 -0
  87. package/docs/zh/api/agent.md +262 -0
  88. package/docs/zh/api/engine.md +274 -0
  89. package/docs/zh/api/index.md +171 -0
  90. package/docs/zh/api/providers.md +304 -0
  91. package/docs/zh/changelog.md +64 -0
  92. package/docs/zh/cli/dir.md +243 -0
  93. package/docs/zh/cli/file.md +213 -0
  94. package/docs/zh/cli/glossary.md +273 -0
  95. package/docs/zh/cli/index.md +111 -0
  96. package/docs/zh/cli/init.md +158 -0
  97. package/docs/zh/guide/chunking.md +271 -0
  98. package/docs/zh/guide/configuration.md +139 -0
  99. package/docs/zh/guide/cost-optimization.md +30 -0
  100. package/docs/zh/guide/getting-started.md +150 -0
  101. package/docs/zh/guide/glossary.md +214 -0
  102. package/docs/zh/guide/index.md +32 -0
  103. package/docs/zh/guide/ollama.md +410 -0
  104. package/docs/zh/guide/prompt-caching.md +221 -0
  105. package/docs/zh/guide/providers.md +232 -0
  106. package/docs/zh/guide/quality-control.md +137 -0
  107. package/docs/zh/guide/vitepress-integration.md +265 -0
  108. package/docs/zh/index.md +58 -0
  109. package/package.json +91 -0
  110. package/release.config.mjs +15 -0
  111. package/schemas/glossary.schema.json +110 -0
  112. package/src/cli/commands/dir.ts +469 -0
  113. package/src/cli/commands/file.ts +291 -0
  114. package/src/cli/commands/glossary.ts +221 -0
  115. package/src/cli/commands/init.ts +68 -0
  116. package/src/cli/commands/serve.ts +60 -0
  117. package/src/cli/index.ts +64 -0
  118. package/src/cli/options.ts +59 -0
  119. package/src/core/agent.ts +1119 -0
  120. package/src/core/chunker.ts +391 -0
  121. package/src/core/engine.ts +634 -0
  122. package/src/errors.ts +188 -0
  123. package/src/index.ts +147 -0
  124. package/src/integrations/vitepress.ts +549 -0
  125. package/src/parsers/markdown.ts +383 -0
  126. package/src/providers/claude.ts +259 -0
  127. package/src/providers/interface.ts +109 -0
  128. package/src/providers/ollama.ts +379 -0
  129. package/src/providers/openai.ts +308 -0
  130. package/src/providers/registry.ts +153 -0
  131. package/src/server/index.ts +152 -0
  132. package/src/server/middleware/auth.ts +93 -0
  133. package/src/server/middleware/logger.ts +90 -0
  134. package/src/server/routes/health.ts +84 -0
  135. package/src/server/routes/translate.ts +210 -0
  136. package/src/server/types.ts +138 -0
  137. package/src/services/cache.ts +899 -0
  138. package/src/services/config.ts +217 -0
  139. package/src/services/glossary.ts +247 -0
  140. package/src/types/analysis.ts +164 -0
  141. package/src/types/index.ts +265 -0
  142. package/src/types/modes.ts +121 -0
  143. package/src/types/mqm.ts +157 -0
  144. package/src/utils/logger.ts +141 -0
  145. package/src/utils/tokens.ts +116 -0
  146. package/tests/fixtures/glossaries/ml-glossary.json +53 -0
  147. package/tests/fixtures/input/lynq-installation.ko.md +350 -0
  148. package/tests/fixtures/input/lynq-installation.md +350 -0
  149. package/tests/fixtures/input/simple.ko.md +27 -0
  150. package/tests/fixtures/input/simple.md +27 -0
  151. package/tests/unit/chunker.test.ts +229 -0
  152. package/tests/unit/glossary.test.ts +146 -0
  153. package/tests/unit/markdown.test.ts +205 -0
  154. package/tests/unit/tokens.test.ts +81 -0
  155. package/tsconfig.json +28 -0
  156. package/tsup.config.ts +34 -0
  157. 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)을 참조하세요.