t9n-cli 0.1.0 → 0.1.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/dictionaries/ar.json +244 -0
- package/dictionaries/de.json +244 -0
- package/dictionaries/el.json +244 -0
- package/dictionaries/en.json +244 -0
- package/dictionaries/es.json +244 -0
- package/dictionaries/fr.json +244 -0
- package/dictionaries/hi.json +244 -0
- package/dictionaries/id.json +244 -0
- package/dictionaries/it.json +244 -0
- package/dictionaries/ja.json +244 -0
- package/dictionaries/ko.json +244 -0
- package/dictionaries/ms.json +244 -0
- package/dictionaries/nl.json +244 -0
- package/dictionaries/pl.json +244 -0
- package/dictionaries/pt.json +244 -0
- package/dictionaries/ru.json +244 -0
- package/dictionaries/sv.json +244 -0
- package/dictionaries/th.json +244 -0
- package/dictionaries/tr.json +244 -0
- package/dictionaries/vi.json +244 -0
- package/dictionaries/yue.json +244 -0
- package/dictionaries/zh-CN.json +244 -0
- package/dictionaries/zh-TW.json +244 -0
- package/dist/api.d.ts +1 -0
- package/dist/api.js +52 -0
- package/dist/commands/auth.d.ts +1 -0
- package/dist/commands/auth.js +41 -0
- package/dist/commands/diff.d.ts +1 -0
- package/dist/commands/diff.js +96 -0
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.js +32 -0
- package/dist/commands/scan.d.ts +1 -0
- package/dist/commands/scan.js +151 -0
- package/dist/commands/status.d.ts +1 -0
- package/dist/commands/status.js +42 -0
- package/dist/commands/translate.d.ts +1 -0
- package/dist/commands/translate.js +76 -0
- package/dist/config.d.ts +19 -0
- package/dist/config.js +60 -0
- package/dist/i18n.d.ts +7 -0
- package/dist/i18n.js +52 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +58 -0
- package/dist/lib/jsonUtils.d.ts +12 -0
- package/dist/lib/jsonUtils.js +151 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
{
|
|
2
|
+
"home": {
|
|
3
|
+
"badge": "t9n - MVP",
|
|
4
|
+
"title": "尊重你代碼嘅 i18n 翻譯。",
|
|
5
|
+
"subtitle": "零語法錯誤。變量保護。上下文感知。",
|
|
6
|
+
"button": "開始翻譯"
|
|
7
|
+
},
|
|
8
|
+
"editor": {
|
|
9
|
+
"run": "執行翻譯",
|
|
10
|
+
"translating": "翻譯中",
|
|
11
|
+
"source": {
|
|
12
|
+
"label": "原文語言",
|
|
13
|
+
"upload": "上傳 JSON",
|
|
14
|
+
"upload_multiple": "撳呢度上傳 JSON 檔案",
|
|
15
|
+
"context": "上下文",
|
|
16
|
+
"context_placeholder": "加入上下文背景嚟提升準確度...",
|
|
17
|
+
"pro_feature": "PRO 功能",
|
|
18
|
+
"pro_context_msg": "升級後可提供上下文背景,令翻譯更精準。",
|
|
19
|
+
"info": "原文",
|
|
20
|
+
"lines": "行數",
|
|
21
|
+
"clear_context": "清除",
|
|
22
|
+
"large_file_title": "已載入大檔案 ({size})",
|
|
23
|
+
"large_file_desc": "為咗效能已停用預覽。完整內容會直接送去翻譯。"
|
|
24
|
+
},
|
|
25
|
+
"diff_dialog": {
|
|
26
|
+
"title": "增量更新 (Diff)",
|
|
27
|
+
"files_preview": "檔案預覽",
|
|
28
|
+
"base_tag": "基準",
|
|
29
|
+
"start_diff": "開始比對"
|
|
30
|
+
},
|
|
31
|
+
"target": {
|
|
32
|
+
"label": "目標語言",
|
|
33
|
+
"copy": "複製",
|
|
34
|
+
"download": "下載",
|
|
35
|
+
"no_selection": "未選擇語言",
|
|
36
|
+
"placeholder": "選擇語言並執行翻譯後,結果會喺呢度顯示",
|
|
37
|
+
"stale_warning": "原文已更改 - 翻譯已過時",
|
|
38
|
+
"max_select": "最多 {n} 個",
|
|
39
|
+
"more_suffix": "(+{n})"
|
|
40
|
+
},
|
|
41
|
+
"mobile": {
|
|
42
|
+
"view_result": "睇結果",
|
|
43
|
+
"back_to_code": "返去代碼"
|
|
44
|
+
},
|
|
45
|
+
"features": {
|
|
46
|
+
"diff_title": "增量比對",
|
|
47
|
+
"diff_msg": "增量更新功能即將推出!",
|
|
48
|
+
"soon": "快將推出"
|
|
49
|
+
},
|
|
50
|
+
"messages": {
|
|
51
|
+
"pro_feature_title": "Pro 功能 (即將推出)",
|
|
52
|
+
"upload_pro_msg": "上傳係 Pro 功能。\n\n我哋正喺度開發高級功能,敬請期待!\n\n需要幫手?聯絡:{email}",
|
|
53
|
+
"download_pro_msg": "下載係 Pro 功能。\n\n我哋正喺度開發高級功能,敬請期待!\n\n需要幫手?聯絡:{email}",
|
|
54
|
+
"diff_upload_hint": "上傳你所有翻譯檔。最完整嗰份會用嚟做基準。",
|
|
55
|
+
"file_too_large_title": "檔案太大",
|
|
56
|
+
"file_too_large_msg": "檔案太大了 ({size})。上限係 {limit}。\n\n檔案分割功能即將推出!",
|
|
57
|
+
"copied": "已複製到剪貼簿!",
|
|
58
|
+
"copy_failed": "複製失敗",
|
|
59
|
+
"invalid_json": "原文 JSON 格式無效",
|
|
60
|
+
"translation_complete": "翻譯完成!",
|
|
61
|
+
"translation_failed": "翻譯失敗",
|
|
62
|
+
"daily_limit_reached": "已達每日上限",
|
|
63
|
+
"daily_limit_desc": "你今日嘅免費翻譯額度已經用完。",
|
|
64
|
+
"pro_plan_coming_soon": "PRO 方案同無限使用權即將推出!",
|
|
65
|
+
"building_premium": "我哋正喺度開發高級功能,敬請期待!",
|
|
66
|
+
"contact_us": "需要更多?聯絡我哋:{email}",
|
|
67
|
+
"error_details": "錯誤詳情:",
|
|
68
|
+
"limit_exceeded": "超出限制",
|
|
69
|
+
"limit_exceeded_desc": "{tier} 方案每次最多處理 {max} 個 key。你嘅檔案有 {keys} 個 key。",
|
|
70
|
+
"insufficient_credits": "點數不足",
|
|
71
|
+
"insufficient_credits_desc": "呢次翻譯需要 {cost} 點,你仲剩返 {available} 點。",
|
|
72
|
+
"free_plan_limit_exceeded": "超出免費方案限制",
|
|
73
|
+
"upgrade_to_pro": "升級到 PRO (即將推出)",
|
|
74
|
+
"pro_benefits_1": "檔案 key 數量無上限",
|
|
75
|
+
"pro_benefits_2": "上下文長度無上限",
|
|
76
|
+
"pro_benefits_3": "批量翻譯",
|
|
77
|
+
"reduce_size": "目前請先縮減檔案大細或上下文長度。",
|
|
78
|
+
"select_target_lang": "請至少選擇一種目標語言。",
|
|
79
|
+
"up_to_date": "所有選定語言都已經係最新。",
|
|
80
|
+
"translating_placeholder": "// 翻譯中...",
|
|
81
|
+
"error_no_data": "// 錯誤:冇回傳數據。",
|
|
82
|
+
"error_failed_generic": "// 錯誤:翻譯失敗。請再試一次。",
|
|
83
|
+
"max_langs_reached": "免費方案最多只可以揀 {n} 種目標語言。",
|
|
84
|
+
"credits_needed": "所需點數",
|
|
85
|
+
"credits_remaining": "剩餘",
|
|
86
|
+
"invalid_base_json": "基準 JSON 格式無效",
|
|
87
|
+
"invalid_base_content": "基準檔案內容無效"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"common": {
|
|
91
|
+
"contact": "聯絡",
|
|
92
|
+
"email": "z17682341097@gmail.com",
|
|
93
|
+
"pro": "PRO",
|
|
94
|
+
"coming_soon": "即將推出",
|
|
95
|
+
"pricing": "價格",
|
|
96
|
+
"docs": "文檔同 CLI",
|
|
97
|
+
"cli": "CLI",
|
|
98
|
+
"i18n_note": "呢個網站嘅所有翻譯都係用 t9n 生成嘅。",
|
|
99
|
+
"upgrade": "升級",
|
|
100
|
+
"auto_detect": "自動偵測",
|
|
101
|
+
"soon": "快將推出",
|
|
102
|
+
"pro_only": "({pro} 只限)",
|
|
103
|
+
"contact_support": "聯絡支援",
|
|
104
|
+
"pricing_limits": "價格同限制",
|
|
105
|
+
"back_to_home": "返去主頁",
|
|
106
|
+
"back_to_editor": "返去編輯器",
|
|
107
|
+
"mail_to": "發郵件至",
|
|
108
|
+
"cancel": "取消",
|
|
109
|
+
"close": "關閉",
|
|
110
|
+
"confirm": "確定",
|
|
111
|
+
"notification": "通知"
|
|
112
|
+
},
|
|
113
|
+
"auth": {
|
|
114
|
+
"login": "登入",
|
|
115
|
+
"logout": "登出",
|
|
116
|
+
"welcome_back": "歡迎返嚟",
|
|
117
|
+
"login_desc": "登入以使用 Pro 功能同更高限制",
|
|
118
|
+
"cli_login_required": "請先使用呢個指令登入:t9n auth <your-api-key>",
|
|
119
|
+
"continue_google": "繼續使用 Google",
|
|
120
|
+
"continue_github": "繼續使用 GitHub",
|
|
121
|
+
"terms": "繼續即代表你同意我哋嘅服務條款同私隱政策。"
|
|
122
|
+
},
|
|
123
|
+
"settings": {
|
|
124
|
+
"title": "設定",
|
|
125
|
+
"apikeys": {
|
|
126
|
+
"title": "API 金鑰",
|
|
127
|
+
"desc": "管理你嘅 API 金鑰,用於 CLI 工具或 CI/CD 流水線。",
|
|
128
|
+
"create": "建立新金鑰",
|
|
129
|
+
"name_label": "金鑰名稱",
|
|
130
|
+
"name_placeholder": "例如:我部手提電腦嘅 CLI",
|
|
131
|
+
"key_secret_warning": "請即刻複製你嘅 API 金鑰。為咗安全起見,系統之後唔會再顯示。",
|
|
132
|
+
"copy_key": "複製金鑰",
|
|
133
|
+
"list_empty": "仲未建立任何 API 金鑰。",
|
|
134
|
+
"revoke": "撤銷",
|
|
135
|
+
"revoke_confirm": "你確定要撤銷呢個 API 金鑰?使用緊佢嘅工具將會停用。",
|
|
136
|
+
"last_used": "最後使用",
|
|
137
|
+
"never_used": "從未使用",
|
|
138
|
+
"created": "建立日期"
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"pricing": {
|
|
142
|
+
"title": "簡單透明嘅定價",
|
|
143
|
+
"subtitle": "選擇最適合你翻譯需求嘅方案。",
|
|
144
|
+
"monthly": "每月",
|
|
145
|
+
"daily": "每日",
|
|
146
|
+
"per_request": "每次請求",
|
|
147
|
+
"get_started": "立即開始",
|
|
148
|
+
"upgrade": "立即升級",
|
|
149
|
+
"contact_sales": "聯絡銷售",
|
|
150
|
+
"features": {
|
|
151
|
+
"credits": "{n} 點數",
|
|
152
|
+
"keys": "最多 {n} 個 key",
|
|
153
|
+
"langs": "最多 {n} 種語言",
|
|
154
|
+
"upload_download": "上傳 / 下載",
|
|
155
|
+
"diff": "增量更新 (Diff)",
|
|
156
|
+
"context": "上下文感知"
|
|
157
|
+
},
|
|
158
|
+
"most_popular": "最受歡迎",
|
|
159
|
+
"custom": "自訂"
|
|
160
|
+
},
|
|
161
|
+
"metadata": {
|
|
162
|
+
"title": "t9n - 開發者專用 JSON 翻譯器 | i18n AI 翻譯",
|
|
163
|
+
"description": "專為開發者設計嘅 i18n JSON 檔案 AI 翻譯器。零語法錯誤、變量保護 (React Intl, i18next) 同智能上下文感知。翻譯軟件,唔只係文字。",
|
|
164
|
+
"og_title": "t9n - 開發者專用 JSON 翻譯器",
|
|
165
|
+
"og_description": "翻譯 i18n JSON 檔案,同時保護代碼變量。支援 React Intl, i18next 等。"
|
|
166
|
+
},
|
|
167
|
+
"docs": {
|
|
168
|
+
"title": "開發文檔",
|
|
169
|
+
"subtitle": "深入了解 t9n 嘅功能,由基本用法到進階增量更新同 AI 上下文優化。",
|
|
170
|
+
"sections": {
|
|
171
|
+
"basic": {
|
|
172
|
+
"title": "基本功能:即時翻譯",
|
|
173
|
+
"content": "t9n 專為 i18n JSON 格式設計。我哋優化咗 Prompt 策略,確保所有代碼變量(例如 {name} 或 {{count}})喺翻譯過程中都受到嚴格保護。",
|
|
174
|
+
"item1": "支援批量選擇目標語言,一次過生成多種翻譯。",
|
|
175
|
+
"item2": "即時預覽:原文同譯文並排對比。"
|
|
176
|
+
},
|
|
177
|
+
"context": {
|
|
178
|
+
"title": "上下文感知",
|
|
179
|
+
"content": "翻譯唔只係逐字翻譯。透過提供應用程式背景,AI 可以更準確咁揀選詞彙。",
|
|
180
|
+
"example": "例如,「Menu」一詞喺餐廳 App 入面係「菜單」,喺設計軟件入面就係「功能清單」。提供 Context 可以消除歧義。"
|
|
181
|
+
},
|
|
182
|
+
"diff": {
|
|
183
|
+
"title": "智能增量更新 (Diff 模式)",
|
|
184
|
+
"content": "當你嘅原文檔 (例如 en.json) 有新內容時,唔需要重新翻譯成個檔案。t9n 嘅增量更新模式而家支援全自動化。",
|
|
185
|
+
"new_feature": "新功能:全自動多檔案識別",
|
|
186
|
+
"step1_title": "1. 批量上傳",
|
|
187
|
+
"step1_desc": "喺上傳對話框入面同時選擇英文 (基準) 同現有嘅翻譯檔 (例如中文、日文)。唔再需要手動比對。",
|
|
188
|
+
"step2_title": "2. 智能基準偵測",
|
|
189
|
+
"step2_desc": "系統會自動統計每個檔案嘅 key 數量,並將最完整嗰份當做「翻譯基準」,自動填補其他檔案缺失嘅部分。",
|
|
190
|
+
"step3_title": "3. 精準翻譯",
|
|
191
|
+
"step3_desc": "缺失嘅 key 會標記為 🚧 [MISSING]。AI 只會翻譯呢啲標記,幫你慳返 90% 以上嘅點數。",
|
|
192
|
+
"quote": "「保留 100% 現有翻譯,只處理新增需求。」"
|
|
193
|
+
},
|
|
194
|
+
"cli": {
|
|
195
|
+
"tag": "現已推出",
|
|
196
|
+
"title": "t9n CLI",
|
|
197
|
+
"content": "喺終端機進行專業嘅 i18n 管理。用我哋強大嘅命令行介面將翻譯流程自動化。",
|
|
198
|
+
"install": "npm install -g @t9n/cli",
|
|
199
|
+
"command_auth": "t9n auth <key>",
|
|
200
|
+
"command_init": "t9n init",
|
|
201
|
+
"command_scan": "t9n scan ./src",
|
|
202
|
+
"command_translate": "t9n translate ./en.json -t zh-CN,ja",
|
|
203
|
+
"command_diff": "t9n diff ./dictionaries",
|
|
204
|
+
"desc_auth": "將你嘅本地環境同 t9n 帳戶連結。",
|
|
205
|
+
"desc_init": "建立 t9n.config.json 嚟儲存你嘅項目偏好設定。",
|
|
206
|
+
"desc_scan": "喺源代碼入面搵返仲未喺 JSON 入面嘅缺失 key。",
|
|
207
|
+
"desc_translate": "直接翻譯本地檔案並自動儲存結果。",
|
|
208
|
+
"desc_diff": "為資料夾入面嘅所有語言進行智能增量更新。",
|
|
209
|
+
"progress": "生產環境已就緒"
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
"example_correct": "Portfolio\" → \"投資組合\"",
|
|
213
|
+
"example_incorrect": "Portfolio\" → \"作品集\""
|
|
214
|
+
},
|
|
215
|
+
"cli": {
|
|
216
|
+
"diff": {
|
|
217
|
+
"title": "🛰️ T9N CLI - 增量更新",
|
|
218
|
+
"analyzing": "🔍 正在分析差異...",
|
|
219
|
+
"comparing": "正在與現有檔案比對...",
|
|
220
|
+
"new_lang": "偵測到新語言。",
|
|
221
|
+
"success": "成功接收翻譯!",
|
|
222
|
+
"updated": "已更新:",
|
|
223
|
+
"all_up_to_date": "✨ 所有翻譯都已經係最新!"
|
|
224
|
+
},
|
|
225
|
+
"scan": {
|
|
226
|
+
"title": "🔍 T9N CLI - 代碼掃描器",
|
|
227
|
+
"scanning": "正在掃描檔案...",
|
|
228
|
+
"scanned": "已掃描 {n} 個檔案。",
|
|
229
|
+
"missing_found": "搵到 {n} 個缺失嘅 key (喺代碼入面但唔喺字典入面):",
|
|
230
|
+
"all_present": "✨ 代碼入面所有 key 都已經喺字典入面。",
|
|
231
|
+
"orphaned": "搵到 {n} 個可能冇用到嘅 key (喺字典入面但唔喺代碼入面):"
|
|
232
|
+
},
|
|
233
|
+
"auth": {
|
|
234
|
+
"verifying": "正在驗證 API 金鑰...",
|
|
235
|
+
"success": "驗證成功!({target} 設定)",
|
|
236
|
+
"key_missing": "請提供 API 金鑰。用法:t9n auth <key>"
|
|
237
|
+
},
|
|
238
|
+
"init": {
|
|
239
|
+
"title": "🎬 T9N - 項目初始化",
|
|
240
|
+
"created": "已建立項目設定:{path}",
|
|
241
|
+
"already_exists": "設定檔已經存在於:{path}"
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
{
|
|
2
|
+
"home": {
|
|
3
|
+
"badge": "t9n - MVP",
|
|
4
|
+
"title": "尊重代码的 i18n 翻译。",
|
|
5
|
+
"subtitle": "零语法错误。变量保护。上下文感知。",
|
|
6
|
+
"button": "开始翻译"
|
|
7
|
+
},
|
|
8
|
+
"editor": {
|
|
9
|
+
"run": "执行翻译",
|
|
10
|
+
"translating": "正在翻译",
|
|
11
|
+
"source": {
|
|
12
|
+
"label": "源语言",
|
|
13
|
+
"upload": "上传 JSON",
|
|
14
|
+
"upload_multiple": "点击上传 JSON 文件",
|
|
15
|
+
"context": "上下文",
|
|
16
|
+
"context_placeholder": "添加上下文以优化翻译...",
|
|
17
|
+
"pro_feature": "专业版功能",
|
|
18
|
+
"pro_context_msg": "升级以提供上下文,获得更高准确度。",
|
|
19
|
+
"info": "源内容",
|
|
20
|
+
"lines": "行数",
|
|
21
|
+
"clear_context": "清空",
|
|
22
|
+
"large_file_title": "大文件已加载 ({size})",
|
|
23
|
+
"large_file_desc": "为了性能已禁用预览。全部内容将发送进行翻译。"
|
|
24
|
+
},
|
|
25
|
+
"diff_dialog": {
|
|
26
|
+
"title": "增量更新 (Diff)",
|
|
27
|
+
"files_preview": "文件预览",
|
|
28
|
+
"base_tag": "基准",
|
|
29
|
+
"start_diff": "开始差异对比"
|
|
30
|
+
},
|
|
31
|
+
"target": {
|
|
32
|
+
"label": "目标语言",
|
|
33
|
+
"copy": "复制",
|
|
34
|
+
"download": "下载",
|
|
35
|
+
"no_selection": "未选择语言",
|
|
36
|
+
"placeholder": "选择语言并运行翻译后在此查看结果",
|
|
37
|
+
"stale_warning": "源内容已更改 - 翻译已过期",
|
|
38
|
+
"max_select": "最大 {n}",
|
|
39
|
+
"more_suffix": "(+{n})"
|
|
40
|
+
},
|
|
41
|
+
"mobile": {
|
|
42
|
+
"view_result": "查看结果",
|
|
43
|
+
"back_to_code": "返回代码"
|
|
44
|
+
},
|
|
45
|
+
"features": {
|
|
46
|
+
"diff_title": "增量更新",
|
|
47
|
+
"diff_msg": "差异/增量更新功能即将上线!",
|
|
48
|
+
"soon": "即将推出"
|
|
49
|
+
},
|
|
50
|
+
"messages": {
|
|
51
|
+
"pro_feature_title": "专业版功能 (即将推出)",
|
|
52
|
+
"upload_pro_msg": "上传是专业版功能。\n\n我们正在开发高级功能。敬请期待!\n\n需要帮助?联系:{email}",
|
|
53
|
+
"download_pro_msg": "下载是专业版功能。\n\n我们正在开发高级功能。敬请期待!\n\n需要帮助?联系:{email}",
|
|
54
|
+
"diff_upload_hint": "上传所有翻译文件。内容最全的文件将作为基准。",
|
|
55
|
+
"file_too_large_title": "文件太大",
|
|
56
|
+
"file_too_large_msg": "文件太大 ({size})。限制为 {limit}。\n\n文件拆分功能即将推出!",
|
|
57
|
+
"copied": "已复制到剪贴板!",
|
|
58
|
+
"copy_failed": "复制失败",
|
|
59
|
+
"invalid_json": "无效的源 JSON",
|
|
60
|
+
"translation_complete": "翻译完成!",
|
|
61
|
+
"translation_failed": "翻译失败",
|
|
62
|
+
"daily_limit_reached": "已达到每日限制",
|
|
63
|
+
"daily_limit_desc": "您已用完今天的免费翻译额度。",
|
|
64
|
+
"pro_plan_coming_soon": "专业计划和无限访问即将推出!",
|
|
65
|
+
"building_premium": "我们正在开发高级功能。敬请期待!",
|
|
66
|
+
"contact_us": "需要更多?联系我们:{email}",
|
|
67
|
+
"error_details": "错误详情:",
|
|
68
|
+
"limit_exceeded": "超出限制",
|
|
69
|
+
"limit_exceeded_desc": "{tier} 计划每次请求最多允许 {max} 个键。您的文件有 {keys} 个键。",
|
|
70
|
+
"insufficient_credits": "余额不足",
|
|
71
|
+
"insufficient_credits_desc": "本次翻译需要 {cost} 额度,但您剩余 {available}。",
|
|
72
|
+
"free_plan_limit_exceeded": "超出免费计划限制",
|
|
73
|
+
"upgrade_to_pro": "升级到专业版 (即将推出)",
|
|
74
|
+
"pro_benefits_1": "单个文件无限键数",
|
|
75
|
+
"pro_benefits_2": "无限上下文长度",
|
|
76
|
+
"pro_benefits_3": "批量翻译",
|
|
77
|
+
"reduce_size": "目前请减小文件大小或缩短上下文。",
|
|
78
|
+
"select_target_lang": "请至少选择一个目标语言。",
|
|
79
|
+
"up_to_date": "所有选定的语言都已是最新。",
|
|
80
|
+
"translating_placeholder": "// 正在翻译...",
|
|
81
|
+
"error_no_data": "// 错误:未返回数据。",
|
|
82
|
+
"error_failed_generic": "// 错误:翻译失败,请重试。",
|
|
83
|
+
"max_langs_reached": "免费计划最多允许 {n} 个目标语言。",
|
|
84
|
+
"credits_needed": "所需额度",
|
|
85
|
+
"credits_remaining": "剩余",
|
|
86
|
+
"invalid_base_json": "无效的基准 JSON",
|
|
87
|
+
"invalid_base_content": "无效的基准文件内容"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"common": {
|
|
91
|
+
"contact": "联系我们",
|
|
92
|
+
"email": "z17682341097@gmail.com",
|
|
93
|
+
"pro": "专业版",
|
|
94
|
+
"coming_soon": "即将推出",
|
|
95
|
+
"pricing": "价格",
|
|
96
|
+
"docs": "文档与 CLI",
|
|
97
|
+
"cli": "CLI",
|
|
98
|
+
"i18n_note": "本站的所有翻译均由 t9n 生成。",
|
|
99
|
+
"upgrade": "升级",
|
|
100
|
+
"auto_detect": "自动检测",
|
|
101
|
+
"soon": "即将推出",
|
|
102
|
+
"pro_only": "(仅限 {pro})",
|
|
103
|
+
"contact_support": "联系支持",
|
|
104
|
+
"pricing_limits": "价格与限制",
|
|
105
|
+
"back_to_home": "回到首页",
|
|
106
|
+
"back_to_editor": "返回编辑器",
|
|
107
|
+
"mail_to": "发送邮件",
|
|
108
|
+
"cancel": "取消",
|
|
109
|
+
"close": "关闭",
|
|
110
|
+
"confirm": "确认",
|
|
111
|
+
"notification": "通知"
|
|
112
|
+
},
|
|
113
|
+
"auth": {
|
|
114
|
+
"login": "登录",
|
|
115
|
+
"logout": "退出登录",
|
|
116
|
+
"welcome_back": "欢迎回来",
|
|
117
|
+
"login_desc": "登录以访问专业版功能和更高限制",
|
|
118
|
+
"cli_login_required": "请先登录:t9n auth <your-api-key>",
|
|
119
|
+
"continue_google": "使用 Google 继续",
|
|
120
|
+
"continue_github": "使用 GitHub 继续",
|
|
121
|
+
"terms": "继续即表示您同意我们的服务条款和隐私政策。"
|
|
122
|
+
},
|
|
123
|
+
"settings": {
|
|
124
|
+
"title": "设置",
|
|
125
|
+
"apikeys": {
|
|
126
|
+
"title": "API 密钥",
|
|
127
|
+
"desc": "管理用于 CLI 工具或 CI/CD 流水的 API 密钥。",
|
|
128
|
+
"create": "创建新密钥",
|
|
129
|
+
"name_label": "密钥名称",
|
|
130
|
+
"name_placeholder": "例如:我的笔记本 CLI",
|
|
131
|
+
"key_secret_warning": "请立即复制您的 API 密钥。为了您的安全,它不会再次显示。",
|
|
132
|
+
"copy_key": "复制密钥",
|
|
133
|
+
"list_empty": "尚未创建 API 密钥。",
|
|
134
|
+
"revoke": "撤销",
|
|
135
|
+
"revoke_confirm": "确定要撤销此 API 密钥吗?使用该密钥的工具将停止工作。",
|
|
136
|
+
"last_used": "最后使用",
|
|
137
|
+
"never_used": "从未使用",
|
|
138
|
+
"created": "已创建"
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"pricing": {
|
|
142
|
+
"title": "简单透明的价格",
|
|
143
|
+
"subtitle": "选择适合您翻译需求的计划。",
|
|
144
|
+
"monthly": "每月",
|
|
145
|
+
"daily": "每日",
|
|
146
|
+
"per_request": "每次请求",
|
|
147
|
+
"get_started": "开始使用",
|
|
148
|
+
"upgrade": "立即升级",
|
|
149
|
+
"contact_sales": "联系销售",
|
|
150
|
+
"features": {
|
|
151
|
+
"credits": "{n} 额度",
|
|
152
|
+
"keys": "最多 {n} 个键",
|
|
153
|
+
"langs": "最多 {n} 种语言",
|
|
154
|
+
"upload_download": "上传 / 下载",
|
|
155
|
+
"diff": "增量更新 (Diff)",
|
|
156
|
+
"context": "上下文感知"
|
|
157
|
+
},
|
|
158
|
+
"most_popular": "最受欢迎",
|
|
159
|
+
"custom": "定制"
|
|
160
|
+
},
|
|
161
|
+
"metadata": {
|
|
162
|
+
"title": "t9n - 开发者专用的 JSON 翻译工具 | i18n AI 翻译",
|
|
163
|
+
"description": "专为开发者打造的 i18n JSON 文件 AI 翻译器。零语法错误,保护变量 (React Intl, i18next),以及智能上下文感知。翻译的是软件,而不只是文字。",
|
|
164
|
+
"og_title": "t9n - 开发者专用的 JSON 翻译工具",
|
|
165
|
+
"og_description": "在不破坏代码变量的情况下翻译 i18n JSON 文件。支持 React Intl, i18next 等。"
|
|
166
|
+
},
|
|
167
|
+
"docs": {
|
|
168
|
+
"title": "文档",
|
|
169
|
+
"subtitle": "深入了解 t9n 的功能,从基本用法到高级增量更新和 AI 上下文优化。",
|
|
170
|
+
"sections": {
|
|
171
|
+
"basic": {
|
|
172
|
+
"title": "基础功能:实时翻译",
|
|
173
|
+
"content": "t9n 专为 i18n JSON 格式设计。我们优化了 Prompt 策略,确保所有代码变量(如 {name} 或 {{count}})在翻译过程中得到严格保护。",
|
|
174
|
+
"item1": "支持批量选择目标语言,一次性生成多种翻译。",
|
|
175
|
+
"item2": "实时预览:源内容与目标内容左右对比。"
|
|
176
|
+
},
|
|
177
|
+
"context": {
|
|
178
|
+
"title": "上下文感知",
|
|
179
|
+
"content": "翻译不仅是词对词。通过提供应用背景,AI 可以更准确地选择词汇。",
|
|
180
|
+
"example": "例如,同一个词 \"Menu\" 在餐厅应用中是“菜单”,在设计软件中是“功能列表”。提供 Context 可以消除歧义。"
|
|
181
|
+
},
|
|
182
|
+
"diff": {
|
|
183
|
+
"title": "智能增量更新 (Diff 模式)",
|
|
184
|
+
"content": "当您的源语言文件(如 en.json)有新内容时,无需重新翻译整个文件。t9n 的增量更新模式现已支持全自动化。",
|
|
185
|
+
"new_feature": "新增:全自动多文件识别",
|
|
186
|
+
"step1_title": "1. 多选上传",
|
|
187
|
+
"step1_desc": "在上传对话框中同时选择英语(基准)和现有的翻译文件(如中文、日语)。不再需要手动对比。",
|
|
188
|
+
"step2_title": "2. 智能基准检测",
|
|
189
|
+
"step2_desc": "系统自动计算每个文件的键数,并将内容最全的作为“翻译基准”,自动填充其他文件中缺失的部分。",
|
|
190
|
+
"step3_title": "3. 精准翻译",
|
|
191
|
+
"step3_desc": "缺失的键被标记为 🚧 [MISSING]。AI 仅翻译这些标记,为您节省 90% 以上的额度。",
|
|
192
|
+
"quote": "“保留 100% 现有翻译,只处理新需求。”"
|
|
193
|
+
},
|
|
194
|
+
"cli": {
|
|
195
|
+
"tag": "现已可用",
|
|
196
|
+
"title": "t9n CLI",
|
|
197
|
+
"content": "终端中的专业 i18n 管理。使用我们强大的命令行界面自动化您的翻译工作流。",
|
|
198
|
+
"install": "npm install -g @t9n/cli",
|
|
199
|
+
"command_auth": "t9n auth <key>",
|
|
200
|
+
"command_init": "t9n init",
|
|
201
|
+
"command_scan": "t9n scan ./src",
|
|
202
|
+
"command_translate": "t9n translate ./en.json -t zh-CN,ja",
|
|
203
|
+
"command_diff": "t9n diff ./dictionaries",
|
|
204
|
+
"desc_auth": "将本地环境与您的 t9n 帐户关联。",
|
|
205
|
+
"desc_init": "创建 t9n.config.json 以保存项目首选项。",
|
|
206
|
+
"desc_scan": "在源代码中查找尚未在 JSON 中的缺失键。",
|
|
207
|
+
"desc_translate": "直接翻译本地文件并自动保存结果。",
|
|
208
|
+
"desc_diff": "对文件夹中的所有语言进行智能增量更新。",
|
|
209
|
+
"progress": "生产就绪"
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
"example_correct": "Portfolio\" → \"投资组合\"",
|
|
213
|
+
"example_incorrect": "Portfolio\" → \"作品集\""
|
|
214
|
+
},
|
|
215
|
+
"cli": {
|
|
216
|
+
"diff": {
|
|
217
|
+
"title": "🛰️ T9N CLI - 增量更新",
|
|
218
|
+
"analyzing": "🔍 正在分析差异...",
|
|
219
|
+
"comparing": "正在与现有文件对比...",
|
|
220
|
+
"new_lang": "检测到新语言。",
|
|
221
|
+
"success": "翻译接收成功!",
|
|
222
|
+
"updated": "已更新:",
|
|
223
|
+
"all_up_to_date": "✨ 所有翻译均已是最新!"
|
|
224
|
+
},
|
|
225
|
+
"scan": {
|
|
226
|
+
"title": "🔍 T9N CLI - 代码扫描器",
|
|
227
|
+
"scanning": "正在扫描文件...",
|
|
228
|
+
"scanned": "已扫描 {n} 个文件。",
|
|
229
|
+
"missing_found": "发现 {n} 个缺失键(代码中有但字典中没有):",
|
|
230
|
+
"all_present": "✨ 代码中的所有键在字典中均已存在。",
|
|
231
|
+
"orphaned": "发现 {n} 个潜在的冗余键(字典中有但代码中没有):"
|
|
232
|
+
},
|
|
233
|
+
"auth": {
|
|
234
|
+
"verifying": "正在验证 API 密钥...",
|
|
235
|
+
"success": "认证成功!({target} 配置)",
|
|
236
|
+
"key_missing": "请提供 API 密钥。用法:t9n auth <key>"
|
|
237
|
+
},
|
|
238
|
+
"init": {
|
|
239
|
+
"title": "🎬 T9N - 项目初始化",
|
|
240
|
+
"created": "已创建项目配置:{path}",
|
|
241
|
+
"already_exists": "配置文件已存在于:{path}"
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|