@kikkimo/claude-launcher 1.0.0 → 2.0.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 +55 -0
- package/README.md +100 -41
- package/claude-launcher +1017 -576
- package/docs/README-zh.md +104 -45
- package/lib/api-manager.js +449 -0
- package/lib/auth/password-input.js +144 -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 +523 -0
- package/lib/i18n/locales/en.js +524 -0
- package/lib/i18n/locales/es.js +523 -0
- package/lib/i18n/locales/fr.js +523 -0
- package/lib/i18n/locales/it.js +523 -0
- package/lib/i18n/locales/ja.js +523 -0
- package/lib/i18n/locales/ko.js +523 -0
- package/lib/i18n/locales/pt.js +523 -0
- package/lib/i18n/locales/ru.js +523 -0
- package/lib/i18n/locales/zh-TW.js +523 -0
- package/lib/i18n/locales/zh.js +523 -0
- package/lib/launcher.js +253 -0
- package/lib/presets/providers.js +104 -0
- package/lib/ui/colors.js +32 -0
- package/lib/ui/interactive-table.js +260 -0
- package/lib/ui/menu.js +314 -0
- package/lib/ui/prompts.js +540 -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,523 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portuguese Language Pack
|
|
3
|
+
* Contains all translatable strings for Portuguese locale
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
module.exports = {
|
|
7
|
+
// Menu sections
|
|
8
|
+
menu: {
|
|
9
|
+
main: {
|
|
10
|
+
title: "Menu Principal",
|
|
11
|
+
launch_default: "Executar Claude Code",
|
|
12
|
+
launch_skip: "Executar Claude Code (Pular Permissões Automaticamente)",
|
|
13
|
+
launch_api: "Executar Claude Code com API de Terceiros",
|
|
14
|
+
launch_api_skip: "Executar Claude Code com API de Terceiros (Pular Permissões Automaticamente)",
|
|
15
|
+
api_management: "Gerenciamento de API de Terceiros",
|
|
16
|
+
language_settings: "Configurações de Idioma",
|
|
17
|
+
version_check: "Verificação de Atualização de Versão",
|
|
18
|
+
exit: "Sair"
|
|
19
|
+
},
|
|
20
|
+
api_management: {
|
|
21
|
+
title: "Gerenciamento de API de Terceiros",
|
|
22
|
+
add_new: "Adicionar Nova API de Terceiros",
|
|
23
|
+
remove: "Remover API",
|
|
24
|
+
switch: "Trocar API Ativa",
|
|
25
|
+
statistics: "Ver Estatísticas da API",
|
|
26
|
+
export: "Exportar Configuração",
|
|
27
|
+
import: "Importar Configuração",
|
|
28
|
+
change_password: "Alterar Senha",
|
|
29
|
+
back: "Voltar ao Menu Principal"
|
|
30
|
+
},
|
|
31
|
+
language: {
|
|
32
|
+
title: "Configurações de Idioma",
|
|
33
|
+
current: "Idioma Atual: {0}",
|
|
34
|
+
select_prompt: "Selecione seu idioma preferido:",
|
|
35
|
+
changed_success: "Idioma alterado para {0}",
|
|
36
|
+
restart_note: "Algumas alterações podem exigir reinicialização da aplicação",
|
|
37
|
+
back: "Voltar ao Menu Principal"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
// Message types
|
|
42
|
+
messages: {
|
|
43
|
+
info: {
|
|
44
|
+
no_apis: "Nenhuma API de terceiros configurada",
|
|
45
|
+
add_api_first: "Adicione primeiro uma API usando \"Adicionar Nova API de Terceiros\"",
|
|
46
|
+
all_apis_removed: "Todas as APIs foram removidas",
|
|
47
|
+
apis_removed_or_none: "Todas as APIs foram removidas ou nenhuma estava configurada.",
|
|
48
|
+
removal_cancelled: "Remoção cancelada",
|
|
49
|
+
operation_cancelled: "Operação cancelada",
|
|
50
|
+
password_setup_skipped: "Configuração de senha pulada, funcionalidade de importar/exportar desabilitada permanentemente",
|
|
51
|
+
first_time_usage: "Este é seu primeiro uso do Claude Launcher",
|
|
52
|
+
export_disabled: "Funcionalidade de importar/exportar desabilitada",
|
|
53
|
+
no_apis_info_title: "Nenhuma API de terceiros configurada",
|
|
54
|
+
press_return_menu: "Pressione qualquer tecla para voltar ao menu principal..."
|
|
55
|
+
},
|
|
56
|
+
success: {
|
|
57
|
+
api_added: "API adicionada com sucesso!",
|
|
58
|
+
api_removed: "API removida com sucesso!",
|
|
59
|
+
api_switched: "API trocada com sucesso!",
|
|
60
|
+
password_set: "Senha definida com sucesso! (Força: {0})",
|
|
61
|
+
password_changed: "Senha alterada com sucesso!",
|
|
62
|
+
config_exported: "Configuração exportada com sucesso!",
|
|
63
|
+
config_imported: "Configuração importada com sucesso! ({0} importadas, {1} puladas)",
|
|
64
|
+
language_changed: "Idioma alterado com sucesso!"
|
|
65
|
+
},
|
|
66
|
+
prompts: {
|
|
67
|
+
press_any_key: "Pressione qualquer tecla para continuar...",
|
|
68
|
+
press_any_key_menu: "Pressione qualquer tecla para voltar ao menu principal...",
|
|
69
|
+
press_any_key_remove: "Pressione qualquer tecla para continuar selecionando APIs para remover...",
|
|
70
|
+
confirm_deletion: "Tem certeza de que deseja remover esta API?",
|
|
71
|
+
confirm_password_skip: "Tem certeza de que deseja pular permanentemente a configuração de senha?",
|
|
72
|
+
enter_password: "Digite a senha para verificar identidade: ",
|
|
73
|
+
enter_current_password: "Digite a senha atual: ",
|
|
74
|
+
enter_new_password: "Nova Senha: ",
|
|
75
|
+
confirm_new_password: "Confirmar Senha: ",
|
|
76
|
+
enter_api_name: "Digite o nome da API (opcional): ",
|
|
77
|
+
enter_base_url: "Digite a URL base: ",
|
|
78
|
+
enter_auth_token: "Digite o token de autenticação: ",
|
|
79
|
+
enter_model_name: "Digite o nome do modelo: ",
|
|
80
|
+
select_provider: "Selecione o provedor: ",
|
|
81
|
+
enter_import_file: "Digite o caminho do arquivo de importação: ",
|
|
82
|
+
ctrl_c_again: "Pressione Ctrl+C novamente para sair"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
// Error messages
|
|
87
|
+
errors: {
|
|
88
|
+
api: {
|
|
89
|
+
invalid_url: "URL Base Inválida: {0}",
|
|
90
|
+
invalid_token: "Token de Autenticação Inválido: {0}",
|
|
91
|
+
invalid_model: "Modelo Inválido: {0}",
|
|
92
|
+
invalid_name: "Nome da API Inválido: {0}",
|
|
93
|
+
duplicate_config: "{0} já existe para a API: {1}",
|
|
94
|
+
failed_encrypt: "Falha ao criptografar token de autenticação: {0}",
|
|
95
|
+
failed_add: "Falha ao adicionar API: {0}",
|
|
96
|
+
failed_remove: "Falha ao remover API: {0}",
|
|
97
|
+
failed_switch: "Falha ao trocar API: {0}",
|
|
98
|
+
invalid_index: "Índice de API inválido"
|
|
99
|
+
},
|
|
100
|
+
password: {
|
|
101
|
+
empty: "A senha não pode estar vazia",
|
|
102
|
+
too_short: "A senha deve ter pelo menos 6 caracteres",
|
|
103
|
+
verification_failed: "Verificação de senha falhou",
|
|
104
|
+
verification_error: "Erro na verificação de senha: {0}",
|
|
105
|
+
verification_cancelled: "Verificação de senha cancelada pelo usuário",
|
|
106
|
+
setup_cancelled: "Configuração de senha cancelada pelo usuário",
|
|
107
|
+
current_incorrect: "A senha atual está incorreta",
|
|
108
|
+
strength_insufficient: "A força da senha é {0} - é necessária força mínima Boa ou superior",
|
|
109
|
+
setup_failed: "Falha ao definir senha: {0}",
|
|
110
|
+
change_failed: "Alteração de senha falhou: {0}",
|
|
111
|
+
mismatch: "As senhas não coincidem, tente novamente",
|
|
112
|
+
requirements_not_met: "A senha não atende aos requisitos de segurança:",
|
|
113
|
+
max_attempts: "Número máximo de tentativas atingido. Configuração de senha falhou.",
|
|
114
|
+
confirm_skip_title: "Confirmar Pular Configuração de Senha",
|
|
115
|
+
setup_skipped: "Configuração de senha pulada, funcionalidade de importar/exportar desabilitada permanentemente",
|
|
116
|
+
verification_required: "Verificação de senha necessária para confirmar sua identidade",
|
|
117
|
+
change_password_title: "Alterar Senha",
|
|
118
|
+
non_ascii: "A senha deve conter apenas caracteres ASCII",
|
|
119
|
+
contains_spaces: "A senha não pode conter espaços ou caracteres de espaçamento",
|
|
120
|
+
insufficient_types: "A senha deve conter pelo menos 2 dos seguintes: letras maiúsculas, letras minúsculas, números, caracteres especiais",
|
|
121
|
+
weak_pattern: "A senha contém padrões fracos comuns - escolha uma senha mais segura",
|
|
122
|
+
suggest_lowercase: "Adicione letras minúsculas (a-z)",
|
|
123
|
+
suggest_uppercase: "Adicione letras maiúsculas (A-Z)",
|
|
124
|
+
suggest_numbers: "Adicione números (0-9)",
|
|
125
|
+
suggest_special: "Adicione caracteres especiais (!@#$%^&*()_+-=[]{}etc.)",
|
|
126
|
+
suggest_longer: "Tente usar uma senha mais longa com mais tipos de caracteres",
|
|
127
|
+
suggest_more_types: "Considere adicionar letras maiúsculas, números ou caracteres especiais",
|
|
128
|
+
current_password_verified: "✓ Senha atual verificada"
|
|
129
|
+
},
|
|
130
|
+
file: {
|
|
131
|
+
export_failed: "Falha ao exportar configuração: {0}",
|
|
132
|
+
import_failed: "Falha ao importar configuração: {0}",
|
|
133
|
+
file_not_found: "Arquivo não encontrado: {0}",
|
|
134
|
+
invalid_format: "Formato de configuração inválido - {0}",
|
|
135
|
+
read_failed: "Falha ao ler arquivo: {0}",
|
|
136
|
+
write_failed: "Falha ao escrever arquivo: {0}",
|
|
137
|
+
no_apis_found: "Nenhuma API encontrada no arquivo de configuração"
|
|
138
|
+
},
|
|
139
|
+
general: {
|
|
140
|
+
unexpected_error: "Erro inesperado: {0}",
|
|
141
|
+
operation_failed: "Operação falhou: {0}",
|
|
142
|
+
invalid_input: "Entrada inválida: {0}",
|
|
143
|
+
cancelled_by_user: "Operação cancelada pelo usuário"
|
|
144
|
+
},
|
|
145
|
+
validation: {
|
|
146
|
+
base_url_empty: "URL base vazia ou ausente",
|
|
147
|
+
invalid_url_format: "Formato de URL inválido",
|
|
148
|
+
auth_token_empty: "Token de autenticação vazio ou ausente",
|
|
149
|
+
auth_token_too_short: "Token de autenticação muito curto (mínimo 10 caracteres)",
|
|
150
|
+
model_name_empty: "Nome do modelo vazio ou ausente",
|
|
151
|
+
model_name_invalid: "O nome do modelo parece inválido ou muito curto"
|
|
152
|
+
},
|
|
153
|
+
launcher: {
|
|
154
|
+
error_running_claude: "Erro ao executar Claude: {0}",
|
|
155
|
+
error_launching_claude: "Erro ao iniciar Claude Code: {0}"
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
|
|
159
|
+
// Status messages
|
|
160
|
+
status: {
|
|
161
|
+
loading: "Carregando...",
|
|
162
|
+
processing: "Processando...",
|
|
163
|
+
validating: "Validando...",
|
|
164
|
+
encrypting: "Criptografando...",
|
|
165
|
+
decrypting: "Descriptografando...",
|
|
166
|
+
saving: "Salvando configuração...",
|
|
167
|
+
exporting: "Exportando configuração...",
|
|
168
|
+
importing: "Importando configuração...",
|
|
169
|
+
switching_language: "Alterando idioma...",
|
|
170
|
+
initializing: "Inicializando..."
|
|
171
|
+
},
|
|
172
|
+
|
|
173
|
+
// API details and labels
|
|
174
|
+
api: {
|
|
175
|
+
details: {
|
|
176
|
+
provider: "Provedor",
|
|
177
|
+
url: "URL",
|
|
178
|
+
model: "Modelo",
|
|
179
|
+
token: "Token",
|
|
180
|
+
usage: "Uso",
|
|
181
|
+
last_used: "Último Uso",
|
|
182
|
+
created_at: "Criada",
|
|
183
|
+
never_used: "Nunca",
|
|
184
|
+
times_suffix: "vezes",
|
|
185
|
+
currently_active: "API atualmente ativa",
|
|
186
|
+
no_active_api: "Nenhuma API ativa"
|
|
187
|
+
},
|
|
188
|
+
actions: {
|
|
189
|
+
select_to_switch: "Selecione a API para trocar:",
|
|
190
|
+
select_to_remove: "Selecione a API para remover:",
|
|
191
|
+
switch_success: "API Ativa: {0}",
|
|
192
|
+
remove_confirm: "API para remover: {0}",
|
|
193
|
+
cannot_undo: "Esta ação não pode ser desfeita!",
|
|
194
|
+
removed_info: "Removida: {0}"
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
|
|
198
|
+
// Password setup and management
|
|
199
|
+
password: {
|
|
200
|
+
setup: {
|
|
201
|
+
title: "Definir Senha de Importar/Exportar:",
|
|
202
|
+
change_title: "Alterar Senha:",
|
|
203
|
+
warning: "Alterar a senha tornará arquivos de exportação existentes inacessíveis",
|
|
204
|
+
requirements_title: "Requisitos da Senha:",
|
|
205
|
+
example: "Exemplo de senha forte: {0}",
|
|
206
|
+
attempt_counter: "tentativa {0}/{1}",
|
|
207
|
+
first_time_title: "Primeira Configuração de Importar/Exportar",
|
|
208
|
+
why_needed: "Por que a senha é necessária:",
|
|
209
|
+
why_needed_items: [
|
|
210
|
+
"Funcionalidades de importar/exportar requerem verificação de senha para identificação do usuário",
|
|
211
|
+
"Configurações exportadas estão em formato de texto para compatibilidade entre máquinas",
|
|
212
|
+
"Configurações locais permanecem criptografadas, a senha garante que apenas você possa acessá-las"
|
|
213
|
+
],
|
|
214
|
+
new_security_title: "Novos Requisitos de Segurança Aprimorados:",
|
|
215
|
+
security_items: [
|
|
216
|
+
"A senha deve ter pelo menos 6 caracteres",
|
|
217
|
+
"Deve conter pelo menos 2 tipos: letras maiúsculas, minúsculas, números ou caracteres especiais",
|
|
218
|
+
"Apenas caracteres ASCII, espaços não permitidos",
|
|
219
|
+
"Proteção avançada contra padrões de senha fracos"
|
|
220
|
+
],
|
|
221
|
+
options_title: "Opções:",
|
|
222
|
+
option_set: "Definir Senha: Habilitar funcionalidade de importar/exportar com verificação de identidade",
|
|
223
|
+
option_skip: "Pular Configuração: Desabilitar permanentemente recursos de importar/exportar (não pode ser desfeito)",
|
|
224
|
+
warning_skip: "AVISO: Pular a configuração desabilitará permanentemente a funcionalidade de importar/exportar!",
|
|
225
|
+
menu_set_password: "Definir Senha (Recomendado)",
|
|
226
|
+
menu_skip_setup: "Pular Configuração (Desabilitar Permanentemente Importar/Exportar)",
|
|
227
|
+
menu_back: "Qualquer outra tecla: Voltar ao Menu Principal",
|
|
228
|
+
setup_instructions: [
|
|
229
|
+
"A senha deve ter pelo menos 6 caracteres",
|
|
230
|
+
"Deve conter pelo menos 2 tipos: letras maiúsculas, minúsculas, números ou caracteres especiais",
|
|
231
|
+
"Apenas caracteres ASCII, espaços não permitidos",
|
|
232
|
+
"Proteção avançada contra padrões de senha fracos"
|
|
233
|
+
],
|
|
234
|
+
password_requirements_text: "Requisitos da Senha:",
|
|
235
|
+
example_password: "Exemplo de senha forte: {0}",
|
|
236
|
+
new_password_attempt: "Nova Senha (tentativa {0}/{1}): ",
|
|
237
|
+
confirm_password_prompt: "Confirmar Senha: ",
|
|
238
|
+
passwords_mismatch: "As senhas não coincidem, tente novamente",
|
|
239
|
+
password_success: "Senha definida com sucesso! (Força: {0})",
|
|
240
|
+
press_continue: "Pressione qualquer tecla para continuar...",
|
|
241
|
+
enter_current_password: "Digite a senha atual: "
|
|
242
|
+
},
|
|
243
|
+
requirements: [
|
|
244
|
+
"Pelo menos 6 caracteres de comprimento",
|
|
245
|
+
"Pelo menos 2 dos seguintes tipos de caracteres:",
|
|
246
|
+
" • Letras maiúsculas (A-Z)",
|
|
247
|
+
" • Letras minúsculas (a-z)",
|
|
248
|
+
" • Números (0-9)",
|
|
249
|
+
" • Caracteres especiais (!@#$%^&*()_+-=[]{}etc.)",
|
|
250
|
+
"Apenas caracteres ASCII (sem espaços ou caracteres incomuns)",
|
|
251
|
+
"Não pode conter padrões fracos comuns",
|
|
252
|
+
"Força mínima da senha: Boa (senhas Fracas e Muito Fracas são rejeitadas)"
|
|
253
|
+
],
|
|
254
|
+
suggestions: [
|
|
255
|
+
"Adicione letras minúsculas (a-z)",
|
|
256
|
+
"Adicione letras maiúsculas (A-Z)",
|
|
257
|
+
"Adicione números (0-9)",
|
|
258
|
+
"Adicione caracteres especiais (!@#$%^&*()_+-=[]{}etc.)",
|
|
259
|
+
"Tente usar uma senha mais longa com mais tipos de caracteres",
|
|
260
|
+
"Considere adicionar letras maiúsculas, números ou caracteres especiais"
|
|
261
|
+
],
|
|
262
|
+
strength: {
|
|
263
|
+
very_weak: "Muito Fraca",
|
|
264
|
+
weak: "Fraca",
|
|
265
|
+
good: "Boa",
|
|
266
|
+
strong: "Forte",
|
|
267
|
+
very_strong: "Muito Forte"
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
|
|
271
|
+
// Import/Export functionality
|
|
272
|
+
import_export: {
|
|
273
|
+
export: {
|
|
274
|
+
title: "Exportar Configuração",
|
|
275
|
+
description_title: "Descrição da Função de Exportação:",
|
|
276
|
+
description_items: [
|
|
277
|
+
"Verificação de senha necessária para confirmar sua identidade",
|
|
278
|
+
"A exportação salva um arquivo JSON no seu diretório home",
|
|
279
|
+
"O arquivo contém configurações de API em texto simples para migração fácil",
|
|
280
|
+
"O arquivo será aberto automaticamente após a exportação"
|
|
281
|
+
],
|
|
282
|
+
success: "Configuração exportada para: {0}",
|
|
283
|
+
success_title: "Configuração exportada com sucesso!",
|
|
284
|
+
details_title: "Detalhes da Exportação:",
|
|
285
|
+
details_file_saved: "Arquivo salvo em: {0}",
|
|
286
|
+
details_export_dir: "Diretório de exportação: {0}",
|
|
287
|
+
details_filename: "Nome do arquivo: {0}",
|
|
288
|
+
opening_file: "Abrindo arquivo exportado com aplicação padrão...",
|
|
289
|
+
tips_title: "Dicas:",
|
|
290
|
+
tips_items: [
|
|
291
|
+
"Compartilhe este arquivo para migrar configurações para outras máquinas",
|
|
292
|
+
"Mantenha o arquivo seguro pois contém suas configurações de API"
|
|
293
|
+
],
|
|
294
|
+
password_required: "Verificação de senha necessária para exportação",
|
|
295
|
+
enter_password_prompt: "Digite a senha para verificar identidade: ",
|
|
296
|
+
verification_failed: "Verificação de senha falhou",
|
|
297
|
+
cannot_proceed: "Não é possível prosseguir com a exportação",
|
|
298
|
+
press_return: "Pressione qualquer tecla para voltar..."
|
|
299
|
+
},
|
|
300
|
+
import: {
|
|
301
|
+
title: "Importar Configuração",
|
|
302
|
+
success: "Importação concluída: {0} APIs importadas, {1} puladas",
|
|
303
|
+
password_required: "Verificação de senha necessária para importação",
|
|
304
|
+
file_prompt: "Digite o caminho completo para o arquivo de configuração:",
|
|
305
|
+
processing: "Processando arquivo de importação...",
|
|
306
|
+
validating_file: "Validando arquivo de configuração...",
|
|
307
|
+
verification_failed: "Verificação de senha falhou",
|
|
308
|
+
cannot_proceed: "Não é possível prosseguir com a importação",
|
|
309
|
+
press_return: "Pressione qualquer tecla para voltar..."
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
|
|
313
|
+
// Navigation and UI
|
|
314
|
+
navigation: {
|
|
315
|
+
use_arrows: "Use as teclas de seta ↑↓ para navegar, Enter para selecionar, Duplo Ctrl+C para sair",
|
|
316
|
+
use_arrows_esc: "Use ↑↓ para navegar, Enter para {0}, ESC para voltar ao menu principal",
|
|
317
|
+
use_number_keys: "Use as teclas numéricas para selecionar:",
|
|
318
|
+
currently_active: "API atualmente ativa",
|
|
319
|
+
select_action: "Selecione uma ação:",
|
|
320
|
+
no_options: "Nenhuma opção disponível",
|
|
321
|
+
enter_choice: "Digite sua escolha ({0}, ou qualquer outra tecla para voltar ao menu principal):",
|
|
322
|
+
arrow_keys_not_available: "Teclas de seta não disponíveis. Digite o número da seleção (1-{0}):",
|
|
323
|
+
enter_choice_prompt: "[>] Digite sua escolha (1-2, ou qualquer outra tecla para voltar ao menu principal): "
|
|
324
|
+
},
|
|
325
|
+
|
|
326
|
+
// Launch process
|
|
327
|
+
launch: {
|
|
328
|
+
starting: "Iniciando Claude Code...",
|
|
329
|
+
command: "Comando: {0}",
|
|
330
|
+
run_in_terminal: "Claude será executado no terminal atual.",
|
|
331
|
+
launcher_exit: "O launcher sairá para transferir controle para o Claude.",
|
|
332
|
+
no_active_api: "Nenhuma API de Terceiros Ativa",
|
|
333
|
+
no_active_api_desc: "Nenhuma API de terceiros está atualmente ativa.",
|
|
334
|
+
add_configure_first: "Adicione e configure uma API primeiro, ou mude para uma existente.",
|
|
335
|
+
press_key_return: "Pressione qualquer tecla para voltar ao menu principal...",
|
|
336
|
+
environment_variables: "Variáveis de ambiente:",
|
|
337
|
+
using_third_party_api: "Usando Configuração de API de Terceiros",
|
|
338
|
+
deepseek_optimizations: "Otimizações DeepSeek habilitadas:",
|
|
339
|
+
extended_timeout: "Timeout estendido (600s)",
|
|
340
|
+
non_essential_disabled: "Tráfego não essencial desabilitado"
|
|
341
|
+
},
|
|
342
|
+
|
|
343
|
+
// Additional UI messages
|
|
344
|
+
ui: {
|
|
345
|
+
general: {
|
|
346
|
+
after_skipping_password_setup: "Após pular a configuração de senha:",
|
|
347
|
+
file_path_empty: "O caminho do arquivo não pode estar vazio",
|
|
348
|
+
max_attempts_import_cancelled: "Número máximo de tentativas atingido. Importação cancelada.",
|
|
349
|
+
max_attempts_import_failed: "Número máximo de tentativas atingido. Importação falhou.",
|
|
350
|
+
check_file_path_json: "💡 Verifique o caminho do arquivo e certifique-se de que é um arquivo JSON válido",
|
|
351
|
+
launcher_version: "Claude Launcher v2.0.0",
|
|
352
|
+
press_key_return_menu: "Pressione qualquer tecla para voltar ao menu...",
|
|
353
|
+
add_apis_first: "Você precisa adicionar algumas APIs primeiro.",
|
|
354
|
+
press_any_key_continue: "Pressione qualquer tecla para continuar...",
|
|
355
|
+
currently_active_api: "API Atualmente Ativa:",
|
|
356
|
+
confirm_delete_api: "Tem certeza de que deseja excluir esta configuração de API?",
|
|
357
|
+
action_cannot_undone: "Esta ação não pode ser desfeita!",
|
|
358
|
+
type_exit_cancel: "Digite \"exit\" em qualquer prompt para cancelar",
|
|
359
|
+
type_exit_cancel_setup: "Digite \"exit\" para cancelar a configuração",
|
|
360
|
+
press_y_confirm: "Pressione Y para confirmar, qualquer outra tecla para cancelar...",
|
|
361
|
+
max_attempts_password_failed: "Número máximo de tentativas atingido. Configuração de senha falhou.",
|
|
362
|
+
passwords_mismatch: "As senhas não coincidem, tente novamente",
|
|
363
|
+
password_skip_consequences: [
|
|
364
|
+
"A funcionalidade de importar/exportar será desabilitada permanentemente",
|
|
365
|
+
"Não será possível fazer backup ou migrar configurações de API",
|
|
366
|
+
"Esta decisão não pode ser desfeita"
|
|
367
|
+
],
|
|
368
|
+
import_function_description: "Descrição da Função de Importação:",
|
|
369
|
+
import_description_items: [
|
|
370
|
+
"A importação lê um arquivo JSON do caminho de arquivo especificado",
|
|
371
|
+
"Os dados de importação serão mesclados com a configuração atual (sem sobrescrever)",
|
|
372
|
+
"Configurações de API duplicadas serão automaticamente puladas"
|
|
373
|
+
],
|
|
374
|
+
file_input_required: "Entrada de Arquivo Necessária:",
|
|
375
|
+
file_input_items: [
|
|
376
|
+
"Forneça o caminho completo para seu arquivo de configuração JSON",
|
|
377
|
+
"O arquivo deve ser um arquivo JSON válido com extensão .json",
|
|
378
|
+
"O arquivo será validado antes da importação"
|
|
379
|
+
],
|
|
380
|
+
validating_file: "🔍 Validando arquivo...",
|
|
381
|
+
file_validation_successful: "✓ Validação de arquivo bem-sucedida",
|
|
382
|
+
import_successful: "✓ Configuração importada com sucesso!",
|
|
383
|
+
import_statistics: "📊 Estatísticas de Importação:",
|
|
384
|
+
import_stats_items: [
|
|
385
|
+
"Importadas com sucesso: {0} configurações de API",
|
|
386
|
+
"Duplicatas puladas: {1} configurações de API",
|
|
387
|
+
"Configuração mesclada com dados existentes",
|
|
388
|
+
"Arquivo fonte: {0}"
|
|
389
|
+
],
|
|
390
|
+
import_tips: [
|
|
391
|
+
"💡 Verifique o conteúdo e formato do arquivo"
|
|
392
|
+
],
|
|
393
|
+
goodbye: "👋 Tchau!",
|
|
394
|
+
configured_apis: "APIs Configuradas:",
|
|
395
|
+
press_continue_provider_selection: "Pressione qualquer tecla para continuar para a seleção de provedor...",
|
|
396
|
+
|
|
397
|
+
// API Configuration sections
|
|
398
|
+
add_new_api_title: "🔗 Adicionar Nova Configuração de API de Terceiros",
|
|
399
|
+
security_privacy_info: "🔒 Informações de Segurança e Privacidade:",
|
|
400
|
+
security_items: [
|
|
401
|
+
"Todas as chaves de API são criptografadas usando criptografia AES-256-CBC",
|
|
402
|
+
"A chave de criptografia é derivada de dados específicos da máquina",
|
|
403
|
+
"Suas chaves de API são armazenadas localmente apenas nesta máquina",
|
|
404
|
+
"As chaves não podem ser descriptografadas em outras máquinas",
|
|
405
|
+
"Nenhum dado é enviado para servidores externos exceto suas chamadas de API"
|
|
406
|
+
],
|
|
407
|
+
configuration_tips: "💡 Dicas de Configuração:",
|
|
408
|
+
config_tip_items: [
|
|
409
|
+
"URL Base: O endpoint da API (ex. https://api.example.com)",
|
|
410
|
+
"Token de Autenticação: Sua chave de API ou token de autenticação",
|
|
411
|
+
"Modelo: O modelo de AI a ser usado (ex. claude-3-sonnet-20240229)"
|
|
412
|
+
],
|
|
413
|
+
all_providers_compatible: "💡 Todos os provedores listados usam formato de API compatível com Anthropic",
|
|
414
|
+
using_custom_provider: "✓ Usando configuração de provedor personalizado",
|
|
415
|
+
suggestions: "Sugestões:",
|
|
416
|
+
current_password_strength: "Força da senha atual: {0}",
|
|
417
|
+
enter_json_file_path_attempt: "[>] Digite o caminho do arquivo JSON (tentativa {0}/{1}): ",
|
|
418
|
+
currently_active_api: "API atualmente ativa",
|
|
419
|
+
file_validation_failed: "Validação de arquivo falhou: {0}",
|
|
420
|
+
model_name_prompt: "[>] Nome do Modelo: ",
|
|
421
|
+
provider_selection_required: "Selecione um provedor (1-{0})",
|
|
422
|
+
|
|
423
|
+
// Provider selection
|
|
424
|
+
compatible_providers_title: "📋 Provedores de API Compatíveis com Claude Code:",
|
|
425
|
+
provider_anthropic: "🎯 Anthropic (Oficial)",
|
|
426
|
+
provider_anthropic_desc: "API oficial da Anthropic - Totalmente compatível",
|
|
427
|
+
provider_moonshot: "✅ Moonshot AI (Kimi-K2)",
|
|
428
|
+
provider_moonshot_desc: "Moonshot AI - Fornece API compatível com Anthropic",
|
|
429
|
+
provider_deepseek: "✅ DeepSeek (DeepSeek V3/V3.1)",
|
|
430
|
+
provider_deepseek_desc: "DeepSeek AI - Endpoint compatível com Anthropic",
|
|
431
|
+
provider_custom: "✅ API Personalizada Compatível com Anthropic",
|
|
432
|
+
provider_custom_desc: "Servidor personalizado com API compatível com Anthropic",
|
|
433
|
+
select_provider_prompt: "[>] Selecione o provedor (1-{0}) ou pressione ESC para Cancelar: ",
|
|
434
|
+
|
|
435
|
+
// Provider configuration
|
|
436
|
+
selected_provider: "✓ Selecionado: {0}",
|
|
437
|
+
recommended_base_url: "URL Base Recomendada: {0}",
|
|
438
|
+
reference_base_url: "URL Base de Referência: {0}",
|
|
439
|
+
api_base_url_prompt: "[>] URL Base da API: ",
|
|
440
|
+
base_url_required: "URL base é necessária para provedores personalizados",
|
|
441
|
+
press_enter_default_url: "[>] Pressione Enter para usar o padrão ou digite URL personalizada: ",
|
|
442
|
+
expected_format: "Formato esperado: {0}",
|
|
443
|
+
auth_token_prompt: "[>] Token de Autenticação: ",
|
|
444
|
+
edit_url_hint: "(Você pode editar a URL acima digitando)",
|
|
445
|
+
|
|
446
|
+
// Model selection
|
|
447
|
+
suggested_models: "Modelos sugeridos:",
|
|
448
|
+
select_model_prompt: "[>] Selecione o modelo (1-{0}) ou digite personalizado: ",
|
|
449
|
+
invalid_model_selection: "❌ Seleção inválida. Digite um número entre 1-{0} ou um nome de modelo personalizado",
|
|
450
|
+
invalid_provider_selection: "❌ Seleção inválida. Digite um número entre 1-{0} ou pressione Enter para personalizado",
|
|
451
|
+
invalid_provider_number: "❌ Seleção inválida. Digite um número entre 1-{0}",
|
|
452
|
+
api_name_prompt: "[>] Nome da API (opcional, para identificação): ",
|
|
453
|
+
replace_url_model_note: "Nota: Substitua URL e modelo pelos detalhes do seu servidor real",
|
|
454
|
+
|
|
455
|
+
// API management
|
|
456
|
+
select_api_remove: "[!] Selecione a API para remover:",
|
|
457
|
+
navigate_remove_instructions: "Use ↑↓ para navegar, Enter para remover, ESC para voltar ao menu principal",
|
|
458
|
+
confirm_deletion_prompt: "[?] Confirmar exclusão (y/N): ",
|
|
459
|
+
navigate_activate_instructions: "Use ↑↓ para navegar, Enter para ativar, ESC para voltar ao menu principal",
|
|
460
|
+
summary: "Resumo:",
|
|
461
|
+
|
|
462
|
+
// Skip confirmation options
|
|
463
|
+
confirm_skip_option: "→ Confirmo pular",
|
|
464
|
+
reconsider_option: "Reconsiderar, voltar à configuração de senha",
|
|
465
|
+
|
|
466
|
+
// Password requirements details
|
|
467
|
+
password_requirements_title: "🔒 Requisitos da Senha:",
|
|
468
|
+
password_requirements_list: [
|
|
469
|
+
"Pelo menos 6 caracteres de comprimento",
|
|
470
|
+
"Pelo menos 2 dos seguintes tipos de caracteres:",
|
|
471
|
+
" • Letras maiúsculas (A-Z)",
|
|
472
|
+
" • Letras minúsculas (a-z)",
|
|
473
|
+
" • Números (0-9)",
|
|
474
|
+
" • Caracteres especiais (!@#$%^&*()_+-=[]{}etc.)",
|
|
475
|
+
"Apenas caracteres ASCII (sem espaços ou caracteres incomuns)",
|
|
476
|
+
"Não pode conter padrões fracos comuns",
|
|
477
|
+
"Força mínima da senha: Boa (senhas Fracas e Muito Fracas são rejeitadas)"
|
|
478
|
+
],
|
|
479
|
+
example_strong_password: "Exemplo de senha forte: {0}",
|
|
480
|
+
new_password_attempt: "Nova Senha (tentativa {0}/{1}): ",
|
|
481
|
+
confirm_password_prompt: "Confirmar Senha: "
|
|
482
|
+
}
|
|
483
|
+
},
|
|
484
|
+
|
|
485
|
+
// Statistics and information
|
|
486
|
+
statistics: {
|
|
487
|
+
title: "Estatísticas da API",
|
|
488
|
+
total_apis: "Total de APIs: {0}",
|
|
489
|
+
active_api: "API Ativa: {0}",
|
|
490
|
+
most_used: "API Mais Usada: {0}",
|
|
491
|
+
total_usage: "Uso Total: {0} vezes",
|
|
492
|
+
no_usage: "Nenhum uso registrado"
|
|
493
|
+
},
|
|
494
|
+
|
|
495
|
+
// Version updates
|
|
496
|
+
version: {
|
|
497
|
+
update_available: "Nova versão disponível: v{0} (atual: v{1})",
|
|
498
|
+
install_command: "Execute npm update -g @kikkimo/claude-launcher para atualizar",
|
|
499
|
+
checking_updates: "Verificando atualizações...",
|
|
500
|
+
update_failed: "Falha ao verificar atualizações",
|
|
501
|
+
up_to_date: "Já atualizado",
|
|
502
|
+
skip_version: "Pular esta versão",
|
|
503
|
+
current_version_info: "Atual: v{0} | npm mais recente: v{1}",
|
|
504
|
+
npm_package_url: "pacote npm: {0}",
|
|
505
|
+
always_show_mode: "Modo de exibição de versão: Sempre mostrar",
|
|
506
|
+
update_only_mode: "Modo de exibição de versão: Apenas atualizações"
|
|
507
|
+
},
|
|
508
|
+
|
|
509
|
+
// Version check feature
|
|
510
|
+
version_check: {
|
|
511
|
+
title: "Verificação de Atualização de Versão",
|
|
512
|
+
checking: "Verificando registro npm...",
|
|
513
|
+
please_wait: "Aguarde, por favor",
|
|
514
|
+
error: "Verificação falhou: {0}",
|
|
515
|
+
error_tips: "Dicas: Verifique a conexão de rede ou tente novamente mais tarde",
|
|
516
|
+
update_available: "🎉 Nova versão encontrada!",
|
|
517
|
+
current_version: "Versão atual: v{0}",
|
|
518
|
+
latest_version: "Versão mais recente: v{0}",
|
|
519
|
+
update_command: "Comando de atualização: npm update -g @kikkimo/claude-launcher",
|
|
520
|
+
up_to_date: "Você está usando a versão mais recente",
|
|
521
|
+
unexpected_error: "Erro inesperado ocorreu durante a verificação"
|
|
522
|
+
}
|
|
523
|
+
};
|