/
mcniki
/
CodeContext
Обзор
Документация
Войти
/
mcniki
/
CodeContext
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/i18n/es.json
463 строки
31 KB
Gorobets Nikita
v1.28.0: flatten all service/use-case classes to free functions, delete FileService watcher and dead UpdaterService pass, i18n for sidebar hide-tab, fix freezing status
26 июн 2026, 15:21
26 июн 2026, 15:21
7fc7163
Код
Авторство
О чём код?
{ "main.cli_mode": "Modo CLI", "main.path": "Ruta al proyecto", "main.patch": "Archivo JSON patch", "main.mode": "Modo de procesamiento", "main.install_context": "Instalar menú contextual", "main.remove_context": "Eliminar menú contextual", "main.minify": "Minificar salida", "main.skeleton": "Modo esqueleto", "main.format": "Formato de salida", "main.dry_run": "Simulación sin guardar", "main.silent": "Modo silencioso", "main.stdout": "Salida a stdout", "main.fail_if_exceeds": "Fallar si se excede el límite de tokens", "main.sent_to_existing": "📤 Ruta enviada a la instancia existente de la aplicación", "main_window.title": "CodeContext AI", "main_window.tab.file_tree": "📂 Archivos", "main_window.tab.analytics": "📊 Analíticas", "main_window.command.copy_to_clipboard": "📋 Copiar al portapapeles", "main_window.command.open_in_editor": "📝 Abrir en el editor", "main_window.command.preview": "👁 Vista previa", "main_window.command.send_to_chat": "💬 Enviar al chat", "main_window.command.save_to_file": "💾 Guardar en archivo", "main_window.command.toggle_minify": "Activar/Desactivar minificación", "main_window.command.toggle_skeleton": "Activar/Desactivar esqueleto", "main_window.command.toggle_mermaid": "Activar/Desactivar Mermaid", "main_window.command.clear_workspace": "🗑 Limpiar espacio de trabajo", "main_window.command.apply_json_patch": "🔧 Aplicar JSON Patch", "main_window.command.toggle_theme": "🎨 Cambiar tema", "main_window.command.check_updates": "🔄 Buscar actualizaciones", "main_window.save_file.title": "Guardar archivo", "dialogs.ai_chat_title": "Chat IA (CodeContext)", "dialogs.chat.title": "Chat IA", "dialogs.chat.placeholder": "Haz una pregunta sobre el código...", "dialogs.chat.send": "Enviar", "dialogs.chat.system_loaded": "📎 Contexto del sistema cargado. Puedes hacer una pregunta.", "dialogs.chat.you_label": "Tú", "dialogs.chat.waiting": "⏳ Esperando...", "dialogs.preview.title": "👁 Vista previa", "dialogs.preview.tab_prompt": "📝 Mensaje", "dialogs.preview.files_in_prompt": "📄 Archivos en el prompt:", "dialogs.preview.copy_all": "📋 Copiar todo", "dialogs.preview.copy_file": "📄 Copiar archivo", "dialogs.preview.tab_diff": "📊 Diferencia", "dialogs.preview.select_file": "Archivo:", "dialogs.preview.savings_initial": "📊 Comparar versión original y comprimida", "dialogs.preview.savings": "Ahorro: {original} → {processed} tokens ({percent:.1f}%)", "dialogs.bug_report.title": "Informe de error", "dialogs.bug_report.description": "Describe el error que encontraste:", "dialogs.bug_report.placeholder": "Pasos para reproducir, comportamiento esperado, etc...", "dialogs.bug_report.logs_label": "Incluir registros:", "dialogs.bug_report.logs_today": "Registros de hoy (Recomendado)", "dialogs.bug_report.logs_all": "Todos los registros (últimas 500 líneas)", "dialogs.bug_report.logs_none": "No incluir registros", "dialogs.bug_report.send": "Copiar y abrir GitHub", "dialogs.bug_report.empty_desc": "Por favor describe el error.", "dialogs.bug_report.copied_title": "Copiado al portapapeles", "dialogs.bug_report.copied_msg": "Plantilla de Issue copiada. Pégala en el cuerpo del Issue de GitHub.", "dialogs.clipboard_error": "❌ Error de portapapeles: {error}", "sidebar.bug_report.tooltip": "¿Encontraste un error? Enviar a Issue", "dialogs.tour.title": "🎓 Tour interactivo", "dialogs.tour.prev": "← Atrás", "dialogs.tour.next": "Siguiente ➡", "dialogs.tour.finish": "🎉 Finalizar", "dialogs.edit_folder.title": "✏️ Editar carpeta", "dialogs.edit_folder.ok": "✅ Aceptar", "dialogs.json_patch.title": "🔧 JSON Patch", "dialogs.json_patch.instruction": "Ingresa el JSON patch como una lista de acciones:", "dialogs.json_patch.cancel": "Cancelar", "dialogs.json_patch.apply": "✅ Aplicar", "dialogs.diff.title": "🛡 Revisión segura de Diff", "dialogs.diff.check_llm": "🔍 Verificar con LLM", "dialogs.diff.verdict_placeholder": "Veredicto...", "dialogs.diff.suggestion_label": "💡 Sugerencia alternativa del LLM:", "dialogs.diff.accept_suggestion": "✅ Aceptar corrección", "dialogs.diff.reject_suggestion": "❌ Rechazar", "dialogs.diff.cancel": "Cancelar", "dialogs.diff.save_selected": "💾 Guardar seleccionado", "dialogs.diff.patch_error": "❌ Error de patch", "dialogs.diff.checking": "🔍 Verificando...", "dialogs.diff.sending_request": "Enviando solicitud al LLM...", "dialogs.diff.verdict": "Estado: {status}\nRazón: {reason}", "dialogs.diff.check_again": "🔍 Verificar de nuevo", "dialogs.diff.updated_by_ai": " [Actualizado por IA]", "dialogs.diff.suggestion_applied": "✅ Sugerencia aplicada", "dialogs.diff.suggestion_rejected": "❌ Sugerencia rechazada", "dialogs.update.title": "🔄 Actualizar", "dialogs.update.checking": "🔍 Verificando actualización {version}...", "dialogs.update.cancel": "Cancelar", "dialogs.update.available": "🎉 Actualización {version} disponible", "dialogs.update.download": "⬇️ Descargar", "dialogs.update.later": "Después", "dialogs.update.latest": "✅ Tienes la última versión", "dialogs.update.close": "Cerrar", "dialogs.update.error": "❌ Error al verificar actualización", "dialogs.update.downloading": "⬇️ Descargando...", "dialogs.update.installing": "⚙️ Instalando actualización...", "dialogs.update.install_notes": "Por favor espera, la actualización se está instalando...", "dialogs.command_palette.placeholder": "🔍 Buscar comando...", "dialogs.ui_customization.title": "⚙️ Personalización de la interfaz", "dialogs.ui_customization.visible_tabs": "Pestañas visibles:", "dialogs.ui_customization.tab_sources": "📂 Fuentes", "dialogs.ui_customization.tab_filters": "🔧 Filtros", "dialogs.ui_customization.tab_prompts": "📝 Mensajes", "dialogs.ui_customization.tab_llm_os": "🤖 LLM y SO", "dialogs.ui_customization.tab_appearance": "🎨 Apariencia", "dialogs.ui_customization.visible_actions": "Acciones visibles:", "dialogs.ui_customization.action_preview": "👁 Vista previa", "dialogs.ui_customization.action_clipboard": "📋 Portapapeles", "dialogs.ui_customization.action_chat": "💬 Conversar", "dialogs.ui_customization.action_editor": "📝 Editor", "dialogs.ui_customization.action_file": "💾 Archivo", "dialogs.ui_customization.visible_checkboxes": "Opciones visibles:", "dialogs.ui_customization.checkbox_dedup": "☑ Deduplicar", "dialogs.ui_customization.checkbox_aggressive": "☑ Agresivo", "dialogs.ui_customization.checkbox_checkpoints": "☑ Puntos de control", "dialogs.ui_customization.checkbox_watch": "☑ Vigilancia auto.", "dialogs.ui_customization.cancel": "Cancelar", "dialogs.ui_customization.save": "💾 Guardar", "sidebar.title": "CodeContext AI", "sidebar.tab.sources": "📂 Fuentes", "sidebar.tab.filters": "🔧 Filtros", "sidebar.tab.prompts": "📝 Mensajes", "sidebar.tab.llm_os": "🤖 LLM y SO", "sidebar.tab.appearance": "🎨 Apariencia", "sidebar.ui_settings.tooltip": "⚙️ Configuración de interfaz", "sidebar.tour.button": "🎓 Recorrido", "sidebar.version.label": "v{version}", "sidebar.update.button": "🔄", "sidebar.sources.add_folder": "📂 Agregar carpeta", "sidebar.sources.add_github": "🐙 GitHub", "sidebar.sources.github_tooltip": "🐙 Clonar repositorio de GitHub", "sidebar.sources.git_only": "Solo archivos modificados (Git)", "sidebar.sources.respect_gitignore": "Respetar .gitignore", "sidebar.sources.scan_files": "🔍 Escanear", "sidebar.sources.save_config": "💾 Guardar configuración", "sidebar.sources.clear_project": "🗑 Limpiar proyecto", "sidebar.filters.save_preset_tooltip": "💾 Guardar preset", "sidebar.filters.delete_preset_tooltip": "🗑 Eliminar preset", "sidebar.filters.preset_label": "🎯 Preajuste:", "sidebar.filters.extensions_label": "📄 Extensiones de archivo:", "sidebar.filters.extensions_placeholder": ".py\n.js\n.ts\n...", "sidebar.filters.ignore_paths_label": "🚫 Rutas ignoradas:", "sidebar.filters.ignore_paths_placeholder": ".git\nnode_modules\n__pycache__\n...", "sidebar.filters.include_tree": "🌳 Incluir árbol del proyecto", "sidebar.filters.include_deps": "🔗 Incluir grafo de dependencias", "sidebar.filters.include_mermaid": "📊 Incluir diagrama Mermaid", "sidebar.prompts.save_preset_tooltip": "💾 Guardar preset de prompt", "sidebar.prompts.delete_preset_tooltip": "🗑 Eliminar preset de prompt", "sidebar.prompts.preset_label": "🎯 Preajuste:", "sidebar.prompts.system_prompt_label": "📝 Prompt del sistema:", "sidebar.prompts.apply_patch": "🔧 Aplicar JSON Patch", "sidebar.llm_os.llm_validator": "🤖 Validador LLM", "sidebar.llm_os.enable_llm_check": "✅ Habilitar verificación LLM", "sidebar.llm_os.url_label": "URL:", "sidebar.llm_os.key_label": "Clave API:", "sidebar.llm_os.model_label": "Modelo:", "sidebar.llm_os.ollama_preset": "⚡ Ollama", "sidebar.llm_os.lmstudio_preset": "💻 LM Studio", "sidebar.llm_os.os_integration": "🖥 Integración con {os_name}", "sidebar.llm_os.install_context_menu": "📋 Instalar menú contextual", "sidebar.llm_os.remove_context_menu": "🗑 Eliminar menú contextual", "sidebar.llm_os.cli_global": "💻 CLI global", "sidebar.llm_os.install_cli": "⚙️ Instalar CLI", "sidebar.llm_os.remove_cli": "🗑 Eliminar CLI", "sidebar.llm_os.editor_placeholder": "code --wait", "sidebar.llm_os.editor_label": "Editor externo:", "sidebar.llm_os.update_settings": "🔄 Actualizar configuración", "sidebar.llm_os.prerelease": "🧪 Recibir versiones preliminares", "sidebar.appearance.theme_label": "🎨 Tema:", "sidebar.appearance.mode_label": "🌙 Modo:", "sidebar.appearance.language_label": "🌐 Idioma:", "sidebar.appearance.open_themes_folder": "📂 Abrir carpeta de temas", "sidebar.appearance.import_theme": "📥 Importar tema", "sidebar.add_folder.title": "📂 Seleccionar carpeta del proyecto", "sidebar.add_github.prompt": "Ingresa la URL del repositorio de GitHub (o enlace de PR):", "sidebar.add_github.title": "🐙 GitHub", "sidebar.add_github.save_title": "💾 Guardar repositorio", "sidebar.add_github.save_prompt": "¿Quieres guardar el repositorio localmente?", "sidebar.add_github.clone_dialog": "📂 Seleccionar carpeta para clonar", "sidebar.integration.title": "✅ Integración", "sidebar.error.title": "❌ Error", "sidebar.cli_integration.title": "✅ Integración CLI", "sidebar.patch_error.title": "❌ Error de patch", "sidebar.patch_error.message": "No se seleccionaron patches para aplicar.", "sidebar.new_preset.title": "💾 Nuevo preset", "sidebar.new_preset.prompt": "Ingresa el nombre del preset:", "sidebar.new_preset.name_taken": "Ya existe un preset con ese nombre.", "sidebar.delete_preset.system_preset": "No se puede eliminar un preset del sistema.", "sidebar.new_prompt.title": "💾 Nuevo preset de prompt", "sidebar.new_prompt.prompt": "Ingresa el nombre del preset de prompt:", "sidebar.new_prompt.name_taken": "Ya existe un preset con ese nombre.", "sidebar.delete_prompt.system_preset": "No se puede eliminar un preset del sistema.", "sidebar.open_folder.error": "No se pudo abrir la carpeta: {error}", "sidebar.import_theme.title": "📥 Importar tema", "sidebar.success.title": "✅ Éxito", "sidebar.import_theme.success": "Tema \"{filename}\" importado exitosamente.", "sidebar.import_theme.error": "Error al importar el tema: {error}", "action_panel.minify": "Minificar", "action_panel.chk_minify": "Minificar", "action_panel.no_comments": "Sin comentarios", "action_panel.chk_comments": "Sin comentarios", "action_panel.no_secrets": "Sin secretos", "action_panel.chk_secrets": "Sin secretos", "action_panel.skeleton": "Esqueleto", "action_panel.chk_skeleton": "Esqueleto", "action_panel.template.tooltip": "📁 Seleccionar plantilla Jinja2", "action_panel.preview.button": "👁 Vista previa", "action_panel.clipboard.button": "📋 Copiar", "action_panel.chat.button": "💬 Conversar", "action_panel.editor.button": "📝 Editor", "action_panel.editor.tooltip": "📝 Abrir en el editor", "action_panel.file.button": "💾 Archivo", "action_panel.chk_dedup": "Deduplicar", "action_panel.chk_aggressive": "Agresivo", "action_panel.chk_checkpoints": "Puntos control", "action_panel.chk_watch": "Auto-observar", "action_panel.template.dialog_title": "Seleccionar plantilla Jinja2", "empty_state.drop.title": "📂 Suelta una carpeta aquí", "empty_state.drop.subtitle": "o haz clic en el botón de abajo", "empty_state.browse.button": "📂 Examinar carpeta", "empty_state.recent.title": "🕐 Proyectos recientes", "empty_state.browse.dialog_title": "📂 Seleccionar carpeta del proyecto", "status_bar.idle": "Inactivo", "status_bar.tokens_count": "Tokens: {tokens}", "status_bar.tokens": "Tokens: {tokens}", "status_bar.local_model": " (modelo local)", "analytics_panel.header.file": "Archivo", "analytics_panel.header.tokens": "Tokens", "analytics_panel.header.weight": "Peso", "file_tree.search.placeholder": "🔍 Buscar archivo...", "file_tree.expand_all": "▶ Expandir todo", "file_tree.collapse_all": "▼ Colapsar todo", "file_tree.exclude_tests": "🧪 Excluir tests", "file_tree.git_modified": "🔵 Modificado por Git", "file_tree.icon.dependency": "📦", "file_tree.icon.huge": "🔴", "file_tree.icon.heavy": "🟠", "file_tree.context.copy_no_deps": "📋 Copiar (sin dependencias)", "file_tree.context.copy_shallow": "📋 Copiar (superficial)", "file_tree.context.copy_deep": "📋 Copiar (profundo)", "file_tree.context.select_py": "🐍 Solo Python", "file_tree.context.select_js": "🌐 Solo JS/TS", "file_tree.context.exclude_heavy": "🚫 Excluir pesados", "file_tree.context.exclude_all": "🚫 Excluir todo", "folder_list.no_sources": "📂 No se agregaron carpetas", "folder_list.edit.tooltip": "✏️ Editar ruta", "folder_list.delete.tooltip": "🗑 Eliminar", "main_controller.clear_temp_files": "🧹 Limpiando carpetas temporales...", "main_controller.choose_folders": "⚠️ Selecciona al menos una carpeta.", "main_controller.choose_folders_or_url": "⚠️ Selecciona una carpeta o proporciona una URL.", "main_controller.read_file_error": "❌ Error al leer archivo: {target_file}", "main_controller.use_copy_deps_use_case": "📋 Copiando con dependencias (modo: {mode})...", "main_controller.no_folders_config": "⚠️ No hay carpetas seleccionadas para guardar configuración.", "main_controller.scan_first": "⚠️ Por favor, escanea primero.", "main_controller.no_files_in_log": "⚠️ Ningún archivo coincide con el log.", "main_controller.files_matched": "✅ Archivos coincidentes: {count}", "main_controller.copied_to_clipboard": "📋 Copiado al portapapeles", "main_controller.copied_tokens": "📋 Copiados {tokens} tokens", "main_controller.clipboard_error": "❌ Error de copia: {error}", "main_controller.clipboard_error_generic": "❌ Error al copiar al portapapeles", "main_controller.pr_filter_applied": "🔍 Filtro de PR aplicado: {count} archivos", "cli_controller.starting": "🚀 Iniciando CLI (modo: {mode})", "cli_controller.target": "🎯 Destino: {target_path}", "cli_controller.critical_error": "❌ Error crítico: {exc}", "cli_controller.safety_patch_mode": "🛡 Modo seguro de aplicación de patches", "cli_controller.patch_target": "📂 Destino: {target_path}", "cli_controller.patch_file": "📄 Archivo patch: {patch_file}", "cli_controller.patch_file_not_found": "❌ Archivo patch no encontrado: {patch_file}", "cli_controller.patches_invalid": "❌ No se pudieron analizar los patches.", "cli_controller.patch_skipped": "⏭ Omitido: {file_target} — {msg}", "cli_controller.changes_for": "📋 Cambios para {file_target} ({action}):", "cli_controller.apply_prompt": "¿Aplicar? [Y/n/q]: ", "cli_controller.skipped": "⏭ Omitido", "cli_controller.cancelled": "🚫 Cancelado por el usuario", "cli_controller.invalid_choice": "❌ Entrada inválida. Ingresa y/n/q.", "cli_controller.no_patches": "❌ No hay patches para aplicar.", "cli_controller.applying_patches": "⚙️ Aplicando {count} patches...", "cli_controller.applied_count": "✅ Aplicados: {applied}", "cli_controller.no_changes": "ℹ️ Sin cambios.", "cli_controller.no_files_found": "❌ No se encontraron archivos.", "cli_controller.token_limit_exceeded": "❌ Límite de tokens excedido: {tokens} / {limit}", "cli_controller.dry_run_header": "📋 Simulación", "cli_controller.files_found": "📄 Archivos encontrados: {count}", "cli_controller.estimated_volume": "📊 Volumen estimado: {tokens} tokens", "cli_controller.fetching_prices": "💰 Obteniendo precios...", "cli_controller.cost_estimate": "💰 Estimación de costo ({model}): ${cost:.6f}", "cli_controller.free_or_local": "💰 El modelo {model} es gratuito o local", "cli_controller.project_copied": "📋 Copiados {tokens} tokens", "cli_controller.path_not_found": "❌ Ruta no encontrada: {path}", "cli_controller.window_closing": "⏳ La ventana se cerrará en 3 segundos...", "store.status.done": "✅ Hecho", "store.status.scan_error": "❌ Error de escaneo: {error}", "store.status.scan_error_log": "Error: {error}", "store.status.workspace_cleared": "🧹 Espacio de trabajo limpiado", "store.status.repo_loaded": "✅ Repositorio cargado", "store.status.clone_error": "❌ Error de clonación", "store.status.files_found": "📄 Archivos encontrados: {count}", "store.status.error_with_msg": "❌ Error: {error_msg}", "state.status.ready": "✅ Listo", "process_use_case.workflow.preparing": "⚙️ Preparando...", "process_use_case.workflow.no_files": "⚠️ No hay archivos para procesar.", "process_use_case.workflow.reading": "📖 Leyendo {count} archivos...", "process_use_case.workflow.analyzing": "🔍 Analizando dependencias...", "process_use_case.workflow.processing_minifying": "⚙️ Procesando y minificando...", "process_use_case.workflow.formatting": "📝 Formateando...", "process_use_case.workflow.saving": "💾 Guardando...", "process_use_case.workflow.done": "✅ Hecho ({count} tokens)", "process_use_case.workflow.error": "❌ Error: {error}", "process_use_case.export.editor": "📝 Abierto en el editor", "process_use_case.export.chat_loaded": "💬 Cargado en el chat", "process_use_case.export.saved": "💾 Guardado: {path}", "process_use_case.export.pdf_created": "📄 PDF creado: {path}", "patch_use_case.patch.empty": "⚠️ Patch vacío.", "patch_use_case.parsing.parsing_llm": "🔍 Analizando respuesta del LLM...", "patch_use_case.parsing.parse_error": "⚠️ Error de análisis JSON: {error}", "patch_use_case.parsing.no_valid_json": "❌ No se encontró JSON válido.", "patch_use_case.patch.preparing": "⚙️ Preparando {count} patches...", "patch_use_case.patch.applied": "✅ Patches aplicados: {count}", "llm_checker.send.no_url": "⚠️ URL del LLM no configurada.", "llm_checker.check.disabled": "La verificación LLM está deshabilitada en la configuración.", "llm_checker.check.no_url_short": "URL del LLM no configurada", "llm_checker.check.invalid_json": "Respuesta JSON inválida del LLM", "patch_service.prepare.missing_file": "No se especificó archivo para el patch.", "patch_service.prepare.no_folders": "No hay carpetas base para buscar archivos.", "patch_service.prepare.created": "✅ Será creado: {clean_target}", "patch_service.prepare.not_found": "❌ Archivo no encontrado: {file_target}", "patch_service.prepare.will_delete": "⚠️ Será eliminado", "patch_service.prepare.deleted": "✅ Será eliminado: {basename}", "patch_service.prepare.appended": "✅ Datos añadidos a: {basename}", "patch_service.prepare.prepended": "✅ Datos antepuestos a: {basename}", "patch_service.prepare.empty_search": "❌ Consulta de búsqueda vacía.", "patch_service.prepare.search_not_found": "❌ Texto de búsqueda no encontrado.", "patch_service.prepare.replaced": "✅ Reemplazado en: {basename}", "patch_service.prepare.inserted_before": "✅ Insertado antes en: {basename}", "patch_service.prepare.inserted_after": "✅ Insertado después en: {basename}", "patch_service.prepare.unknown_action": "❌ Acción desconocida: {action}", "patch_service.prepare.fuzzy_match": " (coincidencia difusa: {fuzzy_marker:.0%})", "patch_service.apply.error": "❌ Error al aplicar patch a {file_target}: {e}", "output_service.clipboard.linux_install": "Para soporte de portapapeles en Linux, instala: sudo apt install xclip", "output_service.clipboard.copy_error": "Error al copiar al portapapeles: {error}", "output_service.editor.open_error": "No se pudo abrir el editor '{editor_cmd}': {error}", "updater_service.check.no_description": "Sin descripción", "updater_service.check.github_api_error": "Error de API de GitHub (código {code})", "updater_service.check.connection_error": "Error de conexión: {error}", "updater_service.download.not_compiled": "La actualización automática solo está disponible en la versión compilada.", "updater_service.download.no_app_in_archive": "No se encontró .app en el archivo", "updater_service.download.download_failed": "Error de descarga: {error}", "github_service.invalid_url": "URL inválida", "github_use_case.preparing": "Preparando GitHub...", "github_use_case.pr_detected": "🐙 Pull Request detectado. Obteniendo lista de archivos...", "github_use_case.pr_files_count": "Se obtuvieron {count} archivos del PR.", "github_use_case.cloning": "Clonando repositorio...", "github_use_case.cloning_url": "GitHub: clonando {url}", "github_use_case.repo_loaded": "✅ Repositorio cargado: {path}", "github_use_case.github_error": "❌ Error de GitHub: {error}", "updater_use_case.checking": "🔍 Buscando actualizaciones en GitHub (v{version})...", "updater_use_case.connecting": "Conectando al servidor de GitHub. Por favor espera...", "updater_use_case.update_found": "🎉 Nueva versión encontrada: {version}", "updater_use_case.up_to_date": "✅ Tienes la última versión instalada.", "updater_use_case.no_updates": "No se encontraron actualizaciones.\n\nEstás usando la versión más reciente de la aplicación.", "updater_use_case.check_error": "❌ Error al buscar actualización: {error}", "updater_use_case.check_error_notes": "**No se pudo buscar actualizaciones.**\n\nVerifica tu conexión de red o los límites de la API de GitHub.\n\n`{error}`", "updater_use_case.download_starting": "⬇️ Iniciando descarga...", "updater_use_case.download_progress": "Descargando: {percent}%", "updater_use_case.update_installed": "✅ Actualización instalada. Reiniciando...", "updater_use_case.restarting": "Reiniciando...", "updater_use_case.install_error": "❌ Error de instalación: {error}", "updater_use_case.install_error_notes": "**Error al descargar o instalar la actualización.**\n\nReversión completada exitosamente.\n\n`{error}`", "settings_use_case.reset": "Configuración restablecida", "settings_use_case.local_config_applied": "⚙️ Configuración local aplicada desde: {path}", "settings_use_case.config_parse_error": "⚠️ Error de análisis en {path}: {error}", "settings_use_case.config_read_error": "⚠️ No se pudo leer la configuración local: {error}", "settings_use_case.no_folder_selected": "❌ Error: No se seleccionó carpeta de proyecto.", "settings_use_case.config_saved": "✅ Configuración local guardada: {path}", "settings_use_case.config_save_error": "❌ Error al guardar configuración local: {error}", "settings_use_case.workspace_saved": "Espacio de trabajo guardado: {path}", "settings_use_case.workspace_save_error": "Error al guardar espacio de trabajo: {error}", "settings_use_case.workspace_loaded": "Espacio de trabajo cargado: {path}", "settings_use_case.workspace_load_error": "Error al cargar espacio de trabajo: {error}", "scan_use_case.scanning": "Escaneando...", "scan_use_case.scan_started": "Escaneo iniciado...", "scan_use_case.no_files": "⚠️ No se encontraron archivos", "scan_use_case.analyzing": "Analizando tokens y Git...", "scan_use_case.scan_complete": "Escaneo completado", "tour_service.welcome.title": "👋 ¡Bienvenido a CodeContext AI!", "tour_service.welcome.text": "CodeContext AI es una herramienta para analizar tu código. Escanea tu proyecto, recopila contexto y te permite enviarlo a un LLM para análisis, chat o creación de patches.\n\nHaz clic en \"Siguiente\" para conocer las funciones.", "tour_service.folders_pr.title": "📂 Carpetas y PR de GitHub", "tour_service.folders_pr.text": "Agrega carpetas locales mediante el botón \"Agregar carpeta\" o clona un repositorio de GitHub por URL.\n\nLos Pull Requests son compatibles — solo se escanearán los archivos del PR.", "tour_service.filtering.title": "🔧 Filtrado de archivos", "tour_service.filtering.text": "Configura extensiones de archivo, rutas ignoradas y presets de filtrado.\n\nActiva el modo Git para escanear solo archivos modificados.", "tour_service.compression.title": "⚙️ Compresión y minificación", "tour_service.compression.text": "Activa Minify para eliminar espacios extra, \"Sin comentarios\" para eliminar comentarios y \"Sin secretos\" para ocultar claves API.\n\nEl modo esqueleto deja solo los esqueletos de funciones.", "tour_service.architecture.title": "🌳 Arquitectura del proyecto", "tour_service.architecture.text": "Activa el árbol del proyecto, el grafo de dependencias y el diagrama Mermaid para visualizar la arquitectura de tu código.", "tour_service.editor_preview.title": "👁 Vista previa y Diff", "tour_service.editor_preview.text": "Usa \"Vista previa\" para ver el prompt final. La pestaña \"Diff\" muestra una comparación de archivos originales vs procesados.\n\nCopia archivos individuales o todo a la vez.", "tour_service.local_llm.title": "💻 LLMs locales", "tour_service.local_llm.text": "Conecta LLMs locales (Ollama, LM Studio) o APIs en la nube (OpenAI).\n\nEl LLM se usa para validación de patches y chat de código.", "tour_service.ai_chat.title": "💬 Chat con IA", "tour_service.ai_chat.text": "Diálogo de chat con el LLM que incluye automáticamente el contexto completo del proyecto.\n\nHaz preguntas sobre el código, solicita refactorización o generación de código.", "tour_service.patcher.title": "🔧 Parcheador JSON", "tour_service.patcher.text": "Genera un JSON patch a través del LLM y aplícalo a los archivos del proyecto.\n\nAcciones compatibles: reemplazar, crear, eliminar, añadir, anteponer, insertar_antes, insertar_después.", "tour_service.safety_diff.title": "🛡 Revisión segura de Diff", "tour_service.safety_diff.text": "Cada patch pasa por una vista previa de diff. Puedes verificar los cambios a través del LLM.\n\nAcepta o rechaza cambios de forma selectiva.", "tour_service.os_integration.title": "🖥 Integración con el SO", "tour_service.os_integration.text": "Instala el menú contextual (\"CodeContext AI\" al hacer clic derecho en una carpeta) y un CLI global.\n\nWindows: mediante registro. macOS: mediante Automator. Linux: mediante archivos .desktop.", "integration_strategies.windows.elevate_error": "❌ Error al solicitar privilegios de administrador: {exc}", "integration_strategies.windows.admin_required_install": "⚠️ Se requieren privilegios de administrador para instalar el menú contextual. Ejecuta la aplicación como administrador.", "integration_strategies.windows.menu_open_ui": "Abrir CodeContext AI", "integration_strategies.windows.menu_copy_default": "Copiar contexto (predeterminado)", "integration_strategies.windows.menu_copy_deep": "Copiar contexto (profundo)", "integration_strategies.windows.menu_copy_xml": "Copiar contexto (XML)", "integration_strategies.windows.menu_copy_skeleton": "Copiar contexto (esqueleto)", "integration_strategies.windows.install_success": "✅ Menú contextual instalado.", "integration_strategies.windows.install_error": "❌ Error al instalar menú contextual: {error}", "integration_strategies.windows.admin_required_remove": "⚠️ Se requieren privilegios de administrador para eliminar el menú contextual.", "integration_strategies.windows.remove_access_error": "❌ Acceso al registro denegado: {error}", "integration_strategies.windows.remove_registry_error": "❌ Error al eliminar del registro: {error}", "integration_strategies.windows.remove_success": "✅ Menú contextual eliminado.", "integration_strategies.windows.cli_install_success": "✅ CLI instalado globalmente.", "integration_strategies.windows.cli_install_error": "❌ Error al instalar CLI: {error}", "integration_strategies.windows.cli_remove_success": "✅ CLI eliminado.", "integration_strategies.windows.cli_remove_error": "❌ Error al eliminar CLI: {error}", "integration_strategies.linux.menu_open_ui": "Abrir CodeContext AI", "integration_strategies.linux.menu_copy_xml": "Copiar contexto (XML)", "integration_strategies.linux.menu_copy_skeleton": "Copiar contexto (esqueleto)", "integration_strategies.linux.install_success": "✅ Menú contextual instalado.", "integration_strategies.linux.install_error": "❌ Error al instalar menú contextual: {error}", "integration_strategies.linux.remove_success": "✅ Menú contextual eliminado.", "integration_strategies.linux.remove_error": "❌ Error al eliminar menú contextual: {error}", "integration_strategies.linux.cli_install_success": "✅ CLI instalado globalmente.", "integration_strategies.linux.cli_install_error": "❌ Error al instalar CLI: {error}", "integration_strategies.linux.cli_remove_success": "✅ CLI eliminado.", "integration_strategies.linux.cli_remove_error": "❌ Error al eliminar CLI: {error}", "integration_strategies.macos.install_success": "✅ Menú contextual instalado.", "integration_strategies.macos.install_error": "❌ Error al instalar menú contextual: {error}", "integration_strategies.macos.remove_success": "✅ Menú contextual eliminado.", "integration_strategies.macos.remove_error": "❌ Error al eliminar menú contextual: {error}", "formatting.hidden_lines": "... {c_start} líneas idénticas ocultas ...", "dialogs.preview.generating_diff": "Generando diferencias...", "action_panel.plugins.button": "🔌 Plugins", "process_use_case.workflow.writing": "✍️ Escribiendo archivo...", "plugins.approval.title": "🔌 Aprobación del plugin", "plugins.approval.heading": "Nuevo plugin: {name}", "plugins.approval.info": "Este plugin solicita acceso a su proyecto:", "plugins.approval.name": "Nombre:", "plugins.approval.id": "ID:", "plugins.approval.version": "Versión:", "plugins.approval.description": "Descripción:", "plugins.approval.warning": "⚠️ Asegúrese de confiar en la fuente de este plugin. Los plugins tienen acceso al sistema de archivos y a la API de la aplicación.", "plugins.approval.deny": "🚫 Denegar", "plugins.approval.allow": "✅ Permitir", "plugins.install.success": "✅ Plugin instalado.", "plugins.install.error": "❌ Error al instalar el plugin: {error}", "plugins.install.title": "📦 Instalación de dependencias del plugin", "plugins.install.close": "Cerrar", "sidebar.tab.plugins": "🔌 Plugins", "sidebar.plugins.open_folder": "📂 Abrir carpeta de plugins", "sidebar.plugins.restart_required": "⚠️ Reinicio requerido", "sidebar.plugins.restart_msg": "Reinicie la aplicación para aplicar los cambios de los plugins.", "sidebar.hide_tab": "👁 Ocultar pestaña" }