@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.
@@ -0,0 +1,523 @@
1
+ /**
2
+ * Spanish Language Pack
3
+ * Contains all translatable strings for Spanish locale
4
+ */
5
+
6
+ module.exports = {
7
+ // Secciones de menú
8
+ menu: {
9
+ main: {
10
+ title: "Menú Principal",
11
+ launch_default: "Iniciar Claude Code",
12
+ launch_skip: "Iniciar Claude Code (Omitir verificación de permisos)",
13
+ launch_api: "Iniciar Claude Code con API de terceros",
14
+ launch_api_skip: "Iniciar Claude Code con API de terceros (Omitir verificación de permisos)",
15
+ api_management: "Gestión de API de terceros",
16
+ language_settings: "Configuración de idioma",
17
+ version_check: "Verificación de actualización de versión",
18
+ exit: "Salir"
19
+ },
20
+ api_management: {
21
+ title: "Gestión de API de terceros",
22
+ add_new: "Agregar nueva API de terceros",
23
+ remove: "Eliminar API",
24
+ switch: "Cambiar API activa",
25
+ statistics: "Ver estadísticas de API",
26
+ export: "Exportar configuración",
27
+ import: "Importar configuración",
28
+ change_password: "Cambiar contraseña",
29
+ back: "Volver al menú principal"
30
+ },
31
+ language: {
32
+ title: "Configuración de idioma",
33
+ current: "Idioma actual: {0}",
34
+ select_prompt: "Seleccione su idioma preferido:",
35
+ changed_success: "Idioma cambiado a {0}",
36
+ restart_note: "Algunos cambios pueden requerir reiniciar la aplicación",
37
+ back: "Volver al menú principal"
38
+ }
39
+ },
40
+
41
+ // Tipos de mensajes
42
+ messages: {
43
+ info: {
44
+ no_apis: "No hay API de terceros configuradas",
45
+ add_api_first: "Por favor, primero agregue una API usando \"Agregar nueva API de terceros\"",
46
+ all_apis_removed: "Todas las API han sido eliminadas",
47
+ apis_removed_or_none: "Todas las API han sido eliminadas o no había ninguna configurada.",
48
+ removal_cancelled: "Eliminación cancelada",
49
+ operation_cancelled: "Operación cancelada",
50
+ password_setup_skipped: "Configuración de contraseña omitida, funcionalidad de importar/exportar deshabilitada permanentemente",
51
+ first_time_usage: "Este es su primer uso de Claude Launcher",
52
+ export_disabled: "La funcionalidad de importar/exportar está deshabilitada",
53
+ no_apis_info_title: "No hay API de terceros configuradas",
54
+ press_return_menu: "Presione cualquier tecla para volver al menú principal..."
55
+ },
56
+ success: {
57
+ api_added: "¡API agregada exitosamente!",
58
+ api_removed: "¡API eliminada exitosamente!",
59
+ api_switched: "¡API cambiada exitosamente!",
60
+ password_set: "¡Contraseña establecida exitosamente! (Fuerza: {0})",
61
+ password_changed: "¡Contraseña cambiada exitosamente!",
62
+ config_exported: "¡Configuración exportada exitosamente!",
63
+ config_imported: "¡Configuración importada exitosamente! ({0} importadas, {1} omitidas)",
64
+ language_changed: "¡Idioma cambiado exitosamente!"
65
+ },
66
+ prompts: {
67
+ press_any_key: "Presione cualquier tecla para continuar...",
68
+ press_any_key_menu: "Presione cualquier tecla para volver al menú principal...",
69
+ press_any_key_remove: "Presione cualquier tecla para continuar seleccionando API para eliminar...",
70
+ confirm_deletion: "¿Está seguro de que desea eliminar esta API?",
71
+ confirm_password_skip: "¿Está seguro de que desea omitir permanentemente la configuración de contraseña?",
72
+ enter_password: "Ingrese la contraseña para verificar identidad: ",
73
+ enter_current_password: "Ingrese la contraseña actual: ",
74
+ enter_new_password: "Nueva contraseña: ",
75
+ confirm_new_password: "Confirmar contraseña: ",
76
+ enter_api_name: "Ingrese el nombre de la API (opcional): ",
77
+ enter_base_url: "Ingrese la URL base: ",
78
+ enter_auth_token: "Ingrese el token de autenticación: ",
79
+ enter_model_name: "Ingrese el nombre del modelo: ",
80
+ select_provider: "Seleccionar proveedor: ",
81
+ enter_import_file: "Ingrese la ruta del archivo de importación: ",
82
+ ctrl_c_again: "Presione Ctrl+C nuevamente para salir del programa"
83
+ }
84
+ },
85
+
86
+ // Mensajes de error
87
+ errors: {
88
+ api: {
89
+ invalid_url: "URL base inválida: {0}",
90
+ invalid_token: "Token de autenticación inválido: {0}",
91
+ invalid_model: "Modelo inválido: {0}",
92
+ invalid_name: "Nombre de API inválido: {0}",
93
+ duplicate_config: "La API {1} ya existe{0}",
94
+ failed_encrypt: "Error al cifrar el token de autenticación: {0}",
95
+ failed_add: "Error al agregar API: {0}",
96
+ failed_remove: "Error al eliminar API: {0}",
97
+ failed_switch: "Error al cambiar API: {0}",
98
+ invalid_index: "Índice de API inválido"
99
+ },
100
+ password: {
101
+ empty: "La contraseña no puede estar vacía",
102
+ too_short: "La contraseña debe tener al menos 6 caracteres",
103
+ verification_failed: "Verificación de contraseña fallida",
104
+ verification_error: "Error de verificación de contraseña: {0}",
105
+ verification_cancelled: "Verificación de contraseña cancelada por el usuario",
106
+ setup_cancelled: "Configuración de contraseña cancelada por el usuario",
107
+ current_incorrect: "La contraseña actual es incorrecta",
108
+ strength_insufficient: "La fuerza de la contraseña es {0} - se requiere fuerza mínima de 'Buena' o superior",
109
+ setup_failed: "Error en la configuración de contraseña: {0}",
110
+ change_failed: "Error al cambiar contraseña: {0}",
111
+ mismatch: "Las contraseñas no coinciden, por favor inténtelo de nuevo",
112
+ requirements_not_met: "La contraseña no cumple los requisitos de seguridad:",
113
+ max_attempts: "Número máximo de intentos alcanzado. Configuración de contraseña fallida.",
114
+ confirm_skip_title: "Confirmar omitir configuración de contraseña",
115
+ setup_skipped: "Configuración de contraseña omitida, funcionalidad de importar/exportar deshabilitada permanentemente",
116
+ verification_required: "Verificación de contraseña requerida para confirmar su identidad",
117
+ change_password_title: "Cambiar contraseña",
118
+ non_ascii: "La contraseña debe contener solo caracteres ASCII",
119
+ contains_spaces: "La contraseña no puede contener espacios o caracteres de espacio en blanco",
120
+ insufficient_types: "La contraseña debe contener al menos 2 de los siguientes tipos: mayúsculas, minúsculas, números, caracteres especiales",
121
+ weak_pattern: "La contraseña contiene patrones débiles comunes - por favor elija una contraseña más segura",
122
+ suggest_lowercase: "Agregar letras minúsculas (a-z)",
123
+ suggest_uppercase: "Agregar letras mayúsculas (A-Z)",
124
+ suggest_numbers: "Agregar números (0-9)",
125
+ suggest_special: "Agregar caracteres especiales (!@#$%^&*()_+-=[]{}etc.)",
126
+ suggest_longer: "Pruebe una contraseña más larga con más tipos de caracteres",
127
+ suggest_more_types: "Considere agregar mayúsculas, números o caracteres especiales",
128
+ current_password_verified: "✓ Contraseña actual verificada"
129
+ },
130
+ file: {
131
+ export_failed: "Error al exportar configuración: {0}",
132
+ import_failed: "Error al importar configuración: {0}",
133
+ file_not_found: "Archivo no encontrado: {0}",
134
+ invalid_format: "Formato de configuración inválido - {0}",
135
+ read_failed: "Error al leer archivo: {0}",
136
+ write_failed: "Error al escribir archivo: {0}",
137
+ no_apis_found: "No se encontraron API en el archivo de configuración"
138
+ },
139
+ general: {
140
+ unexpected_error: "Error inesperado: {0}",
141
+ operation_failed: "Operación fallida: {0}",
142
+ invalid_input: "Entrada inválida: {0}",
143
+ cancelled_by_user: "Operación cancelada por el usuario"
144
+ },
145
+ validation: {
146
+ base_url_empty: "La URL base está vacía o falta",
147
+ invalid_url_format: "Formato de URL inválido",
148
+ auth_token_empty: "El token de autenticación está vacío o falta",
149
+ auth_token_too_short: "El token de autenticación es demasiado corto (mínimo 10 caracteres)",
150
+ model_name_empty: "El nombre del modelo está vacío o falta",
151
+ model_name_invalid: "El nombre del modelo parece inválido o demasiado corto"
152
+ },
153
+ launcher: {
154
+ error_running_claude: "Error al ejecutar Claude: {0}",
155
+ error_launching_claude: "Error al iniciar Claude Code: {0}"
156
+ }
157
+ },
158
+
159
+ // Mensajes de estado
160
+ status: {
161
+ loading: "Cargando...",
162
+ processing: "Procesando...",
163
+ validating: "Validando...",
164
+ encrypting: "Cifrando...",
165
+ decrypting: "Descifrando...",
166
+ saving: "Guardando configuración...",
167
+ exporting: "Exportando configuración...",
168
+ importing: "Importando configuración...",
169
+ switching_language: "Cambiando idioma...",
170
+ initializing: "Inicializando..."
171
+ },
172
+
173
+ // Detalles y etiquetas de API
174
+ api: {
175
+ details: {
176
+ provider: "Proveedor",
177
+ url: "URL",
178
+ model: "Modelo",
179
+ token: "Token",
180
+ usage: "Uso",
181
+ last_used: "Último uso",
182
+ created_at: "Creado",
183
+ never_used: "Nunca usado",
184
+ times_suffix: "veces",
185
+ currently_active: "API actualmente activa",
186
+ no_active_api: "No hay API activa"
187
+ },
188
+ actions: {
189
+ select_to_switch: "Seleccionar API para cambiar:",
190
+ select_to_remove: "Seleccionar API para eliminar:",
191
+ switch_success: "API activa: {0}",
192
+ remove_confirm: "API a eliminar: {0}",
193
+ cannot_undo: "¡Esta acción no se puede deshacer!",
194
+ removed_info: "Eliminado: {0}"
195
+ }
196
+ },
197
+
198
+ // Configuración y gestión de contraseñas
199
+ password: {
200
+ setup: {
201
+ title: "Configurar contraseña de importar/exportar:",
202
+ change_title: "Cambiar contraseña:",
203
+ warning: "Cambiar la contraseña hará inaccesibles los archivos de exportación existentes",
204
+ requirements_title: "Requisitos de contraseña:",
205
+ example: "Ejemplo de contraseña fuerte: {0}",
206
+ attempt_counter: "intento {0}/{1}",
207
+ first_time_title: "Configuración inicial de importar/exportar",
208
+ why_needed: "Por qué se necesita una contraseña:",
209
+ why_needed_items: [
210
+ "Las funciones de importar/exportar requieren verificación de contraseña para identificación del usuario",
211
+ "Las configuraciones exportadas están en formato de texto plano para compatibilidad entre máquinas",
212
+ "Las configuraciones locales permanecen cifradas, la contraseña asegura que solo usted puede acceder"
213
+ ],
214
+ new_security_title: "Nuevos requisitos de seguridad mejorada:",
215
+ security_items: [
216
+ "La contraseña debe tener al menos 6 caracteres",
217
+ "Debe contener al menos 2 tipos: mayúsculas, minúsculas, números o caracteres especiales",
218
+ "Solo caracteres ASCII, no se permiten espacios",
219
+ "Protección avanzada contra patrones de contraseña débiles"
220
+ ],
221
+ options_title: "Opciones:",
222
+ option_set: "Establecer contraseña: Habilitar funcionalidad de importar/exportar con verificación de identidad",
223
+ option_skip: "Omitir configuración: Deshabilitar permanentemente las funciones de importar/exportar (no se puede deshacer)",
224
+ warning_skip: "ADVERTENCIA: ¡Omitir la configuración deshabilitará permanentemente la funcionalidad de importar/exportar!",
225
+ menu_set_password: "Establecer contraseña (recomendado)",
226
+ menu_skip_setup: "Omitir configuración (deshabilitar permanentemente importar/exportar)",
227
+ menu_back: "Cualquier otra tecla: Volver al menú principal",
228
+ setup_instructions: [
229
+ "La contraseña debe tener al menos 6 caracteres",
230
+ "Debe contener al menos 2 tipos: mayúsculas, minúsculas, números o caracteres especiales",
231
+ "Solo caracteres ASCII, no se permiten espacios",
232
+ "Protección avanzada contra patrones de contraseña débiles"
233
+ ],
234
+ password_requirements_text: "Requisitos de contraseña:",
235
+ example_password: "Ejemplo de contraseña fuerte: {0}",
236
+ new_password_attempt: "Nueva contraseña (intento {0}/{1}): ",
237
+ confirm_password_prompt: "Confirmar contraseña: ",
238
+ passwords_mismatch: "Las contraseñas no coinciden, por favor inténtelo de nuevo",
239
+ password_success: "¡Contraseña establecida exitosamente! (Fuerza: {0})",
240
+ press_continue: "Presione cualquier tecla para continuar...",
241
+ enter_current_password: "Ingrese la contraseña actual: "
242
+ },
243
+ requirements: [
244
+ "Al menos 6 caracteres de longitud",
245
+ "Al menos 2 de los siguientes tipos de caracteres:",
246
+ " • Letras mayúsculas (A-Z)",
247
+ " • Letras minúsculas (a-z)",
248
+ " • Números (0-9)",
249
+ " • Caracteres especiales (!@#$%^&*()_+-=[]{}etc.)",
250
+ "Solo caracteres ASCII (sin espacios o caracteres inusuales)",
251
+ "No puede contener patrones débiles comunes",
252
+ "Fuerza mínima de contraseña: Buena (se rechazan contraseñas débiles y muy débiles)"
253
+ ],
254
+ suggestions: [
255
+ "Agregar letras minúsculas (a-z)",
256
+ "Agregar letras mayúsculas (A-Z)",
257
+ "Agregar números (0-9)",
258
+ "Agregar caracteres especiales (!@#$%^&*()_+-=[]{}etc.)",
259
+ "Pruebe una contraseña más larga con más tipos de caracteres",
260
+ "Considere agregar mayúsculas, números o caracteres especiales"
261
+ ],
262
+ strength: {
263
+ very_weak: "Muy débil",
264
+ weak: "Débil",
265
+ good: "Buena",
266
+ strong: "Fuerte",
267
+ very_strong: "Muy fuerte"
268
+ }
269
+ },
270
+
271
+ // Funcionalidad de importar/exportar
272
+ import_export: {
273
+ export: {
274
+ title: "Exportar configuración",
275
+ description_title: "Descripción de la función de exportación:",
276
+ description_items: [
277
+ "Se requiere verificación de contraseña para confirmar su identidad",
278
+ "La exportación guarda un archivo JSON en su directorio principal",
279
+ "El archivo contiene configuraciones de API en texto plano para migración fácil",
280
+ "El archivo se abrirá automáticamente después de la exportación"
281
+ ],
282
+ success: "Configuración exportada a: {0}",
283
+ success_title: "¡Configuración exportada exitosamente!",
284
+ details_title: "Detalles de exportación:",
285
+ details_file_saved: "Archivo guardado en: {0}",
286
+ details_export_dir: "Directorio de exportación: {0}",
287
+ details_filename: "Nombre del archivo: {0}",
288
+ opening_file: "Abriendo archivo exportado con aplicación predeterminada...",
289
+ tips_title: "Consejos:",
290
+ tips_items: [
291
+ "Comparta este archivo para migrar configuraciones a otras máquinas",
292
+ "Mantenga el archivo seguro ya que contiene sus configuraciones de API"
293
+ ],
294
+ password_required: "Se requiere verificación de contraseña para exportación",
295
+ enter_password_prompt: "Ingrese la contraseña para verificar identidad: ",
296
+ verification_failed: "Verificación de contraseña fallida",
297
+ cannot_proceed: "No se puede proceder con la exportación",
298
+ press_return: "Presione cualquier tecla para volver..."
299
+ },
300
+ import: {
301
+ title: "Importar configuración",
302
+ success: "Importación completada: {0} API importadas, {1} omitidas",
303
+ password_required: "Se requiere verificación de contraseña para importación",
304
+ file_prompt: "Ingrese la ruta completa al archivo de configuración:",
305
+ processing: "Procesando archivo de importación...",
306
+ validating_file: "Validando archivo de configuración...",
307
+ verification_failed: "Verificación de contraseña fallida",
308
+ cannot_proceed: "No se puede proceder con la importación",
309
+ press_return: "Presione cualquier tecla para volver..."
310
+ }
311
+ },
312
+
313
+ // Navegación e interfaz de usuario
314
+ navigation: {
315
+ use_arrows: "Use las teclas de flecha ↑↓ para navegar, Enter para seleccionar, doble-tap Ctrl+C para salir",
316
+ use_arrows_esc: "Use ↑↓ para navegar, Enter para {0}, ESC para volver al menú principal",
317
+ use_number_keys: "Use las teclas numéricas para seleccionar:",
318
+ currently_active: "API actualmente activa",
319
+ select_action: "Seleccionar una acción:",
320
+ no_options: "No hay opciones disponibles",
321
+ enter_choice: "Ingrese su elección ({0}, o cualquier otra tecla para volver al menú principal):",
322
+ arrow_keys_not_available: "Teclas de flecha no disponibles. Ingrese número de selección (1-{0}):",
323
+ enter_choice_prompt: "[>] Ingrese su elección (1-2, o cualquier otra tecla para volver al menú principal): "
324
+ },
325
+
326
+ // Proceso de lanzamiento
327
+ launch: {
328
+ starting: "Iniciando Claude Code...",
329
+ command: "Comando: {0}",
330
+ run_in_terminal: "Claude se ejecutará en la terminal actual.",
331
+ launcher_exit: "El lanzador saldrá para transferir control a Claude.",
332
+ no_active_api: "No hay API de terceros activa",
333
+ no_active_api_desc: "Actualmente no hay API de terceros activa.",
334
+ add_configure_first: "Por favor, primero agregue y configure una API, o cambie a una existente.",
335
+ press_key_return: "Presione cualquier tecla para volver al menú principal...",
336
+ environment_variables: "Variables de entorno:",
337
+ using_third_party_api: "Usando configuración de API de terceros",
338
+ deepseek_optimizations: "Optimizaciones DeepSeek habilitadas:",
339
+ extended_timeout: "Tiempo de espera extendido (600s)",
340
+ non_essential_disabled: "Tráfico no esencial deshabilitado",
341
+ press_key_return: "Presione cualquier tecla para volver al menú principal..."
342
+ },
343
+
344
+ // Mensajes adicionales de interfaz de usuario
345
+ ui: {
346
+ general: {
347
+ after_skipping_password_setup: "Después de omitir la configuración de contraseña:",
348
+ file_path_empty: "La ruta del archivo no puede estar vacía",
349
+ max_attempts_import_cancelled: "Número máximo de intentos alcanzado. Importación cancelada.",
350
+ max_attempts_import_failed: "Número máximo de intentos alcanzado. Importación fallida.",
351
+ check_file_path_json: "💡 Por favor verifique la ruta del archivo y asegúrese de que sea un archivo JSON válido",
352
+ launcher_version: "Claude Launcher v2.0.0",
353
+ press_key_return_menu: "Presione cualquier tecla para volver al menú...",
354
+ add_apis_first: "Necesita agregar algunas API primero.",
355
+ press_any_key_continue: "Presione cualquier tecla para continuar...",
356
+ currently_active_api: "API actualmente activa:",
357
+ confirm_delete_api: "¿Está seguro de que desea eliminar esta configuración de API?",
358
+ action_cannot_undone: "¡Esta acción no se puede deshacer!",
359
+ type_exit_cancel: "Escriba \"exit\" en cualquier prompt para cancelar",
360
+ type_exit_cancel_setup: "Escriba \"exit\" para cancelar la configuración",
361
+ press_y_confirm: "Presione Y para confirmar, cualquier otra tecla para cancelar...",
362
+ max_attempts_password_failed: "Número máximo de intentos alcanzado. Configuración de contraseña fallida.",
363
+ passwords_mismatch: "Las contraseñas no coinciden, por favor inténtelo de nuevo",
364
+ password_skip_consequences: [
365
+ "La funcionalidad de importar/exportar se deshabilitará permanentemente",
366
+ "No se pueden respaldar o migrar configuraciones de API",
367
+ "Esta decisión no se puede deshacer"
368
+ ],
369
+ import_function_description: "Descripción de la función de importación:",
370
+ import_description_items: [
371
+ "La importación lee un archivo JSON desde la ruta de archivo especificada",
372
+ "Los datos de importación se fusionarán con la configuración actual (sin sobrescribir)",
373
+ "Las configuraciones de API duplicadas se omitirán automáticamente"
374
+ ],
375
+ file_input_required: "Se requiere entrada de archivo:",
376
+ file_input_items: [
377
+ "Proporcione la ruta completa a su archivo de configuración JSON",
378
+ "El archivo debe ser un archivo JSON válido con extensión .json",
379
+ "El archivo será validado antes de la importación"
380
+ ],
381
+ validating_file: "🔍 Validando archivo...",
382
+ file_validation_successful: "✓ Validación de archivo exitosa",
383
+ import_successful: "✓ ¡Configuración importada exitosamente!",
384
+ import_statistics: "📊 Estadísticas de importación:",
385
+ import_stats_items: [
386
+ "Importado exitosamente: {0} configuraciones de API",
387
+ "Duplicados omitidos: {1} configuraciones de API",
388
+ "Configuración fusionada con datos existentes",
389
+ "Archivo fuente: {0}"
390
+ ],
391
+ import_tips: [
392
+ "💡 Por favor verifique el contenido y formato del archivo"
393
+ ],
394
+ goodbye: "👋 ¡Adiós!",
395
+ configured_apis: "API configuradas:",
396
+ press_continue_provider_selection: "Presione cualquier tecla para continuar a la selección del proveedor...",
397
+
398
+ // Secciones de configuración de API
399
+ add_new_api_title: "🔗 Agregar nueva configuración de API de terceros",
400
+ security_privacy_info: "🔒 Información de seguridad y privacidad:",
401
+ security_items: [
402
+ "Todas las claves de API se cifran usando cifrado AES-256-CBC",
403
+ "La clave de cifrado se deriva de datos específicos de la máquina",
404
+ "Sus claves de API se almacenan localmente solo en esta máquina",
405
+ "Las claves no se pueden descifrar en otras máquinas",
406
+ "No se envían datos a servidores externos excepto sus llamadas de API"
407
+ ],
408
+ configuration_tips: "💡 Consejos de configuración:",
409
+ config_tip_items: [
410
+ "URL base: El endpoint de la API (ej. https://api.example.com)",
411
+ "Token de autenticación: Su clave de API o token de autenticación",
412
+ "Modelo: El modelo de IA a usar (ej. claude-3-sonnet-20240229)"
413
+ ],
414
+ all_providers_compatible: "💡 Todos los proveedores listados usan formato de API compatible con Anthropic",
415
+ using_custom_provider: "✓ Usando configuración de proveedor personalizado",
416
+ suggestions: "Sugerencias:",
417
+ current_password_strength: "Fuerza actual de contraseña: {0}",
418
+ enter_json_file_path_attempt: "[>] Ingrese ruta de archivo JSON (intento {0}/{1}): ",
419
+ currently_active_api: "API actualmente activa",
420
+ file_validation_failed: "Validación de archivo fallida: {0}",
421
+ model_name_prompt: "[>] Nombre del modelo: ",
422
+ provider_selection_required: "Por favor seleccione un proveedor (1-{0})",
423
+
424
+ // Selección de proveedor
425
+ compatible_providers_title: "📋 Proveedores de API compatibles con Claude Code:",
426
+ provider_anthropic: "🎯 Anthropic (Oficial)",
427
+ provider_anthropic_desc: "API oficial de Anthropic - Totalmente compatible",
428
+ provider_moonshot: "✅ Moonshot AI (Kimi-K2)",
429
+ provider_moonshot_desc: "Moonshot AI - Proporciona API compatible con Anthropic",
430
+ provider_deepseek: "✅ DeepSeek (DeepSeek V3/V3.1)",
431
+ provider_deepseek_desc: "DeepSeek AI - Endpoint compatible con Anthropic",
432
+ provider_custom: "✅ API personalizada compatible con Anthropic",
433
+ provider_custom_desc: "Servidor personalizado con API compatible con Anthropic",
434
+ select_provider_prompt: "[>] Seleccionar proveedor (1-{0}) o presione ESC para cancelar: ",
435
+
436
+ // Configuración del proveedor
437
+ selected_provider: "✓ Seleccionado: {0}",
438
+ recommended_base_url: "URL base recomendada: {0}",
439
+ reference_base_url: "URL base de referencia: {0}",
440
+ api_base_url_prompt: "[>] URL base de la API: ",
441
+ base_url_required: "Se requiere URL base para proveedores personalizados",
442
+ press_enter_default_url: "[>] Presione Enter para usar predeterminado o ingrese URL personalizada: ",
443
+ expected_format: "Formato esperado: {0}",
444
+ auth_token_prompt: "[>] Token de autenticación: ",
445
+ edit_url_hint: "(Puede editar la URL anterior escribiendo)",
446
+
447
+ // Selección de modelo
448
+ suggested_models: "Modelos sugeridos:",
449
+ select_model_prompt: "[>] Seleccionar modelo (1-{0}) o ingresar personalizado: ",
450
+ invalid_model_selection: "❌ Selección inválida. Por favor ingrese un número entre 1-{0} o un nombre de modelo personalizado",
451
+ invalid_provider_selection: "❌ Selección inválida. Por favor ingrese un número entre 1-{0} o presione Enter para personalizado",
452
+ invalid_provider_number: "❌ Selección inválida. Por favor ingrese un número entre 1-{0}",
453
+ api_name_prompt: "[>] Nombre de API (opcional, para identificación): ",
454
+ replace_url_model_note: "Nota: Reemplace URL y modelo con los detalles de su servidor real",
455
+
456
+ // Gestión de API
457
+ select_api_remove: "[!] Seleccionar API para eliminar:",
458
+ navigate_remove_instructions: "Use ↑↓ para navegar, Enter para eliminar, ESC para volver al menú principal",
459
+ confirm_deletion_prompt: "[?] Confirmar eliminación (y/N): ",
460
+ navigate_activate_instructions: "Use ↑↓ para navegar, Enter para activar, ESC para volver al menú principal",
461
+ summary: "Resumen:",
462
+
463
+ // Opciones de confirmación de omisión
464
+ confirm_skip_option: "→ Confirmo omitir",
465
+ reconsider_option: "Reconsiderar, volver a la configuración de contraseña",
466
+
467
+ // Detalles de requisitos de contraseña
468
+ password_requirements_title: "🔒 Requisitos de contraseña:",
469
+ password_requirements_list: [
470
+ "Al menos 6 caracteres de longitud",
471
+ "Al menos 2 de los siguientes tipos de caracteres:",
472
+ " • Letras mayúsculas (A-Z)",
473
+ " • Letras minúsculas (a-z)",
474
+ " • Números (0-9)",
475
+ " • Caracteres especiales (!@#$%^&*()_+-=[]{}etc.)",
476
+ "Solo caracteres ASCII (sin espacios o caracteres inusuales)",
477
+ "No puede contener patrones débiles comunes",
478
+ "Fuerza mínima de contraseña: Buena (se rechazan contraseñas débiles y muy débiles)"
479
+ ],
480
+ example_strong_password: "Ejemplo de contraseña fuerte: {0}",
481
+ new_password_attempt: "Nueva contraseña (intento {0}/{1}): "
482
+ }
483
+ },
484
+
485
+ // Estadísticas e información
486
+ statistics: {
487
+ title: "Estadísticas de API",
488
+ total_apis: "Total de API: {0}",
489
+ active_api: "API activa: {0}",
490
+ most_used: "API más usada: {0}",
491
+ total_usage: "Uso total: {0} veces",
492
+ no_usage: "No hay uso registrado"
493
+ },
494
+
495
+ // Actualizaciones de versión
496
+ version: {
497
+ update_available: "Nueva versión disponible: v{0} (actual: v{1})",
498
+ install_command: "Ejecute npm update -g @kikkimo/claude-launcher para actualizar",
499
+ checking_updates: "Verificando actualizaciones...",
500
+ update_failed: "Error al verificar actualizaciones",
501
+ up_to_date: "Ya está actualizado",
502
+ skip_version: "Omitir esta versión",
503
+ current_version_info: "Actual: v{0} | npm última: v{1}",
504
+ npm_package_url: "paquete npm: {0}",
505
+ always_show_mode: "Modo de visualización de versión: Siempre mostrar",
506
+ update_only_mode: "Modo de visualización de versión: Solo actualizaciones"
507
+ },
508
+
509
+ // Función de verificación de versión
510
+ version_check: {
511
+ title: "Verificación de actualización de versión",
512
+ checking: "Verificando registro npm...",
513
+ please_wait: "Por favor espere",
514
+ error: "Verificación fallida: {0}",
515
+ error_tips: "Consejos: Verifique la conexión de red o intente más tarde",
516
+ update_available: "🎉 ¡Nueva versión encontrada!",
517
+ current_version: "Versión actual: v{0}",
518
+ latest_version: "Última versión: v{0}",
519
+ update_command: "Comando de actualización: npm update -g @kikkimo/claude-launcher",
520
+ up_to_date: "Está usando la última versión",
521
+ unexpected_error: "Error inesperado ocurrió durante la verificación"
522
+ }
523
+ };