@kikkimo/claude-launcher 1.0.0 → 2.1.0
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/CHANGELOG.md +146 -0
- package/README.md +103 -41
- package/claude-launcher +1071 -576
- package/docs/README-zh.md +107 -45
- package/lib/api-manager.js +449 -0
- package/lib/auth/password-input.js +158 -0
- package/lib/auth/password-strength.js +154 -0
- package/lib/auth/password-validator.js +255 -0
- package/lib/crypto.js +85 -0
- package/lib/i18n/formatter.js +62 -0
- package/lib/i18n/index.js +218 -0
- package/lib/i18n/language-manager.js +160 -0
- package/lib/i18n/locales/de.js +538 -0
- package/lib/i18n/locales/en.js +539 -0
- package/lib/i18n/locales/es.js +538 -0
- package/lib/i18n/locales/fr.js +538 -0
- package/lib/i18n/locales/it.js +539 -0
- package/lib/i18n/locales/ja.js +538 -0
- package/lib/i18n/locales/ko.js +538 -0
- package/lib/i18n/locales/pt.js +539 -0
- package/lib/i18n/locales/ru.js +539 -0
- package/lib/i18n/locales/zh-TW.js +538 -0
- package/lib/i18n/locales/zh.js +538 -0
- package/lib/launcher.js +359 -0
- package/lib/presets/providers.js +148 -0
- package/lib/ui/colors.js +32 -0
- package/lib/ui/interactive-table.js +338 -0
- package/lib/ui/menu.js +383 -0
- package/lib/ui/prompts.js +571 -0
- package/lib/utils/stdin-manager.js +715 -0
- package/lib/utils/string-width.js +180 -0
- package/lib/utils/version-checker.js +240 -0
- package/lib/validators.js +130 -0
- package/package.json +2 -2
|
@@ -0,0 +1,538 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Japanese Language Pack
|
|
3
|
+
* Contains all translatable strings for Japanese locale
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
module.exports = {
|
|
7
|
+
// メニュー部分
|
|
8
|
+
menu: {
|
|
9
|
+
main: {
|
|
10
|
+
title: "メインメニュー",
|
|
11
|
+
launch_default: "Claude Codeを起動",
|
|
12
|
+
launch_skip: "Claude Codeを起動(権限確認をスキップ)",
|
|
13
|
+
launch_api: "サードパーティAPIでClaude Codeを起動",
|
|
14
|
+
launch_api_skip: "サードパーティAPIでClaude Codeを起動(権限確認をスキップ)",
|
|
15
|
+
api_management: "サードパーティAPI管理",
|
|
16
|
+
language_settings: "言語設定",
|
|
17
|
+
version_check: "バージョン更新確認",
|
|
18
|
+
exit: "終了"
|
|
19
|
+
},
|
|
20
|
+
api_management: {
|
|
21
|
+
title: "サードパーティAPI管理",
|
|
22
|
+
add_new: "新しいサードパーティAPIを追加",
|
|
23
|
+
remove: "APIを削除",
|
|
24
|
+
switch: "アクティブなAPIを切り替え",
|
|
25
|
+
statistics: "API統計を表示",
|
|
26
|
+
export: "設定をエクスポート",
|
|
27
|
+
import: "設定をインポート",
|
|
28
|
+
change_password: "パスワードを変更",
|
|
29
|
+
back: "メインメニューに戻る"
|
|
30
|
+
},
|
|
31
|
+
language: {
|
|
32
|
+
title: "言語設定",
|
|
33
|
+
current: "現在の言語:{0}",
|
|
34
|
+
select_prompt: "お好みの言語を選択してください:",
|
|
35
|
+
changed_success: "言語が{0}に変更されました",
|
|
36
|
+
restart_note: "一部の変更はアプリケーションの再起動が必要な場合があります",
|
|
37
|
+
back: "メインメニューに戻る"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
// メッセージタイプ
|
|
42
|
+
messages: {
|
|
43
|
+
info: {
|
|
44
|
+
no_apis: "サードパーティAPIが設定されていません",
|
|
45
|
+
add_api_first: "まず「新しいサードパーティAPIを追加」でAPIを追加してください",
|
|
46
|
+
all_apis_removed: "すべてのAPIが削除されました",
|
|
47
|
+
apis_removed_or_none: "すべてのAPIが削除されたか、設定されていません。",
|
|
48
|
+
removal_cancelled: "削除がキャンセルされました",
|
|
49
|
+
operation_cancelled: "操作がキャンセルされました",
|
|
50
|
+
password_setup_skipped: "パスワード設定をスキップしました。インポート/エクスポート機能は永続的に無効化されます",
|
|
51
|
+
first_time_usage: "これはClaude Launcherの初回使用です",
|
|
52
|
+
export_disabled: "インポート/エクスポート機能は無効化されています",
|
|
53
|
+
no_apis_info_title: "サードパーティAPIが設定されていません",
|
|
54
|
+
press_return_menu: "任意のキーを押してメインメニューに戻る..."
|
|
55
|
+
},
|
|
56
|
+
success: {
|
|
57
|
+
api_added: "API追加に成功しました!",
|
|
58
|
+
api_removed: "API削除に成功しました!",
|
|
59
|
+
api_switched: "API切り替えに成功しました!",
|
|
60
|
+
password_set: "パスワード設定に成功しました!(強度:{0})",
|
|
61
|
+
password_changed: "パスワード変更に成功しました!",
|
|
62
|
+
config_exported: "設定のエクスポートに成功しました!",
|
|
63
|
+
config_imported: "設定のインポートに成功しました!({0}個インポート、{1}個スキップ)",
|
|
64
|
+
language_changed: "言語変更に成功しました!"
|
|
65
|
+
},
|
|
66
|
+
prompts: {
|
|
67
|
+
press_any_key: "任意のキーを押して続行...",
|
|
68
|
+
press_any_key_menu: "任意のキーを押してメインメニューに戻る...",
|
|
69
|
+
press_any_key_remove: "任意のキーを押して削除するAPIの選択を続行...",
|
|
70
|
+
confirm_deletion: "このAPIを削除してもよろしいですか?",
|
|
71
|
+
confirm_password_skip: "パスワード設定を永続的にスキップしてもよろしいですか?",
|
|
72
|
+
enter_password: "身元確認のためパスワードを入力:",
|
|
73
|
+
enter_current_password: "現在のパスワードを入力:",
|
|
74
|
+
enter_new_password: "新しいパスワード:",
|
|
75
|
+
confirm_new_password: "パスワードを確認:",
|
|
76
|
+
enter_api_name: "API名を入力(オプション):",
|
|
77
|
+
enter_base_url: "ベースURLを入力:",
|
|
78
|
+
enter_auth_token: "認証トークンを入力:",
|
|
79
|
+
enter_model_name: "モデル名を入力:",
|
|
80
|
+
select_provider: "プロバイダーを選択:",
|
|
81
|
+
enter_import_file: "インポートファイルのパスを入力:",
|
|
82
|
+
ctrl_c_again: "Ctrl+Cをもう一度押してプログラムを終了"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
// エラーメッセージ
|
|
87
|
+
errors: {
|
|
88
|
+
api: {
|
|
89
|
+
invalid_url: "無効なベースURL:{0}",
|
|
90
|
+
invalid_token: "無効な認証トークン:{0}",
|
|
91
|
+
invalid_model: "無効なモデル:{0}",
|
|
92
|
+
invalid_name: "無効なAPI名:{0}",
|
|
93
|
+
duplicate_config: "API {1} は既に存在します{0}",
|
|
94
|
+
failed_encrypt: "認証トークンの暗号化に失敗:{0}",
|
|
95
|
+
failed_add: "API追加に失敗:{0}",
|
|
96
|
+
failed_remove: "API削除に失敗:{0}",
|
|
97
|
+
failed_switch: "API切り替えに失敗:{0}",
|
|
98
|
+
invalid_index: "無効なAPIインデックス"
|
|
99
|
+
},
|
|
100
|
+
password: {
|
|
101
|
+
empty: "パスワードを空にすることはできません",
|
|
102
|
+
too_short: "パスワードは6文字以上である必要があります",
|
|
103
|
+
verification_failed: "パスワード確認に失敗",
|
|
104
|
+
verification_error: "パスワード確認エラー:{0}",
|
|
105
|
+
verification_cancelled: "ユーザーによってパスワード確認がキャンセルされました",
|
|
106
|
+
setup_cancelled: "ユーザーによってパスワード設定がキャンセルされました",
|
|
107
|
+
current_incorrect: "現在のパスワードが正しくありません",
|
|
108
|
+
strength_insufficient: "パスワード強度は{0}です - 最低限の強度「良好」以上が必要です",
|
|
109
|
+
setup_failed: "パスワード設定に失敗:{0}",
|
|
110
|
+
change_failed: "パスワード変更に失敗:{0}",
|
|
111
|
+
mismatch: "パスワードが一致しません。再試行してください",
|
|
112
|
+
requirements_not_met: "パスワードがセキュリティ要件を満たしていません:",
|
|
113
|
+
max_attempts: "最大試行回数に達しました。パスワード設定に失敗しました。",
|
|
114
|
+
confirm_skip_title: "パスワード設定のスキップを確認",
|
|
115
|
+
setup_skipped: "パスワード設定をスキップしました。インポート/エクスポート機能は永続的に無効化されます",
|
|
116
|
+
verification_required: "身元確認のためパスワード確認が必要です",
|
|
117
|
+
change_password_title: "パスワード変更",
|
|
118
|
+
non_ascii: "パスワードはASCII文字のみを含む必要があります",
|
|
119
|
+
contains_spaces: "パスワードにスペースや空白文字を含むことはできません",
|
|
120
|
+
insufficient_types: "パスワードには次の少なくとも2つのタイプを含む必要があります:大文字、小文字、数字、特殊文字",
|
|
121
|
+
weak_pattern: "パスワードに一般的な弱いパターンが含まれています - より安全なパスワードを選択してください",
|
|
122
|
+
suggest_lowercase: "小文字を追加 (a-z)",
|
|
123
|
+
suggest_uppercase: "大文字を追加 (A-Z)",
|
|
124
|
+
suggest_numbers: "数字を追加 (0-9)",
|
|
125
|
+
suggest_special: "特殊文字を追加 (!@#$%^&*()_+-=[]{}など)",
|
|
126
|
+
suggest_longer: "より多くの文字タイプを含む長いパスワードを試してください",
|
|
127
|
+
suggest_more_types: "大文字、数字、または特殊文字を追加することを検討してください",
|
|
128
|
+
current_password_verified: "✓ 現在のパスワードが確認されました"
|
|
129
|
+
},
|
|
130
|
+
file: {
|
|
131
|
+
export_failed: "設定のエクスポートに失敗:{0}",
|
|
132
|
+
import_failed: "設定のインポートに失敗:{0}",
|
|
133
|
+
file_not_found: "ファイルが見つかりません:{0}",
|
|
134
|
+
invalid_format: "無効な設定形式 - {0}",
|
|
135
|
+
read_failed: "ファイル読み取りに失敗:{0}",
|
|
136
|
+
write_failed: "ファイル書き込みに失敗:{0}",
|
|
137
|
+
no_apis_found: "設定ファイルにAPIが見つかりません"
|
|
138
|
+
},
|
|
139
|
+
general: {
|
|
140
|
+
unexpected_error: "予期しないエラー:{0}",
|
|
141
|
+
operation_failed: "操作に失敗:{0}",
|
|
142
|
+
invalid_input: "無効な入力:{0}",
|
|
143
|
+
cancelled_by_user: "ユーザーによって操作がキャンセルされました"
|
|
144
|
+
},
|
|
145
|
+
validation: {
|
|
146
|
+
base_url_empty: "ベースURLが空または欠落",
|
|
147
|
+
invalid_url_format: "無効なURL形式",
|
|
148
|
+
auth_token_empty: "認証トークンが空または欠落",
|
|
149
|
+
auth_token_too_short: "認証トークンが短すぎます(最低10文字)",
|
|
150
|
+
model_name_empty: "モデル名が空または欠落",
|
|
151
|
+
model_name_invalid: "モデル名が無効または短すぎるようです"
|
|
152
|
+
},
|
|
153
|
+
launcher: {
|
|
154
|
+
error_running_claude: "Claude実行中にエラー:{0}",
|
|
155
|
+
error_launching_claude: "Claude Code起動中にエラー:{0}"
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
|
|
159
|
+
// ステータスメッセージ
|
|
160
|
+
status: {
|
|
161
|
+
loading: "読み込み中...",
|
|
162
|
+
processing: "処理中...",
|
|
163
|
+
validating: "検証中...",
|
|
164
|
+
encrypting: "暗号化中...",
|
|
165
|
+
decrypting: "復号化中...",
|
|
166
|
+
saving: "設定を保存中...",
|
|
167
|
+
exporting: "設定をエクスポート中...",
|
|
168
|
+
importing: "設定をインポート中...",
|
|
169
|
+
switching_language: "言語を切り替え中...",
|
|
170
|
+
initializing: "初期化中..."
|
|
171
|
+
},
|
|
172
|
+
|
|
173
|
+
// API詳細とラベル
|
|
174
|
+
api: {
|
|
175
|
+
details: {
|
|
176
|
+
provider: "プロバイダー",
|
|
177
|
+
url: "URL",
|
|
178
|
+
model: "モデル",
|
|
179
|
+
token: "トークン",
|
|
180
|
+
usage: "使用回数",
|
|
181
|
+
last_used: "最終使用",
|
|
182
|
+
created_at: "作成日時",
|
|
183
|
+
never_used: "未使用",
|
|
184
|
+
times_suffix: "回",
|
|
185
|
+
currently_active: "現在アクティブなAPI",
|
|
186
|
+
no_active_api: "アクティブなAPIなし"
|
|
187
|
+
},
|
|
188
|
+
actions: {
|
|
189
|
+
select_to_switch: "切り替えるAPIを選択:",
|
|
190
|
+
select_to_remove: "削除するAPIを選択:",
|
|
191
|
+
switch_success: "アクティブなAPI:{0}",
|
|
192
|
+
remove_confirm: "削除するAPI:{0}",
|
|
193
|
+
cannot_undo: "この操作は元に戻せません!",
|
|
194
|
+
removed_info: "削除されました:{0}"
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
|
|
198
|
+
// パスワード設定と管理
|
|
199
|
+
password: {
|
|
200
|
+
setup: {
|
|
201
|
+
title: "インポート/エクスポートパスワードを設定:",
|
|
202
|
+
change_title: "パスワードを変更:",
|
|
203
|
+
warning: "パスワードを変更すると、既存のエクスポートファイルにアクセスできなくなります",
|
|
204
|
+
requirements_title: "パスワード要件:",
|
|
205
|
+
example: "強力なパスワードの例:{0}",
|
|
206
|
+
attempt_counter: "試行 {0}/{1}",
|
|
207
|
+
first_time_title: "初回インポート/エクスポート設定",
|
|
208
|
+
why_needed: "パスワードが必要な理由:",
|
|
209
|
+
why_needed_items: [
|
|
210
|
+
"インポート/エクスポート機能にはユーザー身元確認のためパスワード確認が必要です",
|
|
211
|
+
"エクスポートされた設定はクロスマシン互換性のためプレーンテキスト形式です",
|
|
212
|
+
"ローカル設定は暗号化されたままで、パスワードによりあなたのみがアクセス可能です"
|
|
213
|
+
],
|
|
214
|
+
new_security_title: "新しい強化セキュリティ要件:",
|
|
215
|
+
security_items: [
|
|
216
|
+
"パスワードは6文字以上である必要があります",
|
|
217
|
+
"少なくとも2つのタイプを含む必要があります:大文字、小文字、数字、特殊文字",
|
|
218
|
+
"ASCII文字のみ、スペース不可",
|
|
219
|
+
"弱いパスワードパターンに対する高度な保護"
|
|
220
|
+
],
|
|
221
|
+
options_title: "オプション:",
|
|
222
|
+
option_set: "パスワード設定:身元確認付きインポート/エクスポート機能を有効化",
|
|
223
|
+
option_skip: "設定をスキップ:インポート/エクスポート機能を永続的に無効化(元に戻せません)",
|
|
224
|
+
warning_skip: "警告:設定をスキップするとインポート/エクスポート機能が永続的に無効化されます!",
|
|
225
|
+
menu_set_password: "パスワードを設定(推奨)",
|
|
226
|
+
menu_skip_setup: "設定をスキップ(インポート/エクスポートを永続的に無効化)",
|
|
227
|
+
menu_back: "その他のキー:メインメニューに戻る",
|
|
228
|
+
setup_instructions: [
|
|
229
|
+
"パスワードは6文字以上である必要があります",
|
|
230
|
+
"少なくとも2つのタイプを含む必要があります:大文字、小文字、数字、特殊文字",
|
|
231
|
+
"ASCII文字のみ、スペース不可",
|
|
232
|
+
"弱いパスワードパターンに対する高度な保護"
|
|
233
|
+
],
|
|
234
|
+
password_requirements_text: "パスワード要件:",
|
|
235
|
+
example_password: "強力なパスワードの例:{0}",
|
|
236
|
+
new_password_attempt: "新しいパスワード(試行 {0}/{1}):",
|
|
237
|
+
confirm_password_prompt: "パスワードを確認:",
|
|
238
|
+
passwords_mismatch: "パスワードが一致しません。再試行してください",
|
|
239
|
+
password_success: "パスワード設定に成功しました!(強度:{0})",
|
|
240
|
+
press_continue: "任意のキーを押して続行...",
|
|
241
|
+
enter_current_password: "現在のパスワードを入力:"
|
|
242
|
+
},
|
|
243
|
+
requirements: [
|
|
244
|
+
"6文字以上の長さ",
|
|
245
|
+
"以下の文字タイプのうち少なくとも2つ:",
|
|
246
|
+
" • 大文字 (A-Z)",
|
|
247
|
+
" • 小文字 (a-z)",
|
|
248
|
+
" • 数字 (0-9)",
|
|
249
|
+
" • 特殊文字 (!@#$%^&*()_+-=[]{}など)",
|
|
250
|
+
"ASCII文字のみ(スペースや特殊文字なし)",
|
|
251
|
+
"一般的な弱いパターンを含むことはできません",
|
|
252
|
+
"最低パスワード強度:良好(弱いおよび非常に弱いパスワードは拒否されます)"
|
|
253
|
+
],
|
|
254
|
+
suggestions: [
|
|
255
|
+
"小文字を追加 (a-z)",
|
|
256
|
+
"大文字を追加 (A-Z)",
|
|
257
|
+
"数字を追加 (0-9)",
|
|
258
|
+
"特殊文字を追加 (!@#$%^&*()_+-=[]{}など)",
|
|
259
|
+
"より多くの文字タイプを含む長いパスワードを試してください",
|
|
260
|
+
"大文字、数字、または特殊文字を追加することを検討してください"
|
|
261
|
+
],
|
|
262
|
+
strength: {
|
|
263
|
+
very_weak: "非常に弱い",
|
|
264
|
+
weak: "弱い",
|
|
265
|
+
good: "良好",
|
|
266
|
+
strong: "強い",
|
|
267
|
+
very_strong: "非常に強い"
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
|
|
271
|
+
// インポート/エクスポート機能
|
|
272
|
+
import_export: {
|
|
273
|
+
export: {
|
|
274
|
+
title: "設定をエクスポート",
|
|
275
|
+
description_title: "エクスポート機能の説明:",
|
|
276
|
+
description_items: [
|
|
277
|
+
"身元確認のためパスワード確認が必要です",
|
|
278
|
+
"ホームディレクトリにJSONファイルが保存されます",
|
|
279
|
+
"ファイルには簡単な移行のためプレーンテキストAPI設定が含まれます",
|
|
280
|
+
"エクスポート後にファイルが自動的に開かれます"
|
|
281
|
+
],
|
|
282
|
+
success: "設定がエクスポートされました:{0}",
|
|
283
|
+
success_title: "設定のエクスポートに成功しました!",
|
|
284
|
+
details_title: "エクスポート詳細:",
|
|
285
|
+
details_file_saved: "ファイル保存先:{0}",
|
|
286
|
+
details_export_dir: "エクスポートディレクトリ:{0}",
|
|
287
|
+
details_filename: "ファイル名:{0}",
|
|
288
|
+
opening_file: "デフォルトアプリケーションでエクスポートファイルを開いています...",
|
|
289
|
+
tips_title: "ヒント:",
|
|
290
|
+
tips_items: [
|
|
291
|
+
"このファイルを共有して設定を他のマシンに移行できます",
|
|
292
|
+
"API設定が含まれているため、ファイルを安全に保管してください"
|
|
293
|
+
],
|
|
294
|
+
password_required: "エクスポートにはパスワード確認が必要です",
|
|
295
|
+
enter_password_prompt: "身元確認のためパスワードを入力:",
|
|
296
|
+
verification_failed: "パスワード確認に失敗",
|
|
297
|
+
cannot_proceed: "エクスポートを続行できません",
|
|
298
|
+
press_return: "任意のキーを押して戻る..."
|
|
299
|
+
},
|
|
300
|
+
import: {
|
|
301
|
+
title: "設定をインポート",
|
|
302
|
+
success: "インポート完了:{0}個のAPIをインポート、{1}個をスキップ",
|
|
303
|
+
password_required: "インポートにはパスワード確認が必要です",
|
|
304
|
+
file_prompt: "設定ファイルの完全パスを入力:",
|
|
305
|
+
processing: "インポートファイルを処理中...",
|
|
306
|
+
validating_file: "設定ファイルを検証中...",
|
|
307
|
+
verification_failed: "パスワード確認に失敗",
|
|
308
|
+
cannot_proceed: "インポートを続行できません",
|
|
309
|
+
press_return: "任意のキーを押して戻る..."
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
|
|
313
|
+
// ナビゲーションとUI
|
|
314
|
+
navigation: {
|
|
315
|
+
use_arrows: "↑↓矢印キーでナビゲート、Enterで選択、Ctrl+Cを2回押して終了",
|
|
316
|
+
use_arrows_esc: "↑↓でナビゲート、Enterで{0}、ESCでメインメニューに戻る",
|
|
317
|
+
use_number_keys: "数字キーで選択:",
|
|
318
|
+
currently_active: "現在アクティブなAPI",
|
|
319
|
+
select_action: "アクションを選択:",
|
|
320
|
+
no_options: "利用可能なオプションがありません",
|
|
321
|
+
enter_choice: "選択を入力({0}、またはその他のキーでメインメニューに戻る):",
|
|
322
|
+
arrow_keys_not_available: "矢印キーが利用できません。選択番号を入力 (1-{0}):",
|
|
323
|
+
enter_choice_prompt: "[>] 選択を入力 (1-2、またはその他のキーでメインメニューに戻る):"
|
|
324
|
+
},
|
|
325
|
+
|
|
326
|
+
// 起動プロセス
|
|
327
|
+
launch: {
|
|
328
|
+
starting: "Claude Codeを起動中...",
|
|
329
|
+
command: "コマンド:{0}",
|
|
330
|
+
run_in_terminal: "Claudeは現在のターミナルで実行されます。",
|
|
331
|
+
launcher_exit: "ランチャーが終了してClaudeに制御が移ります。",
|
|
332
|
+
no_active_api: "アクティブなサードパーティAPIがありません",
|
|
333
|
+
no_active_api_desc: "現在アクティブなサードパーティAPIがありません。",
|
|
334
|
+
add_configure_first: "まずAPIを追加して設定するか、既存のAPIに切り替えてください。",
|
|
335
|
+
press_key_return: "任意のキーを押してメインメニューに戻る...",
|
|
336
|
+
environment_variables: "環境変数:",
|
|
337
|
+
using_third_party_api: "サードパーティAPI設定を使用",
|
|
338
|
+
provider_optimizations_applied: "プロバイダー最適化が適用されました",
|
|
339
|
+
extended_timeout_format: "拡張タイムアウト:{0}秒({1}分)",
|
|
340
|
+
extended_timeout_format_singular: "拡張タイムアウト:{0}秒({1}分)",
|
|
341
|
+
non_essential_traffic_disabled: "必須でないトラフィックが無効",
|
|
342
|
+
custom_env_var: "{0}={1}",
|
|
343
|
+
// Deprecated - kept for backward compatibility
|
|
344
|
+
deepseek_optimizations: "DeepSeek最適化が有効:",
|
|
345
|
+
extended_timeout: "拡張タイムアウト (600秒)",
|
|
346
|
+
non_essential_disabled: "必須でないトラフィックが無効"
|
|
347
|
+
},
|
|
348
|
+
|
|
349
|
+
// プロバイダーノート
|
|
350
|
+
provider: {
|
|
351
|
+
note_prefix: "注意",
|
|
352
|
+
notes: {
|
|
353
|
+
deepseek: "複雑な推論タスクには拡張タイムアウトが必要です",
|
|
354
|
+
zhipu: "大規模な応答には拡張タイムアウトが必要です",
|
|
355
|
+
zai: "大規模な応答には拡張タイムアウトが必要です"
|
|
356
|
+
}
|
|
357
|
+
},
|
|
358
|
+
|
|
359
|
+
// 追加UIメッセージ
|
|
360
|
+
ui: {
|
|
361
|
+
general: {
|
|
362
|
+
after_skipping_password_setup: "パスワード設定をスキップした後:",
|
|
363
|
+
file_path_empty: "ファイルパスを空にすることはできません",
|
|
364
|
+
max_attempts_import_cancelled: "最大試行回数に達しました。インポートがキャンセルされました。",
|
|
365
|
+
max_attempts_import_failed: "最大試行回数に達しました。インポートに失敗しました。",
|
|
366
|
+
check_file_path_json: "💡 ファイルパスを確認し、有効なJSONファイルであることを確認してください",
|
|
367
|
+
launcher_version: "Claude Launcher v2.0.0",
|
|
368
|
+
press_key_return_menu: "任意のキーを押してメニューに戻る...",
|
|
369
|
+
add_apis_first: "まずいくつかのAPIを追加する必要があります。",
|
|
370
|
+
press_any_key_continue: "任意のキーを押して続行...",
|
|
371
|
+
currently_active_api: "現在アクティブなAPI:",
|
|
372
|
+
confirm_delete_api: "このAPI設定を削除してもよろしいですか?",
|
|
373
|
+
action_cannot_undone: "この操作は元に戻せません!",
|
|
374
|
+
type_exit_cancel: "任意のプロンプトで\"exit\"と入力してキャンセル",
|
|
375
|
+
type_exit_cancel_setup: "\"exit\"と入力して設定をキャンセル",
|
|
376
|
+
press_y_confirm: "Yを押して確認、その他のキーでキャンセル...",
|
|
377
|
+
max_attempts_password_failed: "最大試行回数に達しました。パスワード設定に失敗しました。",
|
|
378
|
+
passwords_mismatch: "パスワードが一致しません。再試行してください",
|
|
379
|
+
password_skip_consequences: [
|
|
380
|
+
"インポート/エクスポート機能が永続的に無効化されます",
|
|
381
|
+
"API設定のバックアップや移行ができません",
|
|
382
|
+
"この決定は元に戻せません"
|
|
383
|
+
],
|
|
384
|
+
import_function_description: "インポート機能の説明:",
|
|
385
|
+
import_description_items: [
|
|
386
|
+
"指定されたファイルパスからJSONファイルを読み取ります",
|
|
387
|
+
"インポートデータは現在の設定とマージされます(上書きしません)",
|
|
388
|
+
"重複するAPI設定は自動的にスキップされます"
|
|
389
|
+
],
|
|
390
|
+
file_input_required: "ファイル入力が必要:",
|
|
391
|
+
file_input_items: [
|
|
392
|
+
"JSON設定ファイルの完全パスを提供してください",
|
|
393
|
+
"ファイルは.json拡張子の有効なJSONファイルである必要があります",
|
|
394
|
+
"インポート前にファイルが検証されます"
|
|
395
|
+
],
|
|
396
|
+
validating_file: "🔍 ファイルを検証中...",
|
|
397
|
+
file_validation_successful: "✓ ファイル検証成功",
|
|
398
|
+
import_successful: "✓ 設定のインポートに成功しました!",
|
|
399
|
+
import_statistics: "📊 インポート統計:",
|
|
400
|
+
import_stats_items: [
|
|
401
|
+
"正常にインポートされました:{0}個のAPI設定",
|
|
402
|
+
"重複をスキップしました:{1}個のAPI設定",
|
|
403
|
+
"設定が既存データとマージされました",
|
|
404
|
+
"ソースファイル:{0}"
|
|
405
|
+
],
|
|
406
|
+
import_tips: [
|
|
407
|
+
"💡 ファイルの内容と形式を確認してください"
|
|
408
|
+
],
|
|
409
|
+
goodbye: "👋 さようなら!",
|
|
410
|
+
configured_apis: "設定済みAPI:",
|
|
411
|
+
press_continue_provider_selection: "任意のキーを押してプロバイダー選択に進む...",
|
|
412
|
+
|
|
413
|
+
// API設定セクション
|
|
414
|
+
add_new_api_title: "🔗 新しいサードパーティAPI設定を追加",
|
|
415
|
+
security_privacy_info: "🔒 セキュリティとプライバシー情報:",
|
|
416
|
+
security_items: [
|
|
417
|
+
"すべてのAPIキーはAES-256-CBC暗号化を使用して暗号化されます",
|
|
418
|
+
"暗号化キーはマシン固有のデータから派生されます",
|
|
419
|
+
"APIキーはこのマシンにのみローカルに保存されます",
|
|
420
|
+
"キーは他のマシンで復号化できません",
|
|
421
|
+
"APIコール以外の外部サーバーへのデータ送信はありません"
|
|
422
|
+
],
|
|
423
|
+
configuration_tips: "💡 設定のヒント:",
|
|
424
|
+
config_tip_items: [
|
|
425
|
+
"ベースURL:APIエンドポイント(例:https://api.example.com)",
|
|
426
|
+
"認証トークン:APIキーまたは認証トークン",
|
|
427
|
+
"モデル:使用するAIモデル(例:claude-3-sonnet-20240229)"
|
|
428
|
+
],
|
|
429
|
+
all_providers_compatible: "💡 リストされたすべてのプロバイダーはAnthropic互換APIフォーマットを使用します",
|
|
430
|
+
using_custom_provider: "✓ カスタムプロバイダー設定を使用",
|
|
431
|
+
suggestions: "提案:",
|
|
432
|
+
current_password_strength: "現在のパスワード強度:{0}",
|
|
433
|
+
enter_json_file_path_attempt: "[>] JSONファイルパスを入力(試行{0}/{1}):",
|
|
434
|
+
currently_active_api: "現在アクティブなAPI",
|
|
435
|
+
file_validation_failed: "ファイル検証に失敗:{0}",
|
|
436
|
+
model_name_prompt: "[>] モデル名:",
|
|
437
|
+
provider_selection_required: "プロバイダーを選択してください(1-{0})",
|
|
438
|
+
|
|
439
|
+
// プロバイダー選択
|
|
440
|
+
compatible_providers_title: "📋 Claude Code互換APIプロバイダー:",
|
|
441
|
+
provider_anthropic: "🎯 Anthropic(公式)",
|
|
442
|
+
provider_anthropic_desc: "公式Anthropic API - 完全に互換",
|
|
443
|
+
provider_moonshot: "✅ Moonshot AI(Kimi-K2)",
|
|
444
|
+
provider_moonshot_desc: "Moonshot AI - Anthropic互換APIを提供",
|
|
445
|
+
provider_deepseek: "✅ DeepSeek(DeepSeek V3/V3.1)",
|
|
446
|
+
provider_deepseek_desc: "DeepSeek AI - Anthropic互換エンドポイント",
|
|
447
|
+
provider_custom: "✅ カスタムAnthropic互換API",
|
|
448
|
+
provider_custom_desc: "Anthropic互換APIを持つカスタムサーバー",
|
|
449
|
+
select_provider_prompt: "[>] プロバイダーを選択(1-{0})またはESCキーでキャンセル:",
|
|
450
|
+
|
|
451
|
+
// プロバイダー設定
|
|
452
|
+
selected_provider: "✓ 選択されました:{0}",
|
|
453
|
+
recommended_base_url: "推奨ベースURL:{0}",
|
|
454
|
+
reference_base_url: "参考ベースURL:{0}",
|
|
455
|
+
api_base_url_prompt: "[>] APIベースURL:",
|
|
456
|
+
base_url_required: "カスタムプロバイダーにはベースURLの入力が必要です",
|
|
457
|
+
press_enter_default_url: "[>] Enterを押してデフォルトを使用するか、カスタムURLを入力:",
|
|
458
|
+
expected_format: "期待される形式:{0}",
|
|
459
|
+
auth_token_prompt: "[>] 認証トークン:",
|
|
460
|
+
edit_url_hint: "(入力することで上記のURLを編集できます)",
|
|
461
|
+
|
|
462
|
+
// モデル選択
|
|
463
|
+
suggested_models: "推奨モデル:",
|
|
464
|
+
select_model_prompt: "[>] モデルを選択(1-{0})またはカスタムを入力:",
|
|
465
|
+
invalid_model_selection: "❌ 無効な選択。1-{0}の数字またはカスタムモデル名を入力してください",
|
|
466
|
+
invalid_provider_selection: "❌ 無効な選択。1-{0}の数字を入力するか、Enterを押してカスタムを選択してください",
|
|
467
|
+
invalid_provider_number: "❌ 無効な選択。1-{0}の数字を入力してください",
|
|
468
|
+
api_name_prompt: "[>] API名(オプション、識別用):",
|
|
469
|
+
replace_url_model_note: "注意:URLとモデルを実際のサーバー詳細に置き換えてください",
|
|
470
|
+
|
|
471
|
+
// API管理
|
|
472
|
+
select_api_remove: "[!] 削除するAPIを選択:",
|
|
473
|
+
navigate_remove_instructions: "↑↓でナビゲート、Enterで削除、ESCでメインメニューに戻る",
|
|
474
|
+
confirm_deletion_prompt: "[?] 削除を確認 (y/N):",
|
|
475
|
+
navigate_activate_instructions: "↑↓でナビゲート、Enterでアクティブ化、ESCでメインメニューに戻る",
|
|
476
|
+
summary: "要約:",
|
|
477
|
+
|
|
478
|
+
// スキップ確認オプション
|
|
479
|
+
confirm_skip_option: "→ スキップを確認します",
|
|
480
|
+
reconsider_option: "再考して、パスワード設定に戻る",
|
|
481
|
+
|
|
482
|
+
// パスワード要件詳細
|
|
483
|
+
password_requirements_title: "🔒 パスワード要件:",
|
|
484
|
+
password_requirements_list: [
|
|
485
|
+
"6文字以上の長さ",
|
|
486
|
+
"以下の文字タイプのうち少なくとも2つ:",
|
|
487
|
+
" • 大文字(A-Z)",
|
|
488
|
+
" • 小文字(a-z)",
|
|
489
|
+
" • 数字(0-9)",
|
|
490
|
+
" • 特殊文字(!@#$%^&*()_+-=[]{}など)",
|
|
491
|
+
"ASCII文字のみ(スペースや特殊文字なし)",
|
|
492
|
+
"一般的な弱いパターンを含むことはできません",
|
|
493
|
+
"最低パスワード強度:良好(弱いおよび非常に弱いパスワードは拒否されます)"
|
|
494
|
+
],
|
|
495
|
+
example_strong_password: "強力なパスワードの例:{0}",
|
|
496
|
+
new_password_attempt: "新しいパスワード(試行 {0}/{1}):"
|
|
497
|
+
}
|
|
498
|
+
},
|
|
499
|
+
|
|
500
|
+
// 統計と情報
|
|
501
|
+
statistics: {
|
|
502
|
+
title: "API統計",
|
|
503
|
+
total_apis: "総API数:{0}",
|
|
504
|
+
active_api: "アクティブなAPI:{0}",
|
|
505
|
+
most_used: "最も使用されたAPI:{0}",
|
|
506
|
+
total_usage: "総使用回数:{0}回",
|
|
507
|
+
no_usage: "使用記録がありません"
|
|
508
|
+
},
|
|
509
|
+
|
|
510
|
+
// バージョン更新
|
|
511
|
+
version: {
|
|
512
|
+
update_available: "新しいバージョンが利用可能:v{0}(現在:v{1})",
|
|
513
|
+
install_command: "npm update -g @kikkimo/claude-launcher を実行して更新",
|
|
514
|
+
checking_updates: "更新を確認中...",
|
|
515
|
+
update_failed: "更新確認に失敗",
|
|
516
|
+
up_to_date: "最新バージョンです",
|
|
517
|
+
skip_version: "このバージョンをスキップ",
|
|
518
|
+
current_version_info: "現在:v{0} | npm最新:v{1}",
|
|
519
|
+
npm_package_url: "npmパッケージ:{0}",
|
|
520
|
+
always_show_mode: "バージョン表示モード:常に表示",
|
|
521
|
+
update_only_mode: "バージョン表示モード:更新時のみ"
|
|
522
|
+
},
|
|
523
|
+
|
|
524
|
+
// バージョン確認機能
|
|
525
|
+
version_check: {
|
|
526
|
+
title: "バージョン更新確認",
|
|
527
|
+
checking: "npmレジストリを確認中...",
|
|
528
|
+
please_wait: "お待ちください",
|
|
529
|
+
error: "確認に失敗:{0}",
|
|
530
|
+
error_tips: "ヒント:ネットワーク接続を確認するか、後で再試行してください",
|
|
531
|
+
update_available: "🎉 新しいバージョンが見つかりました!",
|
|
532
|
+
current_version: "現在のバージョン:v{0}",
|
|
533
|
+
latest_version: "最新バージョン:v{0}",
|
|
534
|
+
update_command: "更新コマンド:npm update -g @kikkimo/claude-launcher",
|
|
535
|
+
up_to_date: "最新バージョンを使用しています",
|
|
536
|
+
unexpected_error: "確認中に予期しないエラーが発生しました"
|
|
537
|
+
}
|
|
538
|
+
};
|