@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,539 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Russian Language Pack
|
|
3
|
+
* Contains all translatable strings for Russian locale
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
module.exports = {
|
|
7
|
+
// Menu sections
|
|
8
|
+
menu: {
|
|
9
|
+
main: {
|
|
10
|
+
title: "Главное меню",
|
|
11
|
+
launch_default: "Запустить Claude Code",
|
|
12
|
+
launch_skip: "Запустить Claude Code (Автопропуск разрешений)",
|
|
13
|
+
launch_api: "Запустить Claude Code со сторонним API",
|
|
14
|
+
launch_api_skip: "Запустить Claude Code со сторонним API (Автопропуск разрешений)",
|
|
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
|
+
// Message types
|
|
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
|
+
// Error messages
|
|
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: "{0} уже существует для API: {1}",
|
|
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
|
+
// Status messages
|
|
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 details and labels
|
|
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
|
+
// Password setup and management
|
|
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
|
+
// Import/Export functionality
|
|
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
|
+
// Navigation and UI
|
|
314
|
+
navigation: {
|
|
315
|
+
use_arrows: "Используйте клавиши ↑↓ для навигации, Enter для выбора, двойное нажатие Ctrl+C для выхода",
|
|
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
|
+
// Launch process
|
|
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, или переключитесь на существующий.",
|
|
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: "Расширенный тайм-аут (600s)",
|
|
346
|
+
non_essential_disabled: "Несущественный трафик отключен"
|
|
347
|
+
},
|
|
348
|
+
|
|
349
|
+
// Заметки провайдера
|
|
350
|
+
provider: {
|
|
351
|
+
note_prefix: "Примечание",
|
|
352
|
+
notes: {
|
|
353
|
+
deepseek: "Требуется расширенный тайм-аут для сложных задач рассуждения",
|
|
354
|
+
zhipu: "Требуется расширенный тайм-аут для больших ответов",
|
|
355
|
+
zai: "Требуется расширенный тайм-аут для больших ответов"
|
|
356
|
+
}
|
|
357
|
+
},
|
|
358
|
+
|
|
359
|
+
// Additional UI messages
|
|
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 Configuration sections
|
|
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: "💡 Все перечисленные провайдеры используют API формат, совместимый с Anthropic",
|
|
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
|
+
// Provider selection
|
|
440
|
+
compatible_providers_title: "📋 Провайдеры API, совместимые с Claude Code:",
|
|
441
|
+
provider_anthropic: "🎯 Anthropic (официальный)",
|
|
442
|
+
provider_anthropic_desc: "Официальный API Anthropic - полностью совместим",
|
|
443
|
+
provider_moonshot: "✅ Moonshot AI (Kimi-K2)",
|
|
444
|
+
provider_moonshot_desc: "Moonshot AI - предоставляет API, совместимый с Anthropic",
|
|
445
|
+
provider_deepseek: "✅ DeepSeek (DeepSeek V3/V3.1)",
|
|
446
|
+
provider_deepseek_desc: "DeepSeek AI - конечная точка, совместимая с Anthropic",
|
|
447
|
+
provider_custom: "✅ Пользовательский API, совместимый с Anthropic",
|
|
448
|
+
provider_custom_desc: "Пользовательский сервер с API, совместимым с Anthropic",
|
|
449
|
+
select_provider_prompt: "[>] Выберите провайдера (1-{0}) или нажмите ESC для отмены: ",
|
|
450
|
+
|
|
451
|
+
// Provider configuration
|
|
452
|
+
selected_provider: "✓ Выбран: {0}",
|
|
453
|
+
recommended_base_url: "Рекомендуемый базовый URL: {0}",
|
|
454
|
+
reference_base_url: "Справочный базовый URL: {0}",
|
|
455
|
+
api_base_url_prompt: "[>] Базовый URL API: ",
|
|
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
|
+
// Model selection
|
|
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 management
|
|
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
|
+
// Skip confirmation options
|
|
479
|
+
confirm_skip_option: "→ Я подтверждаю пропуск",
|
|
480
|
+
reconsider_option: "Пересмотреть, вернуться к настройке пароля",
|
|
481
|
+
|
|
482
|
+
// Password requirements details
|
|
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
|
+
confirm_password_prompt: "Подтвердите пароль: "
|
|
498
|
+
}
|
|
499
|
+
},
|
|
500
|
+
|
|
501
|
+
// Statistics and information
|
|
502
|
+
statistics: {
|
|
503
|
+
title: "Статистика API",
|
|
504
|
+
total_apis: "Всего API: {0}",
|
|
505
|
+
active_api: "Активный API: {0}",
|
|
506
|
+
most_used: "Наиболее используемый API: {0}",
|
|
507
|
+
total_usage: "Общее использование: {0} раз",
|
|
508
|
+
no_usage: "Использование не зафиксировано"
|
|
509
|
+
},
|
|
510
|
+
|
|
511
|
+
// Version updates
|
|
512
|
+
version: {
|
|
513
|
+
update_available: "Доступна новая версия: v{0} (текущая: v{1})",
|
|
514
|
+
install_command: "Выполните npm update -g @kikkimo/claude-launcher для обновления",
|
|
515
|
+
checking_updates: "Проверка обновлений...",
|
|
516
|
+
update_failed: "Не удалось проверить обновления",
|
|
517
|
+
up_to_date: "Уже обновлено",
|
|
518
|
+
skip_version: "Пропустить эту версию",
|
|
519
|
+
current_version_info: "Текущая: v{0} | npm последняя: v{1}",
|
|
520
|
+
npm_package_url: "npm пакет: {0}",
|
|
521
|
+
always_show_mode: "Режим отображения версии: Всегда показывать",
|
|
522
|
+
update_only_mode: "Режим отображения версии: Только обновления"
|
|
523
|
+
},
|
|
524
|
+
|
|
525
|
+
// Version check feature
|
|
526
|
+
version_check: {
|
|
527
|
+
title: "Проверка обновлений версии",
|
|
528
|
+
checking: "Проверка npm реестра...",
|
|
529
|
+
please_wait: "Пожалуйста, подождите",
|
|
530
|
+
error: "Проверка не удалась: {0}",
|
|
531
|
+
error_tips: "Советы: Проверьте сетевое соединение или попробуйте позже",
|
|
532
|
+
update_available: "🎉 Найдена новая версия!",
|
|
533
|
+
current_version: "Текущая версия: v{0}",
|
|
534
|
+
latest_version: "Последняя версия: v{0}",
|
|
535
|
+
update_command: "Команда обновления: npm update -g @kikkimo/claude-launcher",
|
|
536
|
+
up_to_date: "Вы используете последнюю версию",
|
|
537
|
+
unexpected_error: "Произошла неожиданная ошибка во время проверки"
|
|
538
|
+
}
|
|
539
|
+
};
|