@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
package/docs/cli/init.md
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# llm-translate init
|
|
2
|
+
|
|
3
|
+
::: info Translations
|
|
4
|
+
All non-English documentation is automatically translated using Claude Sonnet 4.
|
|
5
|
+
:::
|
|
6
|
+
|
|
7
|
+
Initialize configuration file for your project.
|
|
8
|
+
|
|
9
|
+
## Synopsis
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
llm-translate init [options]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Options
|
|
16
|
+
|
|
17
|
+
| Option | Default | Description |
|
|
18
|
+
|--------|---------|-------------|
|
|
19
|
+
| `--provider`, `-p` | claude | Default provider |
|
|
20
|
+
| `--model`, `-m` | varies | Default model |
|
|
21
|
+
| `--quality` | 85 | Default quality threshold |
|
|
22
|
+
| `--glossary` | none | Create glossary template |
|
|
23
|
+
| `--force`, `-f` | false | Overwrite existing config |
|
|
24
|
+
|
|
25
|
+
## Examples
|
|
26
|
+
|
|
27
|
+
### Basic Initialization
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
llm-translate init
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Creates `.translaterc.json`:
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"provider": {
|
|
38
|
+
"name": "claude",
|
|
39
|
+
"model": "claude-haiku-4-5-20251001"
|
|
40
|
+
},
|
|
41
|
+
"translation": {
|
|
42
|
+
"qualityThreshold": 85,
|
|
43
|
+
"maxIterations": 4
|
|
44
|
+
},
|
|
45
|
+
"paths": {}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### With Provider
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
llm-translate init --provider openai --model gpt-4o
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### With Glossary Template
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
llm-translate init --glossary
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Also creates `glossary.json`:
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"sourceLanguage": "en",
|
|
66
|
+
"version": "1.0.0",
|
|
67
|
+
"terms": [
|
|
68
|
+
{
|
|
69
|
+
"source": "example",
|
|
70
|
+
"targets": {
|
|
71
|
+
"ko": "예시"
|
|
72
|
+
},
|
|
73
|
+
"context": "Replace with your terms"
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Custom Quality
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
llm-translate init --quality 95
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Interactive Mode
|
|
86
|
+
|
|
87
|
+
Without options, init runs interactively:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
$ llm-translate init
|
|
91
|
+
|
|
92
|
+
llm-translate Configuration Setup
|
|
93
|
+
|
|
94
|
+
? Select provider: (Use arrow keys)
|
|
95
|
+
❯ claude
|
|
96
|
+
openai
|
|
97
|
+
ollama
|
|
98
|
+
|
|
99
|
+
? Select model: (Use arrow keys)
|
|
100
|
+
❯ claude-haiku-4-5-20251001 (fast, cost-effective)
|
|
101
|
+
claude-sonnet-4-5-20250929 (balanced)
|
|
102
|
+
claude-opus-4-5-20251101 (highest quality)
|
|
103
|
+
|
|
104
|
+
? Quality threshold: (85)
|
|
105
|
+
? Create glossary template? (y/N)
|
|
106
|
+
|
|
107
|
+
✓ Created .translaterc.json
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Output Files
|
|
111
|
+
|
|
112
|
+
### .translaterc.json
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"$schema": "https://llm-translate.dev/schema.json",
|
|
117
|
+
"provider": {
|
|
118
|
+
"name": "claude",
|
|
119
|
+
"model": "claude-haiku-4-5-20251001"
|
|
120
|
+
},
|
|
121
|
+
"translation": {
|
|
122
|
+
"qualityThreshold": 85,
|
|
123
|
+
"maxIterations": 4,
|
|
124
|
+
"preserveFormatting": true
|
|
125
|
+
},
|
|
126
|
+
"chunking": {
|
|
127
|
+
"maxTokens": 1024,
|
|
128
|
+
"overlapTokens": 150
|
|
129
|
+
},
|
|
130
|
+
"paths": {
|
|
131
|
+
"glossary": "./glossary.json",
|
|
132
|
+
"cache": "./.translate-cache"
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### glossary.json (with --glossary)
|
|
138
|
+
|
|
139
|
+
```json
|
|
140
|
+
{
|
|
141
|
+
"$schema": "https://llm-translate.dev/glossary-schema.json",
|
|
142
|
+
"sourceLanguage": "en",
|
|
143
|
+
"version": "1.0.0",
|
|
144
|
+
"description": "Project glossary",
|
|
145
|
+
"terms": []
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Overwriting Existing Config
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
# Will fail if config exists
|
|
153
|
+
llm-translate init
|
|
154
|
+
# Error: .translaterc.json already exists. Use --force to overwrite.
|
|
155
|
+
|
|
156
|
+
# Force overwrite
|
|
157
|
+
llm-translate init --force
|
|
158
|
+
```
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
# serve
|
|
2
|
+
|
|
3
|
+
Start the translation API server for containerized deployment.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
llm-translate serve [options]
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Description
|
|
12
|
+
|
|
13
|
+
The `serve` command starts an HTTP server that exposes the translation engine as a REST API. This is ideal for:
|
|
14
|
+
|
|
15
|
+
- Containerized deployments (Docker, Kubernetes)
|
|
16
|
+
- Microservice architectures
|
|
17
|
+
- Building translation services
|
|
18
|
+
|
|
19
|
+
## Options
|
|
20
|
+
|
|
21
|
+
| Option | Description | Default |
|
|
22
|
+
|--------|-------------|---------|
|
|
23
|
+
| `-p, --port <number>` | Server port | `3000` (or `TRANSLATE_PORT` env) |
|
|
24
|
+
| `-H, --host <string>` | Host to bind | `0.0.0.0` |
|
|
25
|
+
| `--no-auth` | Disable API key authentication | `false` |
|
|
26
|
+
| `--cors` | Enable CORS for browser clients | `false` |
|
|
27
|
+
| `--json` | Use JSON logging format (for containers) | `false` |
|
|
28
|
+
|
|
29
|
+
## Environment Variables
|
|
30
|
+
|
|
31
|
+
| Variable | Description |
|
|
32
|
+
|----------|-------------|
|
|
33
|
+
| `TRANSLATE_PORT` | Server port (overridden by `--port`) |
|
|
34
|
+
| `TRANSLATE_API_KEY` | API key for authentication |
|
|
35
|
+
| `ANTHROPIC_API_KEY` | Claude API key |
|
|
36
|
+
| `OPENAI_API_KEY` | OpenAI API key |
|
|
37
|
+
| `OLLAMA_BASE_URL` | Ollama server URL |
|
|
38
|
+
|
|
39
|
+
## API Endpoints
|
|
40
|
+
|
|
41
|
+
### POST /translate
|
|
42
|
+
|
|
43
|
+
Main translation endpoint.
|
|
44
|
+
|
|
45
|
+
**Request Headers:**
|
|
46
|
+
```
|
|
47
|
+
Content-Type: application/json
|
|
48
|
+
X-API-Key: your-api-key
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Or use Bearer token:
|
|
52
|
+
```
|
|
53
|
+
Authorization: Bearer your-api-key
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Request Body:**
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"content": "Hello, world!",
|
|
60
|
+
"sourceLang": "en",
|
|
61
|
+
"targetLang": "ko",
|
|
62
|
+
"format": "text",
|
|
63
|
+
"mode": "balanced",
|
|
64
|
+
"glossary": [
|
|
65
|
+
{ "source": "API", "target": "API", "doNotTranslate": true }
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
| Field | Type | Required | Description |
|
|
71
|
+
|-------|------|----------|-------------|
|
|
72
|
+
| `content` | string | Yes | Text to translate |
|
|
73
|
+
| `sourceLang` | string | Yes | Source language code |
|
|
74
|
+
| `targetLang` | string | Yes | Target language code |
|
|
75
|
+
| `format` | string | No | `markdown`, `html`, or `text` (default) |
|
|
76
|
+
| `mode` | string | No | `fast`, `balanced` (default), or `quality` |
|
|
77
|
+
| `glossary` | array | No | Inline glossary terms |
|
|
78
|
+
| `provider` | string | No | `claude`, `openai`, or `ollama` |
|
|
79
|
+
| `model` | string | No | Model name |
|
|
80
|
+
| `qualityThreshold` | number | No | Quality threshold (0-100) |
|
|
81
|
+
| `maxIterations` | number | No | Max refinement iterations (1-10) |
|
|
82
|
+
| `context` | string | No | Additional context for translation |
|
|
83
|
+
|
|
84
|
+
**Response:**
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"translated": "안녕하세요, 세계!",
|
|
88
|
+
"quality": 92,
|
|
89
|
+
"iterations": 2,
|
|
90
|
+
"tokensUsed": {
|
|
91
|
+
"input": 156,
|
|
92
|
+
"output": 48
|
|
93
|
+
},
|
|
94
|
+
"duration": 2341,
|
|
95
|
+
"provider": "claude",
|
|
96
|
+
"model": "claude-sonnet-4-20250514"
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### GET /health
|
|
101
|
+
|
|
102
|
+
Health check endpoint for container orchestration.
|
|
103
|
+
|
|
104
|
+
**Response:**
|
|
105
|
+
```json
|
|
106
|
+
{
|
|
107
|
+
"status": "healthy",
|
|
108
|
+
"version": "0.1.0",
|
|
109
|
+
"uptime": 3600,
|
|
110
|
+
"providers": [
|
|
111
|
+
{ "name": "claude", "available": true },
|
|
112
|
+
{ "name": "openai", "available": false },
|
|
113
|
+
{ "name": "ollama", "available": true }
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### GET /health/live
|
|
119
|
+
|
|
120
|
+
Simple liveness probe.
|
|
121
|
+
|
|
122
|
+
```json
|
|
123
|
+
{ "status": "ok" }
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### GET /health/ready
|
|
127
|
+
|
|
128
|
+
Readiness probe. Returns 503 if no providers are configured.
|
|
129
|
+
|
|
130
|
+
```json
|
|
131
|
+
{ "status": "ready" }
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## HTTP Status Codes
|
|
135
|
+
|
|
136
|
+
| Code | Description |
|
|
137
|
+
|------|-------------|
|
|
138
|
+
| 200 | Success |
|
|
139
|
+
| 400 | Bad request (validation error) |
|
|
140
|
+
| 401 | Unauthorized (missing/invalid API key) |
|
|
141
|
+
| 404 | Not found |
|
|
142
|
+
| 422 | Unprocessable entity (quality threshold not met) |
|
|
143
|
+
| 429 | Too many requests (provider rate limited) |
|
|
144
|
+
| 500 | Internal server error |
|
|
145
|
+
| 502 | Bad gateway (provider error) |
|
|
146
|
+
| 503 | Service unavailable (no providers available) |
|
|
147
|
+
|
|
148
|
+
## Examples
|
|
149
|
+
|
|
150
|
+
### Start server with defaults
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
export ANTHROPIC_API_KEY=sk-ant-xxxxx
|
|
154
|
+
llm-translate serve
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Start with custom port and CORS
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
llm-translate serve --port 8080 --cors
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Start with JSON logging (for Docker)
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
llm-translate serve --json
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Start without authentication (internal use only)
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
llm-translate serve --no-auth
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Translate using curl
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
curl -X POST http://localhost:3000/translate \
|
|
179
|
+
-H "Content-Type: application/json" \
|
|
180
|
+
-H "X-API-Key: your-api-key" \
|
|
181
|
+
-d '{
|
|
182
|
+
"content": "Hello, world!",
|
|
183
|
+
"sourceLang": "en",
|
|
184
|
+
"targetLang": "ko"
|
|
185
|
+
}'
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Docker Deployment
|
|
189
|
+
|
|
190
|
+
See [Docker Deployment Guide](../guide/docker) for detailed instructions.
|
|
191
|
+
|
|
192
|
+
Quick start:
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
# Build image
|
|
196
|
+
docker build -t llm-translate .
|
|
197
|
+
|
|
198
|
+
# Run container
|
|
199
|
+
docker run -d \
|
|
200
|
+
-p 3000:3000 \
|
|
201
|
+
-e ANTHROPIC_API_KEY=sk-ant-xxxxx \
|
|
202
|
+
-e TRANSLATE_API_KEY=your-api-key \
|
|
203
|
+
llm-translate
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## Security Considerations
|
|
207
|
+
|
|
208
|
+
1. **Always use authentication in production** - Set `TRANSLATE_API_KEY`
|
|
209
|
+
2. **Use HTTPS** - Deploy behind a reverse proxy with TLS
|
|
210
|
+
3. **Rate limiting** - Consider adding rate limiting at the proxy level
|
|
211
|
+
4. **Network isolation** - Run in private networks when possible
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../schemas/glossary.schema.json",
|
|
3
|
+
"metadata": {
|
|
4
|
+
"name": "llm-translate-docs",
|
|
5
|
+
"sourceLang": "en",
|
|
6
|
+
"targetLangs": ["ko", "ja", "zh"],
|
|
7
|
+
"version": "1.0.0",
|
|
8
|
+
"domain": "technical-documentation"
|
|
9
|
+
},
|
|
10
|
+
"terms": [
|
|
11
|
+
{
|
|
12
|
+
"source": "Chunking",
|
|
13
|
+
"targets": {},
|
|
14
|
+
"doNotTranslate": true,
|
|
15
|
+
"caseSensitive": false,
|
|
16
|
+
"context": "Document splitting strategy for translation"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"source": "Self-Refine",
|
|
20
|
+
"targets": {},
|
|
21
|
+
"doNotTranslate": true,
|
|
22
|
+
"context": "Iterative quality improvement algorithm"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"source": "llm-translate",
|
|
26
|
+
"targets": {},
|
|
27
|
+
"doNotTranslate": true,
|
|
28
|
+
"context": "Product name"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"source": "API",
|
|
32
|
+
"targets": {},
|
|
33
|
+
"doNotTranslate": true,
|
|
34
|
+
"caseSensitive": true
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"source": "CLI",
|
|
38
|
+
"targets": {},
|
|
39
|
+
"doNotTranslate": true,
|
|
40
|
+
"caseSensitive": true
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"source": "LLM",
|
|
44
|
+
"targets": {},
|
|
45
|
+
"doNotTranslate": true,
|
|
46
|
+
"caseSensitive": true
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"source": "Claude",
|
|
50
|
+
"targets": {},
|
|
51
|
+
"doNotTranslate": true
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"source": "OpenAI",
|
|
55
|
+
"targets": {},
|
|
56
|
+
"doNotTranslate": true
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"source": "Ollama",
|
|
60
|
+
"targets": {},
|
|
61
|
+
"doNotTranslate": true
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"source": "Haiku",
|
|
65
|
+
"targets": {},
|
|
66
|
+
"doNotTranslate": true,
|
|
67
|
+
"context": "Claude model tier"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"source": "Sonnet",
|
|
71
|
+
"targets": {},
|
|
72
|
+
"doNotTranslate": true,
|
|
73
|
+
"context": "Claude model tier"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"source": "Opus",
|
|
77
|
+
"targets": {},
|
|
78
|
+
"doNotTranslate": true,
|
|
79
|
+
"context": "Claude model tier"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"source": "GPT-4o",
|
|
83
|
+
"targets": {},
|
|
84
|
+
"doNotTranslate": true
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"source": "GPT-4o-mini",
|
|
88
|
+
"targets": {},
|
|
89
|
+
"doNotTranslate": true
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"source": "prompt caching",
|
|
93
|
+
"targets": {
|
|
94
|
+
"ko": "프롬프트 캐싱",
|
|
95
|
+
"ja": "プロンプトキャッシング",
|
|
96
|
+
"zh": "提示缓存"
|
|
97
|
+
},
|
|
98
|
+
"context": "Feature to cache repeated prompt content for cost reduction"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"source": "glossary",
|
|
102
|
+
"targets": {
|
|
103
|
+
"ko": "용어집",
|
|
104
|
+
"ja": "用語集",
|
|
105
|
+
"zh": "术语表"
|
|
106
|
+
},
|
|
107
|
+
"context": "Term dictionary for consistent translation"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"source": "llm-translate file",
|
|
111
|
+
"targets": {},
|
|
112
|
+
"doNotTranslate": true,
|
|
113
|
+
"context": "CLI command for single file translation"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"source": "llm-translate dir",
|
|
117
|
+
"targets": {},
|
|
118
|
+
"doNotTranslate": true,
|
|
119
|
+
"context": "CLI command for directory batch translation"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"source": "llm-translate init",
|
|
123
|
+
"targets": {},
|
|
124
|
+
"doNotTranslate": true,
|
|
125
|
+
"context": "CLI command for initialization"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"source": "llm-translate glossary",
|
|
129
|
+
"targets": {},
|
|
130
|
+
"doNotTranslate": true,
|
|
131
|
+
"context": "CLI command for glossary management"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"source": "quality threshold",
|
|
135
|
+
"targets": {
|
|
136
|
+
"ko": "품질 임계값",
|
|
137
|
+
"ja": "品質しきい値",
|
|
138
|
+
"zh": "质量阈值"
|
|
139
|
+
},
|
|
140
|
+
"context": "Minimum quality score required for translation"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"source": "token",
|
|
144
|
+
"targets": {
|
|
145
|
+
"ko": "토큰",
|
|
146
|
+
"ja": "トークン",
|
|
147
|
+
"zh": "令牌"
|
|
148
|
+
},
|
|
149
|
+
"context": "LLM text processing unit"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"source": "chunk",
|
|
153
|
+
"targets": {
|
|
154
|
+
"ko": "청크",
|
|
155
|
+
"ja": "チャンク",
|
|
156
|
+
"zh": "分块"
|
|
157
|
+
},
|
|
158
|
+
"context": "Document segment for translation"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"source": "provider",
|
|
162
|
+
"targets": {
|
|
163
|
+
"ko": "제공자",
|
|
164
|
+
"ja": "プロバイダー",
|
|
165
|
+
"zh": "提供商"
|
|
166
|
+
},
|
|
167
|
+
"context": "LLM service provider (Claude, OpenAI, etc.)"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"source": "Markdown",
|
|
171
|
+
"targets": {},
|
|
172
|
+
"doNotTranslate": true
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"source": "AST",
|
|
176
|
+
"targets": {},
|
|
177
|
+
"doNotTranslate": true,
|
|
178
|
+
"context": "Abstract Syntax Tree"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"source": "JSON",
|
|
182
|
+
"targets": {},
|
|
183
|
+
"doNotTranslate": true
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"source": "TypeScript",
|
|
187
|
+
"targets": {},
|
|
188
|
+
"doNotTranslate": true
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"source": "Node.js",
|
|
192
|
+
"targets": {},
|
|
193
|
+
"doNotTranslate": true
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"source": "npm",
|
|
197
|
+
"targets": {},
|
|
198
|
+
"doNotTranslate": true
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"source": "stdin",
|
|
202
|
+
"targets": {},
|
|
203
|
+
"doNotTranslate": true
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"source": "stdout",
|
|
207
|
+
"targets": {},
|
|
208
|
+
"doNotTranslate": true
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"source": "VitePress",
|
|
212
|
+
"targets": {},
|
|
213
|
+
"doNotTranslate": true,
|
|
214
|
+
"context": "Static site generator"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"source": "sidebar",
|
|
218
|
+
"targets": {
|
|
219
|
+
"ko": "사이드바",
|
|
220
|
+
"ja": "サイドバー",
|
|
221
|
+
"zh": "侧边栏"
|
|
222
|
+
},
|
|
223
|
+
"context": "Navigation panel on the side"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"source": "locale",
|
|
227
|
+
"targets": {
|
|
228
|
+
"ko": "로케일",
|
|
229
|
+
"ja": "ロケール",
|
|
230
|
+
"zh": "语言环境"
|
|
231
|
+
},
|
|
232
|
+
"context": "Language/region setting"
|
|
233
|
+
}
|
|
234
|
+
]
|
|
235
|
+
}
|