@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,150 @@
|
|
|
1
|
+
# 시작하기
|
|
2
|
+
|
|
3
|
+
::: info 번역
|
|
4
|
+
모든 비영어 문서는 Claude Sonnet 4를 사용하여 자동으로 번역됩니다.
|
|
5
|
+
:::
|
|
6
|
+
|
|
7
|
+
## 설치
|
|
8
|
+
|
|
9
|
+
### npm (권장)
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install -g @llm-translate/cli
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### 소스에서 설치
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
git clone https://github.com/selenehyun/llm-translate.git
|
|
19
|
+
cd llm-translate
|
|
20
|
+
npm install
|
|
21
|
+
npm run build
|
|
22
|
+
npm link
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 사전 요구사항
|
|
26
|
+
|
|
27
|
+
- Node.js 24 이상
|
|
28
|
+
- 최소 하나의 LLM 제공자에 대한 API 키:
|
|
29
|
+
- Anthropic (Claude)
|
|
30
|
+
- OpenAI
|
|
31
|
+
- Ollama (로컬, API 키 불필요)
|
|
32
|
+
|
|
33
|
+
## 구성
|
|
34
|
+
|
|
35
|
+
### 1. API 키 설정
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# For Claude (recommended)
|
|
39
|
+
export ANTHROPIC_API_KEY=sk-ant-xxxxx
|
|
40
|
+
|
|
41
|
+
# For OpenAI
|
|
42
|
+
export OPENAI_API_KEY=sk-xxxxx
|
|
43
|
+
|
|
44
|
+
# For Ollama (no key needed, just ensure server is running)
|
|
45
|
+
# See the Ollama guide for setup: ./ollama
|
|
46
|
+
export OLLAMA_BASE_URL=http://localhost:11434
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 2. 구성 초기화 (선택사항)
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
llm-translate init
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
이는 기본 설정으로 `.translaterc.json` 파일을 생성합니다:
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"provider": {
|
|
60
|
+
"name": "claude",
|
|
61
|
+
"model": "claude-haiku-4-5-20251001"
|
|
62
|
+
},
|
|
63
|
+
"translation": {
|
|
64
|
+
"qualityThreshold": 85,
|
|
65
|
+
"maxIterations": 4
|
|
66
|
+
},
|
|
67
|
+
"paths": {
|
|
68
|
+
"glossary": "./glossary.json"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## 첫 번째 번역
|
|
74
|
+
|
|
75
|
+
### 기본 사용법
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# Translate a markdown file to Korean
|
|
79
|
+
llm-translate file README.md -o README.ko.md -s en -t ko
|
|
80
|
+
|
|
81
|
+
# Using long option names
|
|
82
|
+
llm-translate file docs/guide.md -o docs/guide.ja.md --source-lang en --target-lang ja
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 용어집 사용
|
|
86
|
+
|
|
87
|
+
1. `glossary.json` 파일을 생성합니다:
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"sourceLanguage": "en",
|
|
92
|
+
"terms": [
|
|
93
|
+
{
|
|
94
|
+
"source": "component",
|
|
95
|
+
"targets": { "ko": "컴포넌트" },
|
|
96
|
+
"context": "UI component"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"source": "prop",
|
|
100
|
+
"targets": { "ko": "프롭" },
|
|
101
|
+
"context": "React prop"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"source": "TypeScript",
|
|
105
|
+
"doNotTranslate": true
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
2. 용어집과 함께 번역합니다:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
llm-translate file README.md -o README.ko.md -s en -t ko --glossary glossary.json
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### 일괄 번역
|
|
118
|
+
|
|
119
|
+
전체 디렉토리를 번역합니다:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
llm-translate dir ./docs ./docs-ko -s en -t ko --glossary glossary.json
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## 출력 결과 이해하기
|
|
126
|
+
|
|
127
|
+
번역 후 다음과 같은 정보를 확인할 수 있습니다:
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
✓ Translation complete
|
|
131
|
+
Quality: 92/85 (threshold met)
|
|
132
|
+
Iterations: 2
|
|
133
|
+
Tokens: 1,234 input / 1,456 output
|
|
134
|
+
Cache: 890 read / 234 written (78% hit rate)
|
|
135
|
+
Duration: 3.2s
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
- **Quality**: 최종 점수 대 임계값
|
|
139
|
+
- **Iterations**: 개선 사이클 수
|
|
140
|
+
- **Tokens**: API 토큰 사용량
|
|
141
|
+
- **Cache**: 프롬프트 캐싱 통계 (Claude만 해당)
|
|
142
|
+
- **Duration**: 총 처리 시간
|
|
143
|
+
|
|
144
|
+
## 다음 단계
|
|
145
|
+
|
|
146
|
+
- 최적 설정을 위한 [프로젝트 구성](./configuration)
|
|
147
|
+
- 일관된 용어를 위한 [용어집 설정](./glossary)
|
|
148
|
+
- [품질 제어](./quality-control) 및 튜닝 이해
|
|
149
|
+
- 대규모 프로젝트를 위한 [비용 최적화](./cost-optimization)
|
|
150
|
+
- 비공개 오프라인 번역을 위한 [Ollama로 로컬 실행](./ollama)
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
# 용어집
|
|
2
|
+
|
|
3
|
+
::: info 번역
|
|
4
|
+
모든 비영어 문서는 Claude Sonnet 4를 사용하여 자동으로 번역됩니다.
|
|
5
|
+
:::
|
|
6
|
+
|
|
7
|
+
용어집 기능은 모든 번역에서 일관된 용어 사용을 보장합니다. 용어를 한 번 정의하면 매번 동일한 방식으로 번역됩니다.
|
|
8
|
+
|
|
9
|
+
## 용어집 파일 형식
|
|
10
|
+
|
|
11
|
+
`glossary.json` 파일을 생성합니다:
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"sourceLanguage": "en",
|
|
16
|
+
"version": "1.0.0",
|
|
17
|
+
"terms": [
|
|
18
|
+
{
|
|
19
|
+
"source": "component",
|
|
20
|
+
"targets": {
|
|
21
|
+
"ko": "컴포넌트",
|
|
22
|
+
"ja": "コンポーネント",
|
|
23
|
+
"zh": "组件"
|
|
24
|
+
},
|
|
25
|
+
"context": "UI component in React/Vue"
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 용어 구조
|
|
32
|
+
|
|
33
|
+
### 기본 용어
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"source": "endpoint",
|
|
38
|
+
"targets": {
|
|
39
|
+
"ko": "엔드포인트",
|
|
40
|
+
"ja": "エンドポイント"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 컨텍스트 포함
|
|
46
|
+
|
|
47
|
+
컨텍스트는 LLM이 용어를 사용하는 방법을 이해하는 데 도움이 됩니다:
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"source": "state",
|
|
52
|
+
"targets": { "ko": "상태" },
|
|
53
|
+
"context": "Application state in state management"
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 번역하지 않음
|
|
58
|
+
|
|
59
|
+
기술 용어를 영어로 유지합니다:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"source": "Kubernetes",
|
|
64
|
+
"doNotTranslate": true
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 특정 언어에 대해 번역하지 않음
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"source": "React",
|
|
73
|
+
"doNotTranslateFor": ["ko", "ja"],
|
|
74
|
+
"targets": {
|
|
75
|
+
"zh": "React框架"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### 대소문자 구분
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"source": "API",
|
|
85
|
+
"targets": { "ko": "API" },
|
|
86
|
+
"caseSensitive": true
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## 완전한 예제
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"sourceLanguage": "en",
|
|
95
|
+
"version": "1.0.0",
|
|
96
|
+
"description": "Technical documentation glossary",
|
|
97
|
+
"terms": [
|
|
98
|
+
{
|
|
99
|
+
"source": "component",
|
|
100
|
+
"targets": { "ko": "컴포넌트", "ja": "コンポーネント" },
|
|
101
|
+
"context": "UI component"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"source": "prop",
|
|
105
|
+
"targets": { "ko": "프롭", "ja": "プロップ" },
|
|
106
|
+
"context": "React component property"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"source": "hook",
|
|
110
|
+
"targets": { "ko": "훅", "ja": "フック" },
|
|
111
|
+
"context": "React hook (useState, useEffect, etc.)"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"source": "state",
|
|
115
|
+
"targets": { "ko": "상태", "ja": "ステート" },
|
|
116
|
+
"context": "Component or application state"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"source": "TypeScript",
|
|
120
|
+
"doNotTranslate": true
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"source": "JavaScript",
|
|
124
|
+
"doNotTranslate": true
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"source": "npm",
|
|
128
|
+
"doNotTranslate": true
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"source": "API",
|
|
132
|
+
"doNotTranslate": true,
|
|
133
|
+
"caseSensitive": true
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## CLI 명령어
|
|
140
|
+
|
|
141
|
+
### 용어집 용어 목록 보기
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
llm-translate glossary list --glossary glossary.json
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### 용어집 검증
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
llm-translate glossary validate --glossary glossary.json
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### 용어 추가
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
llm-translate glossary add "container" --target ko="컨테이너" --glossary glossary.json
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### 용어 제거
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
llm-translate glossary remove "container" --glossary glossary.json
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## 모범 사례
|
|
166
|
+
|
|
167
|
+
### 1. 일반적인 기술 용어부터 시작
|
|
168
|
+
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"terms": [
|
|
172
|
+
{ "source": "API", "doNotTranslate": true },
|
|
173
|
+
{ "source": "SDK", "doNotTranslate": true },
|
|
174
|
+
{ "source": "CLI", "doNotTranslate": true },
|
|
175
|
+
{ "source": "URL", "doNotTranslate": true },
|
|
176
|
+
{ "source": "JSON", "doNotTranslate": true }
|
|
177
|
+
]
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### 2. 제품별 용어 포함
|
|
182
|
+
|
|
183
|
+
```json
|
|
184
|
+
{
|
|
185
|
+
"source": "Workspace",
|
|
186
|
+
"targets": { "ko": "워크스페이스" },
|
|
187
|
+
"context": "Product-specific workspace feature"
|
|
188
|
+
}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### 3. 모호한 용어에 컨텍스트 추가
|
|
192
|
+
|
|
193
|
+
```json
|
|
194
|
+
{
|
|
195
|
+
"source": "run",
|
|
196
|
+
"targets": { "ko": "실행" },
|
|
197
|
+
"context": "Execute a command or script"
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### 4. 브랜드명에 `doNotTranslate` 사용
|
|
202
|
+
|
|
203
|
+
```json
|
|
204
|
+
{
|
|
205
|
+
"source": "GitHub",
|
|
206
|
+
"doNotTranslate": true
|
|
207
|
+
}
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### 5. 용어집 버전 관리
|
|
211
|
+
|
|
212
|
+
문서와 함께 용어집 변경 사항을 추적합니다.
|
|
213
|
+
|
|
214
|
+
## 용어 적용 방식
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# llm-translate란 무엇입니까?
|
|
2
|
+
|
|
3
|
+
::: info 번역
|
|
4
|
+
모든 비영어 문서는 Claude Sonnet 4를 사용하여 자동으로 번역됩니다.
|
|
5
|
+
:::
|
|
6
|
+
|
|
7
|
+
llm-translate는 대규모 언어 모델을 사용하여 문서를 번역하는 CLI 도구입니다. 일관성, 정확성, 형식 보존이 중요한 기술 문서를 위해 특별히 설계되었습니다.
|
|
8
|
+
|
|
9
|
+
## 주요 기능
|
|
10
|
+
|
|
11
|
+
### 용어집 강제 적용
|
|
12
|
+
|
|
13
|
+
도메인별 전문 용어를 한 번 정의하고 모든 문서에서 일관되게 번역되도록 보장합니다.
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"terms": [
|
|
18
|
+
{
|
|
19
|
+
"source": "API endpoint",
|
|
20
|
+
"targets": { "ko": "API 엔드포인트", "ja": "APIエンドポイント" }
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"source": "Kubernetes",
|
|
24
|
+
"doNotTranslate": true
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Self-Refine 품질 관리
|
|
31
|
+
|
|
32
|
+
llm-translate는 단순히 한 번 번역하고 끝내지 않습니다. 반복적인 개선 프로세스를 사용합니다:
|