{
  "first_run": {
    "window_title": "EMDS Workbench — Configuración inicial",
    "heading": "Termine de configurar EMDS Workbench",
    "missing_intro": "Faltan estos paquetes de Python en el entorno de Python de QGIS:",
    "explain": "EMDS puede instalarlos ahora en el Python incluido con QGIS. Los paquetes que QGIS ya proporciona no se modifican. Se requiere conexión a internet.",
    "python_label": "Python de QGIS:",
    "command_label": "Comando que se ejecutará:",
    "include_matplotlib": "Instalar también matplotlib (opcional — usado para gráficos de resultados)",
    "btn_install": "Instalar ahora",
    "btn_not_now": "Ahora no",
    "btn_manual": "Mostrar instrucciones manuales",
    "btn_cancel": "Cancelar",
    "btn_close_done": "Cerrar",
    "btn_enable_now": "Activar EMDS ahora",
    "installing": "Instalando — esto puede tardar unos minutos…",
    "step_ensure_pip": "Preparando pip…",
    "step_install": "Instalando paquetes…",
    "step_verify": "Verificando la instalación…",
    "step_resign": "Reparando firmas de bibliotecas (macOS)…",
    "success_enable": "Configuración terminada. EMDS está listo: actívelo ahora o reinicie QGIS.",
    "success_restart": "Configuración terminada. Reinicie QGIS para empezar a usar EMDS Workbench.",
    "failed": "La configuración no terminó. Revise el registro o use las instrucciones manuales.",
    "canceled": "Instalación cancelada.",
    "no_python": "No se pudo localizar el intérprete de Python que usa QGIS. Use las instrucciones manuales.",
    "manual_title": "Instalación manual",
    "manual_body": "Ejecute el script de dependencias para su plataforma y reinicie QGIS:\n{script}\nEn macOS y Linux el script viene en la descarga '-setup', junto al ZIP del plugin. En Windows, descárguelo del sitio web de EMDS.",
    "log_label": "Registro:",
    "menu_finish_setup": "Finalizar configuración de EMDS…",
    "repo_title": "Actualizaciones de EMDS",
    "repo_body": "¿Recibir actualizaciones de EMDS automáticamente a través del Administrador de complementos de QGIS?\n\nEsto añade a QGIS el repositorio de complementos de EMDS para su plataforma:\n{url}\n\nPuede quitarlo en cualquier momento en Complementos → Administrar e instalar complementos → Configuración."
  },
  "language": {
    "label": "Idioma:",
    "en": "EN",
    "es": "ES",
    "de": "DE",
    "pt": "PT"
  },
  "dock": {
    "window_title": "Tareas de análisis EMDS",
    "tab_guided": "Guía paso a paso",
    "tab_advanced": "Avanzado",
    "summary": "Seleccione un elemento del árbol para administrar espacios de trabajo, áreas de estudio, análisis, tareas y resultados.",
    "tree_header": "EMDS Workbench",
    "action_hint": "Sugerencia: haga clic derecho sobre los elementos del árbol para ver más acciones, herramientas de canalización y visores de resultados.",
    "splitter_tooltip": "Arrastre para redimensionar el árbol del Workbench y el panel de acciones.",
    "inspector_name_default": "Selección: nada seleccionado",
    "inspector_type_default": "Tipo: nada seleccionado. Seleccione un espacio de trabajo, área de estudio, análisis, tarea o resultado.",
    "inspector_help_default": "¿Qué puedo hacer ahora? Cree un espacio de trabajo para comenzar.",
    "group_workspaces": "Espacios de trabajo",
    "group_study_areas": "Áreas de estudio",
    "group_analyses": "Análisis",
    "group_pipeline": "Gestión de canalizaciones",
    "group_results": "Resultados",
    "btn_new_project": "Crear espacio de trabajo",
    "tip_new_project": "Cree un nuevo espacio de trabajo EMDS. Los espacios de trabajo se almacenan en su carpeta Documentos/EmdsProjects.",
    "btn_new_assessment": "Crear área de estudio",
    "tip_new_assessment": "Cree un área de estudio bajo el espacio de trabajo seleccionado combinando una capa objetivo con capas de superposición/inclusión.",
    "btn_new_task_workflow": "Crear análisis",
    "tip_new_task_workflow": "Cree un análisis bajo el área de estudio seleccionada y configure su primera tarea.",
    "btn_new_task": "Agregar tarea",
    "tip_new_task": "Agregue una tarea al análisis seleccionado.",
    "btn_launch_workflow_editor": "Iniciar generador de canalizaciones",
    "tip_launch_workflow_editor": "Cree, abra o guarde canalizaciones reutilizables para el espacio de trabajo seleccionado.",
    "btn_edit_selected": "Editar seleccionado",
    "btn_delete_selected": "Eliminar seleccionado",
    "tip_project_edit": "Editar el espacio de trabajo seleccionado.",
    "tip_project_delete": "Eliminar el espacio de trabajo seleccionado.",
    "tip_assessment_edit": "Editar el área de estudio seleccionada.",
    "tip_assessment_delete": "Eliminar el área de estudio seleccionada.",
    "tip_path_edit": "Editar el análisis o tarea seleccionado.",
    "tip_path_delete": "Eliminar el análisis o tarea seleccionado.",
    "btn_open_results": "Abrir resultados",
    "tip_open_results": "Abrir los resultados de la tarea seleccionada en el visor de tabla.",
    "btn_engine_results": "Abrir visor del motor",
    "tip_engine_results": "Abrir el visor de resultados/hotlink específico del motor.",
    "btn_result_chart": "Ver gráfico",
    "tip_result_chart": "Abrir una vista de histograma/gráfico para campos numéricos de resultados.",
    "btn_execution_history": "Historial de ejecución",
    "tip_execution_history": "Revisar ejecuciones para la tarea seleccionada.",
    "btn_show_map": "Mostrar en el mapa",
    "tip_show_map": "Mostrar la capa de resultados seleccionada en el mapa de QGIS.",
    "btn_toggle_visibility": "Alternar visibilidad",
    "tip_toggle_visibility": "Alternar la visibilidad de la capa de resultados seleccionada."
  },
  "tutorials": {
    "open_prefix": "Abrir:",
    "watch_this_step": "Ver este paso",
    "getting_started": "Primeros pasos",
    "create_workspace": "Crear un espacio de trabajo",
    "first_task": "Ejecutar su primera tarea",
    "create_study_area": "Crear un espacio de trabajo y un área de estudio",
    "review_results": "Revisar resultados"
  },
  "guided_state": {
    "name_none": "Ninguno",
    "context_lines": "Espacio de trabajo: {workspace}\nÁrea de estudio: {study}\nAnálisis: {analysis}",
    "status_start": "Estado: comience aquí",
    "status_workspace_ready": "Estado: espacio de trabajo listo",
    "status_study_ready": "Estado: área de estudio lista",
    "status_result_selected": "Estado: resultado seleccionado",
    "status_task_selected": "Estado: tarea seleccionada",
    "status_analysis_ready": "Estado: análisis listo",
    "next_create_workspace": "Cree un nuevo espacio de trabajo EMDS o abra uno existente.",
    "next_create_study": "Cree o seleccione un área de estudio para definir el alcance GIS.",
    "next_create_analysis": "Cree un análisis y configure su primera tarea para esta área de estudio.",
    "next_review_result": "Revise este resultado en una tabla, gráfico o visor de hotlink.",
    "next_run_task": "Ejecute esta tarea o revise cualquier resultado que produzca.",
    "next_add_task": "Agregue una tarea usando un objetivo adecuado para principiantes.",
    "btn_create_workspace": "Crear espacio de trabajo",
    "btn_open_workspace": "Abrir espacio de trabajo",
    "btn_create_study": "Crear área de estudio",
    "btn_select_study": "Seleccionar área de estudio",
    "btn_create_analysis": "Crear análisis",
    "btn_select_analysis": "Seleccionar análisis",
    "btn_select_task": "Seleccionar tarea",
    "btn_view_table": "Ver tabla",
    "btn_show_on_map": "Mostrar en el mapa",
    "btn_run_task": "Ejecutar tarea",
    "btn_view_hotlink": "Ver hotlink",
    "btn_prioritize": "Priorizar elementos (CDP)",
    "btn_assess_conditions": "Evaluar condiciones (NW)",
    "helper_open_workspace_first": "Abra primero un espacio de trabajo",
    "helper_create_study_first": "Cree o seleccione primero un área de estudio",
    "helper_create_analysis_first": "Cree o seleccione primero un análisis",
    "helper_run_task_first": "Ejecute primero una tarea",
    "activity_lines": "Espacio de trabajo actual: {workspace}\nÁrea de estudio actual: {study}\nAnálisis actual: {analysis}\nSiguiente paso sugerido: {next_text}"
  },
  "selection": {
    "inspector_name_selected": "Selección: {name}",
    "inspector_name_none": "Nada seleccionado",
    "inspector_type_selected": "Tipo: {type}. {explanation}",
    "inspector_help_selected": "¿Qué puedo hacer ahora? {hint}",
    "summary_selected": "Haga clic derecho en cualquier elemento del árbol para ver más acciones, incluyendo visores de resultados y herramientas de canalización.",
    "btn_add_subtask": "Agregar subtarea",
    "tip_add_subtask": "Agregue una subtarea que herede la salida de la tarea seleccionada.",
    "btn_engine_netweaver": "Abrir visor NetWeaver",
    "btn_engine_cdp": "Abrir visor CDP"
  },
  "guided": {
    "default_context_no_workspace": "No hay ningún espacio de trabajo abierto.",
    "default_status_start": "Estado: comience aquí",
    "sequence": "Cómo funciona: Crear/Abrir espacio de trabajo -> Crear/Seleccionar área de estudio -> Crear análisis + primera tarea -> Revisar resultado",
    "help_title": "Ayuda / Tutoriales",
    "help_body": "Hay tutoriales breves disponibles mientras trabaja en el modo guiado.",
    "section_next": "Siguiente mejor acción",
    "section_all_ops": "Todas las operaciones EMDS",
    "section_status": "Estado",
    "default_next_text": "Cree un nuevo espacio de trabajo EMDS o abra uno existente.",
    "btn_create_workspace": "Crear espacio de trabajo",
    "btn_open_workspace": "Abrir espacio de trabajo",
    "btn_create_study": "Crear área de estudio",
    "btn_select_study": "Seleccionar área de estudio",
    "btn_create_analysis": "Crear análisis",
    "btn_select_analysis": "Seleccionar análisis",
    "btn_select_task": "Seleccionar tarea",
    "group_workspace": "Espacio de trabajo",
    "group_study_area": "Área de estudio",
    "group_analysis": "Análisis",
    "group_tasks": "Tareas",
    "group_results": "Resultados",
    "btn_assess_conditions": "Evaluar condiciones (NW)",
    "tip_assess_conditions": "Crear una tarea NetWeaver.",
    "btn_prioritize": "Priorizar elementos (CDP)",
    "tip_prioritize": "Crear una tarea de priorización CDP.",
    "btn_compare": "Comparar alternativas",
    "tip_compare": "Crear una tarea MCDA/CDP.",
    "btn_portfolio": "Construir portafolio (LPA)",
    "tip_portfolio": "Crear una tarea de Portafolio/LPA.",
    "btn_view_table": "Ver tabla",
    "btn_view_chart": "Ver gráfico",
    "btn_view_hotlink": "Ver hotlink"
  },
  "create_workspace": {
    "window_title": "Crear espacio de trabajo",
    "hint_title": "Espacio de trabajo",
    "hint_body": "Cree la carpeta del espacio de trabajo EMDS, el almacén de metadatos y el proyecto anfitrión de QGIS. Puede crear áreas de estudio manualmente después de que se abra el espacio de trabajo.",
    "lbl_name": "Nombre del espacio de trabajo:",
    "lbl_description": "Descripción del espacio de trabajo:",
    "lbl_layers": "Capas del espacio de trabajo:",
    "validation_name": "nombre del espacio de trabajo"
  },
  "engines": {
    "netweaver": {
      "label": "NetWeaver",
      "description": "Use NetWeaver cuando tenga un modelo de conocimiento y desee evaluar datos cartográficos frente a lógica ecológica, idoneidad, condición, riesgo u otras proposiciones basadas en reglas."
    },
    "cdp": {
      "label": "Priorización CDP",
      "description": "Use Priorización CDP cuando tenga un modelo CDP y desee clasificar, puntuar o categorizar lugares o alternativas usando criterios, calificaciones y reglas de decisión."
    },
    "portfolio": {
      "label": "Portafolio",
      "description": "Use Portafolio cuando necesite elegir un conjunto de proyectos o acciones bajo restricciones de presupuesto, costo, beneficio, financiación o estrategia."
    }
  },
  "create_benchmark": {
    "window_title": "Crear benchmarks de evaluación",
    "err_title": "Error",
    "err_no_db": "No hay ruta de base de datos configurada.",
    "progress_start": "Iniciando ejecución del benchmark...",
    "btn_cancel": "Cancelar",
    "progress_running": "Ejecutando {method} ({index}/{total})",
    "err_benchmark_title": "Error del benchmark",
    "results_title": "Resultados del benchmark",
    "results_header": "Resultados por método (overlay | escritura | total)\n"
  },
  "create_portfolio": {
    "window_title": "Crear nuevo portafolio",
    "page_details_title": "Detalles del portafolio",
    "page_details_subtitle": "Nombre el portafolio, (opcionalmente) agregue comentarios y elija el campo que identifica de forma única a cada proyecto candidato.",
    "context_group": "Contexto del estudio",
    "lbl_workspace": "Espacio de trabajo",
    "lbl_study": "Estudio",
    "lbl_input_layer": "Capa de entrada",
    "lbl_input_table": "Tabla de entrada",
    "not_set": "(sin definir)",
    "not_used": "(no usado)",
    "unnamed": "(portafolio sin nombre)",
    "row_name": "Nombre del portafolio",
    "name_placeholder": "p. ej. Portafolio de restauración del paisaje",
    "row_comments": "Comentarios",
    "row_unique_field": "Nombre de campo único",
    "run_immediately": "Ejecutar el portafolio al finalizar el asistente",
    "page_costs_title": "Especificar costos y beneficios",
    "page_costs_subtitle": "Elija las columnas numéricas que impulsan la asignación de mochila. Las unidades son etiquetas de formato libre que se muestran en el informe.",
    "row_benefit_field": "Campo de beneficio",
    "row_benefit_units": "Unidades de beneficio",
    "benefit_units_placeholder": "p. ej. Acres, Puntos, Índice",
    "row_cost_field": "Campo de costo",
    "row_cost_units": "Unidades de costo",
    "cost_units_placeholder": "p. ej. $, USD",
    "row_prioritization_field": "Campo de priorización (opcional)",
    "row_prioritization_units": "Unidades de priorización",
    "prioritization_units_placeholder": "p. ej. Puntuación, Rango",
    "prioritization_hint": "El campo de priorización solo se usa en las estrategias de Priorización y Razón Priorización/Costo.",
    "page_budget_title": "Definir presupuesto y estrategia",
    "page_budget_subtitle": "Establezca el presupuesto general y elija cómo el motor debe clasificar a los candidatos al llenar el portafolio de forma codiciosa.",
    "row_budget": "Presupuesto total del portafolio",
    "group_strategy": "Estrategia del portafolio",
    "group_sort_order": "Orden",
    "direction_descending": "Descendente (de mayor a menor) -- tomar primero los mejores",
    "direction_ascending": "Ascendente (de menor a mayor) -- tomar primero los más baratos/peores",
    "page_funding_title": "Asignaciones y mapeo de categorías",
    "page_funding_subtitle": "Establezca el nombre de la asignación predeterminada, divida el presupuesto total entre las secciones de asignaciones y, opcionalmente, mapee códigos de categoría a esas asignaciones.",
    "group_allocation": "Asignación de presupuesto",
    "row_allocation_name": "Nombre de asignación",
    "default_allocation": "Asignación predeterminada",
    "row_overall_budget": "Presupuesto general",
    "row_allocated_total": "Total asignado",
    "group_enabled_buckets": "Asignaciones habilitadas",
    "bucket_hint": "Cada asignación habilitada debe tener un nombre y un monto. Los montos de las asignaciones habilitadas deben coincidir exactamente con el presupuesto general.",
    "bucket_default_name": "Asignación {letter}",
    "checkbox_enabled": "Habilitada",
    "row_bucket_name": "Nombre de asignación",
    "row_bucket_amount": "Monto",
    "group_category_mapping": "Mapeo de categorías",
    "category_hint": "Opcionalmente mapee un campo de categoría a divisiones porcentuales de asignación. Deje esto en blanco si el portafolio usa solo los montos de asignación anteriores.",
    "row_category_field": "Campo de categoría",
    "group_percent": "Porcentajes de asignación por categoría",
    "percent_hint": "Para cada valor de categoría de financiación, ingrese el porcentaje del costo de cada proyecto que se extrae de cada silo. Cada fila debe sumar 100.",
    "btn_add_row": "Agregar fila",
    "btn_remove_row": "Eliminar seleccionada",
    "col_category_code": "Código de categoría",
    "col_pct_a": "% Silo A",
    "col_pct_b": "% Silo B",
    "col_pct_c": "% Silo C",
    "page_summary_title": "Finalizar",
    "page_summary_subtitle": "Revise la configuración del portafolio antes de finalizar.",
    "summary_intro": "Revise {name} antes de finalizar. El método de evaluación seleccionado es {strategy}.",
    "group_mappings": "Asignaciones de columnas",
    "col_mapping": "Asignación",
    "col_value": "Valor",
    "group_budget": "Presupuesto",
    "col_budget_item": "Elemento de presupuesto",
    "group_buckets_summary": "Asignaciones habilitadas",
    "col_bucket": "Asignación",
    "col_name": "Nombre",
    "col_amount": "Monto",
    "group_evaluation": "Método de evaluación",
    "col_method": "Método",
    "bucket_label": "Asignación {letter}",
    "summary_unique_field": "Campo único",
    "summary_benefit_field": "Campo de beneficio",
    "summary_cost_field": "Campo de costo",
    "summary_prioritization_field": "Campo de priorización",
    "summary_method": "Método",
    "summary_sort_order": "Orden",
    "direction_label_ascending": "Ascendente",
    "direction_label_descending": "Descendente",
    "saved_title": "Configuración de portafolio guardada",
    "saved_none_found": "No se encontró configuración de portafolio guardada para este espacio de trabajo y tabla de entrada.",
    "validation_title": "Error de validación",
    "validation_name_required": "Ingrese un nombre de portafolio.",
    "validation_choose_unique": "Elija un campo identificador único.",
    "validation_choose_benefit": "Elija un campo de beneficio.",
    "validation_choose_cost": "Elija un campo de costo.",
    "validation_need_prioritization_field": "La estrategia seleccionada requiere un campo de priorización.",
    "validation_budget_positive": "El presupuesto general debe ser mayor que cero.",
    "validation_select_prio_prev": "Seleccione un campo de priorización en la página anterior para esta estrategia.",
    "validation_enable_bucket": "Habilite al menos una asignación.",
    "validation_name_for_bucket": "Ingrese un nombre para la asignación habilitada {letter}.",
    "validation_bucket_match_budget": "Los montos de las asignaciones habilitadas deben ser exactamente iguales al presupuesto general.",
    "validation_need_category_row": "Agregue al menos una fila de código de categoría o borre el campo de categoría.",
    "validation_percent_sum_100": "Los porcentajes de la categoría '{code}' deben sumar 100 (actualmente {total:g})."
  },
  "create_assessment": {
    "window_title": "Crear área de estudio",
    "status_include": "Incluir en área de estudio",
    "status_target": "Incluir como objetivo",
    "status_selector": "Usar como selector",
    "status_exclude": "Excluir",
    "page_initial_title": "Configuración inicial",
    "page_initial_subtitle": "Configure el nombre del área de estudio y elija los roles de las capas.",
    "hint_initial_title": "Elija el alcance GIS",
    "hint_initial_body": "Dé un nombre claro a esta área de estudio, luego marque exactamente una capa objetivo y las capas de superposición incluidas. Un buen valor predeterminado es hacer que la unidad principal de decisión sea su capa objetivo y mantener solo las superposiciones necesarias para este estudio.",
    "group_study_area": "Área de estudio",
    "name_placeholder": "Ingrese el nombre del área de estudio",
    "description_placeholder": "Ingrese una descripción",
    "row_name": "Nombre:",
    "row_description": "Descripción:",
    "lbl_configure_status": "Configurar el estado de las capas para el área de estudio:",
    "col_layer_name": "Nombre de capa",
    "col_geometry_type": "Tipo de geometría",
    "col_status": "Estado",
    "col_feature_count": "Entidades",
    "count_unknown": "—",
    "page_features_title": "Selección de entidades",
    "page_features_subtitle": "Seleccione entidades de la capa objetivo.",
    "hint_features_title": "Elija las entidades a llevar adelante",
    "hint_features_body": "Seleccione solo las entidades objetivo que pertenecen a esta área de estudio. Si aún está explorando, comience con un conjunto más pequeño para poder confirmar el flujo de trabajo y los resultados antes de expandir el área.",
    "lbl_target_layer": "Capa objetivo:",
    "lbl_target_layer_with_value": "Capa objetivo: {name}",
    "lbl_target_with_selector": "Capa objetivo: {target} | Selector: {selector}",
    "btn_select_all": "Seleccionar todas las entidades",
    "btn_clear_selection": "Limpiar selección",
    "btn_pan": "Desplazar",
    "btn_rectangle": "Selección rectangular",
    "selection_count": "Seleccionadas: {count} entidades",
    "selector_mode_msg": "Modo selector: todas las entidades objetivo serán filtradas por la capa selector",
    "page_summary_title": "Resumen",
    "page_summary_subtitle": "Revise la configuración del área de estudio antes de crear la salida.",
    "group_basic_info": "Información básica",
    "summary_features_default": "0 entidades seleccionadas",
    "row_study_area_name": "Nombre del área de estudio:",
    "row_selected_features": "Entidades seleccionadas:",
    "no_description": "No se proporcionó descripción",
    "selector_summary": "Área de estudio con selector usando la capa selector '{name}'",
    "simple_summary": "Área de estudio simple. Las entidades objetivo seleccionadas se copiarán como salida del área de estudio.",
    "overlay_summary": "Área de estudio con superposición con {count} capa(s) incluida(s)",
    "validation_title": "Error de validación",
    "validation_name_required": "Ingrese un nombre de área de estudio.",
    "validation_exactly_one_target": "Seleccione exactamente una capa como 'Incluir como objetivo'.",
    "validation_at_most_one_selector": "Seleccione no más de una capa como 'Usar como selector'.",
    "validation_selector_polygon": "La capa selector '{name}' debe ser una capa de polígonos.",
    "validation_geometry_mismatch": "La(s) capa(s) del área de estudio {layers} deben tener el mismo tipo de geometría que la capa objetivo '{target}'.",
    "validation_no_target": "No hay capa objetivo disponible.",
    "validation_no_features": "Seleccione al menos una entidad antes de continuar.",
    "err_workspace_db_title": "Falta la base de datos del espacio de trabajo",
    "err_workspace_db_body": "El espacio de trabajo actual no tiene una ruta de base de datos GeoPackage configurada.",
    "progress_creating": "Creando salida del área de estudio...",
    "progress_overlay_selector": "Construyendo la superposición del área de estudio desde la capa selector...",
    "progress_overlay_features": "Construyendo la superposición del área de estudio desde las entidades seleccionadas...",
    "progress_save": "Guardando la salida del área de estudio en la base de datos del espacio de trabajo...",
    "progress_metadata": "Finalizando metadatos del área de estudio...",
    "err_study_area_title": "Error del área de estudio"
  },
  "create_netweaver": {
    "window_title": "Crear análisis NetWeaver",
    "page_details_title": "Detalles del análisis",
    "page_details_subtitle": "Capture el nombre de la tarea y el contexto del estudio entrante.",
    "context_group": "Contexto del estudio",
    "lbl_workspace": "Espacio de trabajo",
    "lbl_study": "Estudio",
    "lbl_input_layer": "Capa de entrada",
    "lbl_input_table": "Tabla de entrada",
    "not_set": "(sin definir)",
    "lbl_analysis_name": "Nombre del análisis",
    "lbl_comments": "Comentarios",
    "run_immediately": "Ejecutar NetWeaver al finalizar el asistente",
    "page_model_title": "Modelo y temas",
    "page_model_subtitle": "Cargue el modelo NetWeaver y seleccione los temas a evaluar.",
    "model_placeholder": "Seleccione un archivo de modelo .nw2",
    "btn_browse": "Examinar",
    "btn_reload_model": "Recargar modelo",
    "model_not_loaded": "Modelo aún no cargado.",
    "group_available_topics": "Temas disponibles",
    "group_selected_topics": "Temas seleccionados",
    "btn_add": "Agregar ->",
    "btn_remove": "<- Quitar",
    "btn_add_all": "Agregar todos",
    "page_mapping_title": "Asignación de campos",
    "page_mapping_subtitle": "Asigne campos de la tabla de entrada a las variables NetWeaver utilizadas por los temas seleccionados.",
    "mapping_default": "Cargue un modelo y seleccione temas para generar la tabla de asignación de campos.",
    "btn_load_mapping": "Cargar asignación guardada",
    "btn_save_mapping": "Guardar asignación",
    "col_variable": "Variable",
    "col_input_field": "Campo de entrada",
    "var_conditional_ignore_note": "ignorada condicionalmente - asigne un campo para incluirla",
    "var_persistent_ignore_note": "ignorada por el modelo - la asignacion no cambiara los resultados",
    "mapping_ignored_note": "{count} de ellas tienen un indicador de omision del modelo.",
    "page_map_topics_title": "Temas a agregar al mapa",
    "page_map_topics_subtitle": "Elija cuáles temas/objetivos seleccionados se deben agregar como capas del mapa después de la ejecución.",
    "map_topics_hint": "Las ramas de los temas seleccionados se expandirán y listarán aquí. Los elementos marcados se agregarán al mapa.",
    "btn_check_all": "Marcar todo",
    "btn_uncheck_all": "Desmarcar todo",
    "file_dialog_select": "Seleccionar modelo NetWeaver",
    "file_dialog_filter": "Modelos NetWeaver (*.nw2 *.nw)",
    "err_model_required_title": "Modelo requerido",
    "err_model_required_body": "Seleccione un archivo de modelo NetWeaver.",
    "err_engine_missing_title": "Motor faltante",
    "err_engine_missing_body": "No se encontró la CLI de NetWeaver en:\n{path}",
    "err_load_failed_title": "La carga del modelo falló",
    "err_load_failed_body": "Archivo de modelo no encontrado:\n{path}",
    "busy_loading_model_title": "Cargando modelo",
    "busy_loading_model_label": "Cargando información del modelo...",
    "busy_loading_topics_label": "Cargando jerarquía de temas...",
    "model_loaded_summary": "Se cargó {name} con {topics} temas, {goals} objetivos, {variables} variables.",
    "model_loaded_help": "Seleccione una o más ramas de tema y la tabla de asignación sugerirá coincidencias de campos.",
    "busy_loading_variables_title": "Cargando variables",
    "busy_loading_variables_label": "Cargando variables del tema...",
    "no_variables_resolved": "No se resolvieron variables para los temas seleccionados y sus temas secundarios.",
    "prepared_mappings_help": "Asignaciones preparadas para {count} variables de {topics} tema(s) expandido(s).",
    "err_topic_variables_failed": "Error al cargar las variables del tema. Inténtelo de nuevo.",
    "map_topics_count_header": "Elija cuáles de los {count} temas/objetivos expandidos se deben agregar al mapa.",
    "map_topics_empty_header": "Seleccione temas en la página anterior para elegir cuáles se deben agregar al mapa.",
    "saved_title": "Asignación guardada",
    "saved_no_metadata": "No hay administrador de metadatos de espacio de trabajo disponible para las asignaciones guardadas.",
    "saved_none_found": "No se encontró una asignación NetWeaver guardada para este espacio de trabajo, modelo y tabla de entrada.",
    "saved_loaded": "Se cargó la asignación NetWeaver guardada para este espacio de trabajo.",
    "saved_no_metadata_save": "No hay administrador de metadatos disponible para guardar la asignación.",
    "saved_select_topics_first": "Seleccione una o más ramas de tema antes de guardar una asignación NetWeaver.",
    "saved_could_not_save": "La asignación NetWeaver no se pudo guardar en el almacén de metadatos del espacio de trabajo.",
    "saved_saved": "Se guardó la asignación NetWeaver para este espacio de trabajo, modelo y tabla de entrada.",
    "validation_title": "Error de validación",
    "validation_name_required": "Ingrese un nombre de análisis.",
    "validation_model_required": "Seleccione un archivo de modelo.",
    "validation_topic_required": "Seleccione al menos un tema.",
    "validation_mapping_required": "Asigne al menos un campo de entrada a una variable NetWeaver.",
    "btn_pick_registry": "Pick published model version…",
    "tip_pick_registry": "Import a published model version from the central model registry (shared with ArcGIS Pro and the editors).",
    "registry_materialize_failed": "Could not write the registry model to a temporary file: {error}"
  },
  "create_prioritization": {
    "window_title": "Crear priorización",
    "page_details_title": "Detalles de priorización",
    "page_details_subtitle": "Nombre la priorización y capture el contexto del estudio entrante.",
    "lbl_workspace": "Espacio de trabajo",
    "lbl_study": "Estudio",
    "lbl_input_layer": "Capa de entrada",
    "lbl_input_table": "Tabla de entrada",
    "not_set": "(sin definir)",
    "unnamed": "(sin nombre)",
    "not_selected": "(no seleccionado)",
    "row_name": "Nombre de priorización",
    "row_comments": "Comentarios",
    "row_execution": "Ejecución",
    "exec_run": "Ejecutar al finalizar el asistente",
    "exec_create_only": "Solo crear",
    "page_model_title": "Modelo",
    "page_model_subtitle": "Cargue el modelo CDP y recupere su esquema de mapeo.",
    "model_file_placeholder": "Seleccione un archivo de modelo .cdp o .cdpx",
    "btn_browse": "Examinar",
    "btn_reload_model": "Recargar modelo",
    "model_not_loaded": "Modelo aún no cargado.",
    "model_loaded": "Se cargó {name} con {count} criterios más bajos.",
    "page_mapping_title": "Asignación de campos",
    "page_mapping_subtitle": "Asigne los criterios del modelo a campos de la tabla de entrada del estudio.",
    "btn_load_mapping": "Cargar asignación guardada",
    "btn_save_mapping": "Guardar asignación",
    "row_display_field": "Campo de visualización",
    "row_primary_key": "Clave primaria",
    "col_model_criterion": "Criterio del modelo",
    "col_criterion_hint": "Pista del criterio",
    "col_input_field": "Campo de entrada",
    "col_input_field_source": "Origen del campo de entrada",
    "page_validation_title": "Validación",
    "page_validation_subtitle": "Elija cómo la ejecución de CDP debe manejar valores no clasificados, desconocidos y fuera de escala.",
    "validation_hint": "Estos ajustes controlan cómo el motor CDP maneja los datos de entrada que están fuera de los rangos esperados. La mayoría de los usuarios pueden dejar los valores predeterminados.",
    "row_unrated": "Valores no clasificados",
    "row_unknown": "Valores desconocidos",
    "row_offscale": "Valores fuera de escala",
    "tip_unrated": "Si un campo de la base de datos no contiene un valor, ¿cómo debería contribuir a la puntuación de prioridad? Aplica a registros con calificaciones faltantes.",
    "tip_unknown": "Si el campo de la base de datos contiene un valor que no coincide con ningún elemento de la escala, ¿cómo debería manejarse? Aplica solo a calificaciones verbales.",
    "tip_offscale": "Si el campo de la base de datos contiene un valor numérico fuera de los límites de la escala del criterio, ¿cómo debería manejarse? Aplica solo a calificaciones numéricas.",
    "unrated_raise": "Lanzar un error",
    "unrated_unrated": "Tratar como no clasificado",
    "unrated_scale_avg": "Usar promedio de la escala (predeterminado)",
    "unrated_scale_high": "Usar máximo de la escala",
    "unrated_scale_low": "Usar mínimo de la escala",
    "offscale_raise": "Lanzar un error",
    "offscale_unrated": "Tratar como no clasificado",
    "offscale_clamp": "Limitar a los límites de la escala (predeterminado)",
    "page_rules_title": "Reglas",
    "page_rules_subtitle": "Elija una regla definida dentro del modelo CDP. Los nombres y descripciones de las reglas provienen directamente del archivo del modelo.",
    "row_rule": "Regla",
    "rule_no_selection": "(ninguna regla seleccionada)",
    "rules_initial_help": "No se han cargado reglas. Cargue el modelo CDP en el paso anterior para poblar la lista de reglas.",
    "rules_none_defined_combo": "No se han definido reglas",
    "rules_none_defined_msg": "No se han definido reglas para este modelo.",
    "rules_select_msg": "Seleccione una regla para ver su descripción.",
    "rules_unnamed": "Regla sin nombre",
    "rules_no_description": "(sin descripción)",
    "page_summary_title": "Resumen",
    "page_summary_subtitle": "Revise la priorización CDP antes de crear la tarea.",
    "summary_default": "Revise la configuración de priorización antes de finalizar.",
    "lbl_model_weights": "Pesos del modelo",
    "weights_none_defined": "No se definen pesos por pares / estándar para este modelo.",
    "weights_col_default": "Valor",
    "weights_header_default": "Pesos",
    "busy_title_loading": "Cargando modelo CDP",
    "busy_label_loading": "Recuperando esquema de mapeo...",
    "file_dialog_select": "Seleccionar modelo CDP",
    "file_dialog_filter": "Modelos CDP (*.cdpx *.cdp)",
    "err_model_required_title": "Modelo requerido",
    "err_model_required_body": "Seleccione primero un modelo CDP.",
    "err_engine_missing_title": "Motor faltante",
    "err_engine_missing_body": "No se encontró la CLI de CDP en:\n{path}",
    "err_model_missing_title": "Modelo faltante",
    "err_model_missing_body": "Archivo de modelo no encontrado:\n{path}",
    "err_load_failed_title": "La carga del modelo CDP falló",
    "saved_mapping_title": "Asignación guardada",
    "saved_no_metadata_manager": "No hay administrador de metadatos disponible para guardar esta asignación.",
    "saved_no_mapping_found": "No se encontró una asignación CDP guardada para este espacio de trabajo, modelo y tabla de entrada.",
    "saved_loaded": "Se cargó la asignación CDP guardada para este espacio de trabajo.",
    "saved_map_at_least_one": "Asigne al menos un criterio antes de guardar.",
    "saved_could_not_save": "La asignación CDP no se pudo guardar.",
    "saved_saved": "Se guardó la asignación CDP para este espacio de trabajo.",
    "validation_title": "Error de validación",
    "validation_name_required": "Ingrese un nombre de priorización antes de continuar.",
    "validation_load_model": "Cargue un modelo CDP antes de continuar.",
    "validation_map_at_least_one": "Asigne al menos un criterio del modelo.",
    "validation_choose_display": "Elija un campo de visualización.",
    "source_netweaver": "NetWeaver: {source}{suffix}",
    "source_input": "Entrada: {source}{suffix}",
    "source_input_only": "Entrada{suffix}",
    "criterion_unnamed": "Criterio {index}",
    "summary_prioritization": "Priorización: {value}",
    "summary_model": "Modelo: {value}",
    "summary_mapped_criteria": "Criterios asignados: {count}",
    "summary_display_field": "Campo de visualización: {value}",
    "summary_primary_key": "Clave primaria: {value}",
    "summary_input_table": "Tabla de entrada: {value}",
    "btn_pick_registry": "Pick published model version…",
    "tip_pick_registry": "Import a published model version from the central model registry (shared with ArcGIS Pro and the editors).",
    "registry_materialize_failed": "Could not write the registry model to a temporary file: {error}"
  },
  "portfolio_strategies": {
    "costbenefit": "Razón beneficio / costo",
    "cost": "Costo",
    "benefit": "Beneficio",
    "prioritization": "Priorización",
    "prioritization_cost": "Razón priorización / costo"
  },
  "portfolio_results": {
    "window_title": "Resultados de portafolio — {name}",
    "default_name": "Portafolio",
    "header": "Canalización: {name}    Ejecución: {exec_id}    Seleccionados: {selected} / {total}    Estrategia: {strategy}",
    "execution_unknown": "(desconocido)",
    "strategy_not_reported": "(no informado)",
    "tab_report": "Informe de portafolio",
    "tab_selected": "Seleccionados ({count})",
    "tab_excluded": "Excluidos ({count})",
    "tab_all": "Todos los elementos",
    "tab_map": "Mapa",
    "tab_summary": "Resumen",
    "btn_print": "Imprimir pestaña…",
    "tip_print": "Abrir una vista previa de impresión de la tabla de la pestaña actual.",
    "btn_export_csv": "Exportar pestaña CSV…",
    "tip_export_csv": "Guardar la tabla de la pestaña actual como CSV.",
    "btn_export_png": "Exportar mapa PNG…",
    "tip_export_png": "Guardar el lienzo del mapa como imagen PNG.",
    "btn_export_xlsx": "Exportar todas las pestañas (XLSX)…",
    "tip_export_xlsx": "Guardar los seleccionados, excluidos, todos los elementos y el informe en un único libro de Excel.",
    "btn_add_calc": "Agregar campo calculado…",
    "btn_close": "Cerrar",
    "tip_calc_disabled": "Agregar campo calculado requiere un resultado respaldado por un GeoPackage. Abra el resultado desde una tarea de flujo de trabajo para habilitar esta opción.",
    "tip_calc_enabled": "Agregar una columna calculada a la tabla GeoPackage subyacente.",
    "lbl_search": "Buscar",
    "search_placeholder": "Filtrar filas en todas las columnas",
    "btn_clear": "Limpiar",
    "report_summary_header": "<b>{name}</b> resumen del portafolio",
    "row_strategy": "Estrategia",
    "row_cost_field": "Campo de costo",
    "row_benefit_field": "Campo de beneficio",
    "row_selection": "Selección",
    "row_budget": "Presupuesto",
    "row_budget_utilization": "Uso del presupuesto",
    "row_efficacy": "Eficacia",
    "row_engine_time": "Tiempo del motor",
    "unspecified": "(sin especificar)",
    "budget_bar_format_pct": "%p% del presupuesto gastado",
    "budget_bar_not_reported": "Presupuesto no informado",
    "efficacy_not_reported": "(no informado)",
    "engine_time_ms": "{ms:,} ms",
    "silo_balances": "Saldos por silo",
    "silo_label": "Silo {letter}",
    "silo_remaining": "Restante: {value}",
    "silo_share": "  ({share:.1f}% del presupuesto total)",
    "selection_just_count": "{selected} seleccionados",
    "selection_summary": "{selected:,} seleccionados de {considered:,} considerados ({ratio:.1f}%)",
    "budget_spent": "Gastado: {value}",
    "budget_total": "Presupuesto: {value}",
    "budget_left": "Restante: {value}",
    "selected_tab_header": "<b>{count}</b> elementos seleccionados (InPortfolioSort = 1). Ordenados por beneficio / costo cuando ambos están presentes.",
    "excluded_tab_header": "<b>{count}</b> elementos excluidos (InPortfolioSort = 0).",
    "all_tab_header": "<b>{count}</b> filas consideradas.",
    "map_no_qgis": "Los enlaces de mapa de QGIS no están disponibles en este entorno, por lo que no se puede mostrar la vista previa del mapa. Las pestañas de selección siguen funcionando.",
    "map_no_gpkg": "No se proporcionó respaldo de GeoPackage — el mapa no puede mostrar este resultado de portafolio.",
    "map_open_failed": "No se pudo abrir la capa de resultados en:\n{database_path} ({table_name})",
    "map_drawn_failed": "La capa se cargó, pero el mapa no se pudo dibujar: {error}",
    "map_showing": "Mostrando la capa '{name}' de {table_name}.",
    "report_no_metadata": "(el motor no devolvió metadatos de informe)",
    "report_pipeline": "Canalización: {value}",
    "report_execution_id": "ID de ejecución: {value}",
    "report_strategy": "Estrategia: {value}",
    "report_cost_field": "Campo de costo: {value}",
    "report_benefit_field": "Campo de beneficio: {value}",
    "report_header": "Informe:",
    "report_line": "  - {field}: {value}",
    "summary_pipeline": "Canalización: {value}",
    "summary_execution": "Ejecución: {value}",
    "summary_geopackage": "GeoPackage: {value}",
    "summary_result_table": "Tabla de resultados: {value}",
    "summary_strategy": "Estrategia: {value}",
    "summary_inportfolio_field": "Campo InPortfolio: {value}",
    "summary_none": "(ninguno)",
    "summary_columns_header": "Columnas de resultados ({count}):",
    "summary_column_line": "  - {name}",
    "print_title_template": "{name} — {tab}",
    "print_tab_selected": "Seleccionados",
    "print_tab_excluded": "Excluidos",
    "print_tab_all": "Todos los elementos",
    "msg_no_table_title": "Imprimir pestaña",
    "msg_no_table_body": "La pestaña actual no tiene una tabla imprimible.",
    "msg_no_map_title": "Exportar mapa PNG",
    "msg_no_map_body": "La vista del mapa no está disponible.",
    "calc_title": "Agregar campo calculado",
    "calc_not_backed": "Esta vista no está respaldada por un GeoPackage — abra el resultado desde una tarea de flujo de trabajo para habilitar campos calculados.",
    "calc_no_qgis": "Los enlaces de QGIS no están disponibles.",
    "calc_open_failed": "No se pudo abrir la tabla de resultados en:\n{database_path}\ncapa: {table_name}",
    "calc_unexpected_error": "Ocurrió un error inesperado al agregar la columna:\n{error}",
    "calc_success_added": "Se agregó la columna '{name}' a {table_name}.",
    "calc_success_skipped_note": "\n\nNota: {count} fila(s) tuvieron errores de evaluación de expresión y recibieron valores NULL.",
    "sheet_selected": "Seleccionados",
    "sheet_excluded": "Excluidos",
    "sheet_all_items": "Todos los elementos",
    "sheet_report": "Informe",
    "report_field_col": "Campo",
    "report_value_col": "Valor"
  },
  "cdp_results": {
    "window_title": "Resultados CDP - {name}",
    "btn_print": "Imprimir pestaña…",
    "tip_print": "Abrir una vista previa de impresión de la tabla principal de la pestaña actual.",
    "btn_export_csv": "Exportar pestaña CSV…",
    "tip_export_csv": "Guardar la tabla principal de la pestaña actual como CSV.",
    "btn_export_chart": "Exportar gráfico PNG…",
    "tip_export_chart": "Guardar el gráfico de la pestaña actual como imagen PNG.",
    "btn_export_xlsx": "Exportar todas las pestañas (XLSX)…",
    "btn_add_calc": "Agregar campo calculado…",
    "btn_close": "Cerrar",
    "tab_workbench": "Workbench",
    "tab_cdp_model_view": "Vista del modelo CDP",
    "tab_calculations": "Cálculos",
    "tab_prioritization": "Priorización",
    "tab_contributions": "Contribuciones",
    "tab_sensitivity": "Sensibilidad",
    "tab_tradeoffs": "Compensaciones",
    "tab_model_context": "Contexto del modelo",
    "tab_criteria_levels": "Criterios / Niveles",
    "lbl_search": "Buscar",
    "search_placeholder": "Filtrar filas en todas las columnas",
    "btn_clear": "Limpiar",
    "workbench_status_default": "Seleccione una fila para inspeccionar el registro de resultados.",
    "lbl_calculation_rows": "Filas de cálculo",
    "lbl_numeric_summary": "Resumen numérico",
    "lbl_priority_chart": "Puntuación de prioridad por entidad",
    "lbl_chart_scope": "Alcance del gráfico",
    "lbl_grid_filter": "Filtro de cuadrícula",
    "prio_search_placeholder": "Filtrar filas de priorización en todas las columnas",
    "contrib_search_placeholder": "Filtrar filas de contribución en todas las columnas",
    "lbl_source_level": "Nivel de origen",
    "lbl_target_level": "Nivel de destino",
    "lbl_criterion": "Criterio",
    "lbl_lowest_criteria": "Criterios más bajos",
    "lbl_criteria": "Criterios",
    "lbl_levels": "Niveles",
    "msg_print_tab_title": "Imprimir pestaña",
    "msg_no_print_table": "La pestaña actual no tiene una tabla imprimible.",
    "msg_export_tab_csv_title": "Exportar pestaña CSV",
    "msg_no_export_table": "La pestaña actual no tiene una tabla para exportar.",
    "msg_export_chart_png_title": "Exportar gráfico PNG",
    "msg_no_chart": "La pestaña actual no tiene un gráfico.",
    "calc_title": "Agregar campo calculado",
    "calc_no_qgis": "Los enlaces de QGIS no están disponibles.",
    "cdp_viewer_title": "Visor CDP",
    "err_reload_contributions": "No se pudieron recargar las contribuciones:\n{error}",
    "err_reload_sensitivity": "No se pudo recargar la sensibilidad:\n{error}",
    "err_reload_tradeoffs": "No se pudieron recargar las compensaciones:\n{error}"
  },
  "netweaver_results": {
    "window_title": "Resultados NetWeaver – {name}",
    "header": "Canalización: {name}    Ejecución: {exec_id}    Filas: {rows}",
    "model_label": "Modelo: {path}",
    "btn_add_to_map": "Agregar tema actual al mapa",
    "btn_export": "Exportar…",
    "menu_print_map": "Imprimir mapa",
    "menu_export_png": "Exportar mapa como PNG",
    "menu_export_csv": "Exportar resultados como CSV",
    "menu_export_xlsx": "Exportar resultados como Excel (.xlsx)",
    "lbl_topics": "Temas",
    "topic_search_placeholder": "Buscar temas",
    "btn_prev": "Anterior",
    "btn_next": "Siguiente",
    "col_topic": "Tema NetWeaver",
    "col_value": "Valor",
    "btn_show_on_map": "Mostrar en el mapa",
    "btn_node_inspector": "Abrir inspector de nodos",
    "btn_model_graph": "Mostrar visor NetWeaver",
    "lbl_map_preview": "Vista previa del mapa",
    "status_select_topic": "Seleccione un tema para inspeccionar su columna de salida.",
    "status_select_topic_result": "Seleccione un tema con una columna de resultado para inspeccionar su salida.",
    "btn_show_all_rows": "Mostrar todas las filas",
    "lbl_selected_row": "Inspección de fila seleccionada",
    "group_legend": "Leyenda de clases",
    "btn_histogram": "Histograma",
    "btn_close": "Cerrar",
    "lbl_preview_layer": "Capa de vista previa:",
    "btn_refresh_preview": "Actualizar vista previa",
    "btn_fit_preview": "Ajustar vista previa a la capa",
    "map_initializing": "El mapa embebido se está inicializando.",
    "map_unavailable": "La vista previa del mapa no está disponible porque no se pudo cargar el soporte de lienzo de QGIS.",
    "map_no_project_layers": "No hay capas de proyecto disponibles para la vista previa del mapa.",
    "msg_map_preview_title": "Vista previa del mapa",
    "msg_no_layers_to_zoom": "No hay capas de mapa disponibles para hacer zoom.",
    "msg_no_extent": "La capa no tiene una extensión utilizable.",
    "msg_show_on_map_title": "Mostrar en el mapa",
    "msg_select_topic_first": "Seleccione primero un tema.",
    "msg_add_topics_title": "Agregar temas al mapa",
    "msg_queue_topics_first": "Coloque uno o más temas en cola primero.",
    "msg_export_csv_title": "Exportar CSV",
    "msg_no_data": "No hay datos para exportar.",
    "msg_export_csv_success": "Resultados exportados a:\n{path}",
    "msg_export_csv_failed": "No se pudieron exportar los resultados:\n{error}",
    "msg_export_excel_title": "Exportar Excel",
    "msg_export_excel_success": "Resultados exportados a:\n{path}",
    "msg_export_excel_failed": "No se pudieron exportar los resultados:\n{error}",
    "msg_export_map_title": "Exportar mapa PNG",
    "msg_no_map_canvas_export": "No hay lienzo de mapa disponible para exportar.",
    "msg_export_map_success": "Mapa exportado a:\n{path}",
    "msg_export_map_failed": "No se pudo exportar el mapa:\n{error}",
    "msg_print_map_title": "Imprimir mapa",
    "msg_no_map_canvas_print": "No hay lienzo de mapa disponible para imprimir.",
    "msg_node_inspector_title": "Inspector de nodos",
    "msg_add_topics_summary": "Se agregaron o actualizaron {count} capa(s) de tema NetWeaver.",
    "msg_could_not_add": "\n\nNo se pudo agregar: {topics}",
    "file_dialog_csv_title": "Exportar tabla NetWeaver a CSV",
    "file_dialog_csv_filter": "Archivos CSV (*.csv)",
    "file_dialog_xlsx_title": "Exportar tabla NetWeaver a Excel",
    "file_dialog_xlsx_filter": "Archivos Excel (*.xlsx)",
    "file_dialog_png_title": "Exportar mapa NetWeaver a PNG",
    "file_dialog_png_filter": "Imágenes PNG (*.png)",
    "msg_print_failed": "No se pudo imprimir el mapa desde este entorno QGIS/PyQt:\n{error}",
    "ctx_show_on_map": "Mostrar en el mapa",
    "ctx_open_node_inspector": "Abrir inspector de nodos",
    "ctx_open_model_graph": "Abrir gráfico del modelo",
    "ctx_remove_from_queue": "Quitar de la cola del mapa",
    "ctx_queue_for_map": "Encolar tema para el mapa",
    "ctx_add_queued": "Agregar temas en cola al mapa",
    "lbl_preview_topic": "Tema:",
    "msg_model_graph_title": "Grafo del modelo",
    "msg_no_topics_to_graph": "No hay temas de NetWeaver disponibles para graficar.",
    "btn_map_pan": "Desplazar",
    "btn_map_identify": "Identificar",
    "btn_map_select": "Seleccionar",
    "tip_map_pan": "Desplace el mapa arrastrando",
    "tip_map_identify": "Haga clic en una entidad para identificarla",
    "tip_map_select": "Haga clic en una entidad para seleccionarla",
    "tip_map_zoom_in": "Acercar",
    "tip_map_zoom_out": "Alejar",
    "btn_map_zoom_selection": "Zoom a la selección",
    "tip_map_zoom_selection": "Acercar el mapa a las entidades seleccionadas",
    "btn_map_full_extent": "Extensión completa",
    "tip_map_full_extent": "Acercar a la extensión completa de todas las capas",
    "msg_no_selection_to_zoom": "No hay entidades seleccionadas en la capa de vista previa.",
    "identify_title": "Identificar – {fid}",
    "identify_col_field": "Campo",
    "identify_col_value": "Valor",
    "identify_btn_close": "Cerrar",
    "menu_print_table": "Imprimir tabla…",
    "msg_print_table_title": "Imprimir tabla",
    "msg_no_rows_print": "No hay filas de resultados para imprimir."
  },
  "lpa_results": {
    "window_title": "Resultados LPA — {name}",
    "header": "Canalización: {name}    Ejecución: {exec_id}    Filas: {rows}    Columnas: {columns}",
    "execution_unknown": "(desconocido)",
    "tab_table": "Tabla",
    "tab_map": "Mapa",
    "tab_summary": "Resumen",
    "btn_print": "Imprimir pestaña…",
    "tip_print": "Abrir una vista previa de impresión de la tabla de la pestaña actual.",
    "btn_export_csv": "Exportar pestaña CSV…",
    "tip_export_csv": "Guardar la tabla de la pestaña actual como CSV.",
    "btn_export_png": "Exportar mapa PNG…",
    "tip_export_png": "Guardar el lienzo del mapa como imagen PNG.",
    "btn_export_xlsx": "Exportar todas las pestañas (XLSX)…",
    "tip_export_xlsx": "Guardar la tabla de cada pestaña en un único libro de Excel de varias hojas.",
    "btn_add_calc": "Agregar campo calculado…",
    "btn_close": "Cerrar",
    "lbl_search": "Buscar",
    "search_placeholder": "Filtrar filas en todas las columnas",
    "btn_clear": "Limpiar",
    "lbl_selected_row": "Fila seleccionada",
    "tip_calc_disabled": "Agregar campo calculado requiere un resultado respaldado por un GeoPackage. Abra el resultado desde una tarea de flujo de trabajo para habilitar esta opción.",
    "tip_calc_enabled": "Agregar una columna calculada a la tabla GeoPackage subyacente.",
    "map_no_qgis": "Los enlaces de mapa de QGIS no están disponibles en este entorno, por lo que no se puede mostrar la vista previa del mapa. La pestaña Tabla sigue funcionando.",
    "map_no_gpkg": "No se proporcionó respaldo de GeoPackage — el mapa no puede mostrar este resultado LPA.",
    "map_open_failed": "No se pudo abrir la capa de resultados en:\n{database_path} ({table_name})",
    "map_drawn_failed": "La capa se cargó, pero el mapa no se pudo dibujar: {error}",
    "map_showing": "Mostrando la capa '{name}' de {table_name}.",
    "row_index": "Índice de fila: {value}",
    "row_more_columns": "... {count} columnas más no se muestran",
    "summary_pipeline": "Canalización: {value}",
    "summary_execution": "Ejecución: {value}",
    "summary_geopackage": "GeoPackage: {value}",
    "summary_result_table": "Tabla de resultados: {value}",
    "summary_none": "(ninguno)",
    "summary_fields_header": "Campos de resumen:",
    "summary_no_fields": "  (no se proporcionaron metadatos de resumen)",
    "summary_columns_header": "Columnas de resultados ({count}):",
    "summary_field_line": "  - {field}: {value}",
    "summary_column_line": "  - {name}",
    "title_table_print": "{name} — Tabla",
    "msg_no_map_title": "Exportar mapa PNG",
    "msg_no_map_body": "La vista del mapa no está disponible.",
    "msg_no_data_title": "Exportar a Excel",
    "msg_no_data_body": "No hay datos de tabla para exportar.",
    "calc_title": "Agregar campo calculado",
    "calc_not_backed": "Esta vista no está respaldada por un GeoPackage — abra el resultado desde una tarea de flujo de trabajo para habilitar campos calculados.",
    "calc_no_qgis": "Los enlaces de QGIS no están disponibles.",
    "calc_open_failed": "No se pudo abrir la tabla de resultados en:\n{database_path}\ncapa: {table_name}",
    "calc_unexpected_error": "Ocurrió un error inesperado al agregar la columna:\n{error}",
    "calc_success_added": "Se agregó la columna '{name}' a {table_name}.",
    "calc_success_skipped_note": "\n\nNota: {count} fila(s) tuvieron errores de evaluación de expresión y recibieron valores NULL.",
    "sheet_results": "Resultados",
    "sheet_summary": "Resumen",
    "sheet_col_key": "Clave",
    "sheet_col_value": "Valor",
    "default_name": "LPA"
  },
  "compare_results": {
    "window_title": "Comparar análisis",
    "header_primary": "<b>Resultado primario:</b> {label}    <b>Motor:</b> {engine}    <b>Filas:</b> {rows}    <b>Columnas:</b> {columns}",
    "picker_prompt": "Elija hasta {max} resultados adicionales para comparar con el resultado primario (marque con la casilla). Se permiten selecciones entre motores, pero la coincidencia de columnas será limitada.",
    "col_result": "Resultado",
    "col_engine": "Motor",
    "col_analysis": "Análisis",
    "col_study_workspace": "Estudio / Espacio de trabajo",
    "btn_compare": "Comparar seleccionados",
    "btn_clear": "Limpiar selección",
    "status_initial": "0 resultados adicionales seleccionados.",
    "status_template": "{count} resultado(s) adicional(es) seleccionados (máx {max}).",
    "selection_limit_title": "Límite de selección",
    "selection_limit_body": "Puede comparar hasta {max} resultados adicionales junto con el primario.",
    "group_column_alignment": "Alineación de columnas",
    "skip_unmatched": "Omitir columnas que falten en cualquier resultado seleccionado",
    "tab_table": "Tabla lado a lado",
    "tab_histogram": "Histograma",
    "btn_export_csv": "Exportar comparación CSV",
    "btn_close": "Cerrar",
    "histogram_title": "Histograma de comparación",
    "histogram_subtitle": "Elija columnas numéricas para superponer.",
    "no_other_results": "No se encontraron otros resultados en este espacio de trabajo.",
    "err_load_result": "No se pudo cargar el resultado '{label}':\n{error}",
    "err_no_data": "El resultado '{label}' no tiene datos y no se puede comparar.",
    "warning_columns_differ": "Algunas columnas difieren entre los resultados seleccionados:\n{details}",
    "warning_missing_line": "• {label} le faltan: {columns}",
    "histogram_title_dynamic": "Comparando {count} resultados: {labels}",
    "export_dialog_title": "Exportar comparación CSV",
    "csv_filter": "Archivos CSV (*.csv)",
    "export_success": "Comparación guardada en:\n{path}",
    "export_failed": "No se pudo guardar:\n{error}"
  },
  "create_raster": {
    "window_title": "Crear área de estudio ráster",
    "page_inputs_title": "Entradas ráster",
    "page_inputs_subtitle": "Seleccione las capas ráster y elija qué banda(s) y columna(s) de RAT de cada una deben llevarse a la salida del overlay.",
    "name_placeholder": "p. ej. Estudio ráster del bajo Truckee",
    "row_name": "Nombre:",
    "row_description": "Descripción:",
    "lbl_available_layers": "Capas ráster disponibles (selección múltiple):",
    "group_carry_forward": "Llevar adelante por entrada",
    "page_alignment_title": "Alineación y salida",
    "page_alignment_subtitle": "Los rásteres de entrada pueden tener distinta resolución / extensión / CRS. La capa de ajuste define la cuadrícula de salida; el método de remuestreo controla cómo se alinean las demás entradas.",
    "row_snap_to": "Cuadrícula de ajuste:",
    "row_resampling": "Remuestreo:",
    "row_output_format": "Formato de salida:",
    "row_output_raster": "Ráster de salida:",
    "output_path_placeholder": "/ruta/al/overlay.tif",
    "btn_browse": "Examinar…",
    "page_summary_title": "Revisar y construir",
    "page_summary_subtitle": "Confirme la especificación del overlay ráster. Al hacer clic en Finalizar se ejecuta GRASS r.cross para producir el ráster de combinaciones únicas y escribe el RAT enriquecido junto a él.",
    "summary_cannot_build": "(Aún no se puede generar el resumen: {error})",
    "summary_name": "Nombre:",
    "summary_description": "Descripción:",
    "summary_none": "(ninguna)",
    "summary_inputs": "Entradas:",
    "summary_snap_first_input": "(primera entrada)",
    "summary_snap_to": "Ajuste a:",
    "summary_resampling": "Remuestreo:",
    "summary_output": "Salida:",
    "summary_output_unset": "(sin definir)",
    "err_cannot_create_title": "No se puede crear el área de estudio",
    "err_overlay_failed_title": "Falló el overlay ráster",
    "err_overlay_unexpected": "Error inesperado al ejecutar el overlay:\n{error}",
    "file_dialog_title": "Ráster overlay de salida",
    "file_dialog_filter": "GeoTIFF (*.tif *.tiff);;Todos los archivos (*)",
    "role_label": "Rol:",
    "role_overlay": "Superposición",
    "role_target": "Objetivo",
    "lbl_carry_bands": "Llevar bandas:",
    "band_label": "Banda {index}",
    "lbl_carry_rat": "Llevar columnas RAT:",
    "no_rat_detected": "(no se detectó RAT — solo el valor de la banda se llevará)"
  },
  "calculated_field": {
    "window_title": "Agregar campo calculado",
    "field_type_real": "Real (decimal)",
    "field_type_integer": "Entero",
    "field_type_text": "Texto",
    "field_type_date": "Fecha",
    "prompt_initial": "Ingrese una expresión y haga clic en Validar para previsualizar.",
    "name_placeholder": "Nombre de la nueva columna (sin espacios)",
    "row_field_name": "Nombre del campo",
    "row_field_type": "Tipo de campo",
    "lbl_expression": "Expresión",
    "expression_placeholder": "Expresión de QGIS — p. ej. \"score\" * 100, \"category\" || ' (rated)', CASE WHEN \"rank\" < 5 THEN 'top' ELSE 'rest' END",
    "btn_validate": "Validar && Previsualizar",
    "lbl_source_cols": "Columnas de origen",
    "lbl_preview": "Vista previa (primeras filas)",
    "preview_col_row": "Fila",
    "preview_col_value": "Valor",
    "btn_add_field": "Agregar campo",
    "no_layer": "(sin capa)",
    "no_fields": "(la capa no tiene campos)",
    "err_name_required": "El nombre del campo es obligatorio.",
    "err_name_no_spaces": "El nombre del campo no puede contener espacios — use snake_case o PascalCase.",
    "err_name_exists": "Ya existe un campo llamado '{name}' en esta tabla.",
    "err_expression_required": "Ingrese una expresión para validar.",
    "err_parser": "Error de análisis: {error}",
    "err_prepare": "No se pudo preparar la expresión: {error}",
    "err_eval": "Error de expresión en la fila {row}: {error}",
    "info_no_features": "La expresión se analizó correctamente, pero la capa no tiene entidades para previsualizar.",
    "info_ok_preview": "OK — se previsualizaron {count} fila(s). Haga clic en 'Agregar campo' para materializar la columna."
  },
  "create_task": {
    "window_title": "Agregar tarea",
    "instructions": "Agregue una tarea simple que ejecute un motor EMDS directamente, o una tarea de canalización que ejecute una definición de flujo de trabajo guardada como tarea compuesta.",
    "row_task_type": "Tipo de tarea",
    "row_configuration": "Configuración",
    "task_type_simple": "Tarea simple",
    "task_type_workflow": "Tarea de canalización",
    "btn_ok": "Aceptar",
    "btn_cancel": "Cancelar",
    "row_engine": "Motor",
    "row_engine_details": "Detalles del motor",
    "simple_description": "El asistente del motor seleccionado se abrirá a continuación para que pueda configurar la tarea.",
    "row_task_name": "Nombre de tarea",
    "row_pipeline": "Canalización",
    "pipeline_default_choice": "(Seleccione definición de flujo de trabajo)",
    "pipeline_unnamed": "(Flujo de trabajo sin nombre)",
    "row_inherited_inputs": "Entradas heredadas",
    "inherited_inputs_body": "Entradas heredadas siempre disponibles en tiempo de ejecución:\n`projectid`, `spatialreferenceid`, `provenanceid`, `parentid`",
    "binding_help": "Los enlaces de entrada adicionales son opcionales. Ingrese un par `name=value` por línea. Los valores pueden ser literales o usar tokens como `{{projectid}}`.",
    "row_additional_inputs": "Entradas adicionales",
    "run_immediately": "Ejecutar la tarea de canalización inmediatamente después de crearla",
    "row_pipeline_summary": "Resumen de canalización",
    "summary_no_description": "No se proporcionó descripción.",
    "summary_steps": "Pasos: {count}",
    "warn_pipeline_title": "Tarea de canalización",
    "warn_binding_format": "El enlace de entrada en la línea {line} debe usar el formato name=value.",
    "warn_binding_missing_name": "Al enlace de entrada en la línea {line} le falta un nombre.",
    "warn_no_engine": "Seleccione un motor.",
    "warn_no_pipeline": "Seleccione una definición de canalización.",
    "warn_no_task_name": "El nombre de la tarea es obligatorio."
  },
  "create_analysis": {
    "window_title": "Crear nuevo análisis",
    "lbl_name": "Nombre del análisis:",
    "lbl_description": "Descripción:",
    "group_first_task": "Primera tarea",
    "lbl_engine": "Motor:",
    "lbl_engine_details": "Detalles del motor:",
    "validation_name": "nombre del análisis",
    "validation_title": "Error de validación",
    "validation_no_engine": "Seleccione un motor para la tarea inicial."
  },
  "create_workspace_guided": {
    "window_title": "Crear espacio de trabajo y primera área de estudio",
    "hint_title": "Inicio rápido",
    "hint_body": "Este paso crea la carpeta del espacio de trabajo EMDS, su proyecto anfitrión de QGIS y su primera área de estudio. Elija una capa objetivo para las entidades en las que desea trabajar y luego agregue las capas de superposición que ayuden a describir esa área.",
    "lbl_study_name": "Nombre del área de estudio:",
    "lbl_target_layer": "Capa objetivo:",
    "lbl_overlay_layers": "Capas de superposición / inclusión:",
    "validation_study_name": "nombre del área de estudio",
    "warning_no_target_title": "No se seleccionó capa objetivo",
    "warning_no_target_body": "Seleccione una capa objetivo para la primera área de estudio."
  },
  "provenance": {
    "menu_view": "Ver procedencia…",
    "menu_compare_versions": "Comparar versiones del modelo…",
    "menu_workflow_history": "Historial del flujo de trabajo…",
    "menu_duplicate_scenario": "Duplicar como escenario…",
    "menu_compare_baseline": "Comparar con la línea base…",
    "menu_scenario_builder": "Constructor de escenarios…",
    "menu_promote_scenario": "Promover escenario…",
    "scenario_builder_title": "Constructor de escenarios",
    "dialog_title": "Procedencia — {name}",
    "compare_versions_title": "Comparar versiones del modelo",
    "workflow_history_title": "Historial del flujo de trabajo — {name}",
    "btn_close": "Cerrar",
    "list_and": " y ",
    "busy_title": "Trabajando…",
    "busy_reading_weights": "Leyendo los pesos del modelo…",
    "busy_applying_weights": "Aplicando los cambios de pesos…",
    "busy_reading_nodes": "Leyendo los nodos del modelo…",
    "busy_applying_ignore": "Aplicando los cambios de exclusión…",
    "busy_running_preview": "Ejecutando la vista previa…",
    "busy_running_test": "Ejecutando prueba…",
    "busy_running_preview_run": "Registrando ejecución de vista previa…",
    "busy_reading_model": "Leyendo el modelo actual…",
    "scenario_builder_window_title": "Constructor de escenarios — {name}",
    "scenario_builder_intro": "Experimenta con un cambio en esta tarea. La línea base no se modifica hasta que elijas Bifurcar o Reemplazar más abajo.",
    "scenario_builder_change_group": "1 · ¿Qué quieres cambiar?",
    "scenario_builder_preview_group": "2 · Prueba y comparar (≤200 filas, staging o ejecución previa)",
    "scenario_builder_apply_group": "3 · Aplicar",
    "scenario_builder_model_prefix": "Modelo: {model}",
    "btn_swap_model": "Cambiar modelo…",
    "btn_edit_weights": "Editar pesos…",
    "btn_edit_ignore": "Editar marcas de exclusión…",
    "btn_edit_in_editor": "Editar modelo en el editor…",
    "btn_run_preview": "Ejecutar vista previa",
    "btn_run_test": "Ejecutar prueba",
    "btn_record_preview_run": "Registrar ejecución previa para comparar…",
    "btn_open_pipeline_builder": "Abrir en generador de canalizaciones…",
    "msg_open_pipeline_failed": "No se pudo abrir el generador de canalizaciones:\n\n{error}",
    "msg_select_workspace_for_pipeline": "Seleccione primero un espacio de trabajo, área de estudio, análisis o tarea.",
    "msg_pipeline_save_failed": "No se pudo guardar la definición de flujo de trabajo en los metadatos del espacio de trabajo.",
    "msg_pipeline_saved": "Definición de flujo de trabajo guardada: «{name}».",
    "wizard_back": "Atrás",
    "wizard_next": "Siguiente",
    "wizard_step_indicator": "Paso {step} de 3 — Cambiar · Probar y comparar · Aplicar",
    "btn_cancel": "Cancelar",
    "btn_apply": "Aplicar",
    "tip_edit_weights": "Ajusta los pesos de los criterios de este modelo CDP. Los hermanos se renormalizan para que los hijos de cada padre sumen 1. El cambio se guarda en un nuevo archivo de modelo que usan Vista previa / Bifurcar / Reemplazar; el original no se modifica.",
    "tip_edit_ignore": "Activa o desactiva qué temas/variables de NetWeaver se ignoran (PersistentIgnore). El cambio se guarda en un nuevo archivo de modelo que usan Vista previa / Bifurcar / Reemplazar; el original no se modifica.",
    "tip_edit_in_editor": "La edición de los pesos/marcas de este modelo se realiza en el editor dedicado CDP6 / NetWeaver Developer 3. Por ahora usa Cambiar modelo.",
    "no_swap_note": "Este motor no tiene un archivo de modelo intercambiable; usa Reemplazar/Bifurcar para volver a ejecutarlo tal cual.",
    "rb_fork_children": "Bifurcar + reejecutar hijos (nueva ruta; clona esta tarea y todo lo de abajo)",
    "rb_fork_only": "Bifurcar (solo esta tarea)",
    "rb_replace": "Reemplazar (sobrescribe esta tarea; las capas de resultados antiguas salen del mapa)",
    "tip_no_children": "No hay tareas hijas debajo de esta.",
    "scenario_name_label": "Nombre del escenario:",
    "scenario_name_default": "{name} (escenario)",
    "swap_dialog_title": "Elegir archivo de modelo",
    "swap_filter_netweaver": "Modelos NetWeaver (*.nw2 *.nw)",
    "swap_filter_cdp": "Modelos CDP (*.cdpx *.cdp)",
    "msg_choose_action": "Elige Bifurcar o Reemplazar.",
    "msg_enter_name": "Introduce un nombre de escenario.",
    "msg_select_task": "Selecciona una tarea primero.",
    "msg_scenario_failed": "No se pudo completar el escenario:\n\n{error}",
    "msg_task_not_found": "No se pudo localizar la tarea en el análisis.",
    "msg_scenario_created": "Escenario «{name}» creado y ejecutado.{extra}",
    "msg_scenario_replaced": "«{name}» reemplazado y vuelto a ejecutar.",
    "msg_promote_not_scenario": "Selecciona una tarea bifurcada de escenario para promover.",
    "msg_promote_no_run": "Ejecuta el escenario primero para tener una ejecución que promover.",
    "msg_promote_not_scenario_run": "La última ejecución de esta tarea no es de escenario.",
    "msg_promote_confirm": "¿Promover este escenario como nueva ejecución de línea base? Las ejecuciones existentes se conservan para auditoría.",
    "msg_promote_failed": "No se pudo registrar el marcador de línea base promovido.",
    "msg_promote_success": "Escenario promovido registrado. Nueva ejecución de línea base: {run_id}",
    "promoted_scenario_label": "Escenario promovido",
    "promoted_scenario_notes": "Promovido desde el Constructor de escenarios; las ejecuciones existentes se conservan.",
    "status_no_weight_changes": "No se hicieron cambios de pesos.",
    "status_weights_applied": "✓ Se aplicaron {count} cambio(s) de pesos → modelo editado guardado. Vista previa / Bifurcar / Reemplazar lo usarán.",
    "status_no_ignore_changes": "No se hicieron cambios de exclusión.",
    "status_ignore_applied": "✓ Se cambiaron {count} marca(s) de exclusión → modelo editado guardado. Vista previa / Bifurcar / Reemplazar lo usarán.",
    "edit_weights_title": "Editar pesos — {name}",
    "edit_weights_intro": "Ajusta los pesos de los criterios a continuación. Al hacer clic en Aceptar, los hijos de cada padre se renormalizan para sumar 1 (el ajuste correcto de CDP).",
    "edit_weights_warn": "⚠ Este modelo usa {features}. La copia editada que se guarda aquí no los conserva, por lo que sus puntuaciones pueden diferir del original. Usa esto para hipótesis de pesos; edita los modelos avanzados en el editor CDP para guardarlos con fidelidad.",
    "feature_value_functions": "funciones de valor personalizadas",
    "feature_uncertainty": "distribuciones de incertidumbre",
    "col_criterion": "Criterio",
    "col_parent": "Padre",
    "col_weight": "Peso",
    "mbox_edit_weights": "Editar pesos",
    "mbox_no_cdp_model": "Esta tarea no tiene un archivo de modelo CDP legible para editar.",
    "mbox_read_weights_failed": "No se pudieron leer los pesos del modelo:\n\n{error}",
    "mbox_apply_weights_failed": "No se pudieron aplicar los cambios de pesos:\n\n{error}",
    "mbox_invalid_weights": "Estos pesos no son números válidos, por lo que no se aplicó nada:\n\n{rows}\n\nCorrígelos o bórralos y vuelve a hacer clic en Aceptar.",
    "edit_ignore_title": "Editar marcas de exclusión — {name}",
    "edit_ignore_intro": "Marca un tema/variable para ignorarlo (PersistentIgnore); desmarca para incluirlo. Los nodos ignorados se excluyen al ejecutar el modelo.",
    "col_node": "Nodo",
    "col_type": "Tipo",
    "col_ignore": "Ignorar",
    "mbox_edit_ignore": "Editar marcas de exclusión",
    "mbox_no_nw_model": "Esta tarea no tiene un archivo de modelo NetWeaver legible para editar.",
    "mbox_read_nodes_failed": "No se pudieron leer los nodos del modelo:\n\n{error}",
    "mbox_apply_ignore_failed": "No se pudieron aplicar los cambios de exclusión:\n\n{error}",
    "btn_compare_versions_inline": "Comparar versiones del modelo…",
    "tip_compare_versions_inline": "Compara la versión del modelo ejecutada por última vez con el archivo de modelo actual.",
    "btn_export_report": "Exportar informe de auditoría…",
    "tip_export_report": "Guarda un informe HTML imprimible de exactamente lo que hizo la última ejecución de esta tarea (modelo, hash, motor, parámetros, asignaciones, entradas).",
    "mbox_export_report": "Exportar informe",
    "report_build_failed": "No se pudo generar el informe:\n\n{error}",
    "report_save_title": "Guardar informe de auditoría",
    "report_write_failed": "No se pudo escribir el archivo:\n\n{error}",
    "report_saved": "Informe de auditoría guardado en:\n{path}",
    "btn_difference_report": "Exportar informe de diferencias…",
    "tip_difference_report": "Guarda un informe HTML imprimible que explica en qué difieren el resultado principal y una comparación seleccionada (modelo, pesos/marcas, parámetros, asignaciones).",
    "mbox_difference_report": "Informe de diferencias",
    "difference_need_two": "Se necesita el resultado principal y al menos una comparación (cada una de una ejecución registrada) para generar un informe de diferencias.",
    "difference_save_title": "Guardar informe de diferencias",
    "difference_saved": "Informe de diferencias ({a} vs {b}) guardado en:\n{path}",
    "btn_restore": "Restaurar esta revisión…",
    "tip_restore": "Convierte la revisión seleccionada en la definición actual del flujo de trabajo. Es aditivo: registra una nueva revisión y nunca elimina el historial.",
    "mbox_restore": "Restaurar revisión",
    "restore_select": "Selecciona una revisión para restaurar.",
    "restore_confirm": "¿Convertir la revisión {n} en la definición actual del flujo de trabajo?\n\nEsto registra una nueva revisión; no se elimina nada.",
    "restore_failed": "No se pudo restaurar:\n\n{error}",
    "restore_done": "La revisión {n} es ahora la definición actual del flujo de trabajo.",
    "restore_incomplete": "La restauración no se completó.",
    "history_header": "{count} revisión(es)",
    "history_payload_placeholder": "Selecciona una revisión para ver la carga útil de su definición de flujo de trabajo.",
    "col_rev": "Rev",
    "col_when": "Cuándo",
    "col_by": "Por",
    "col_change": "Cambio",
    "col_hash": "Hash",
    "verified_registry_model": "Verified registry model",
    "registry_model_id": "Registry model id",
    "registry_version": "Registry version",
    "menu_create_workspace": "Crear espacio de trabajo",
    "menu_open_workspace": "Abrir espacio de trabajo",
    "menu_create_study_area": "Crear área de estudio",
    "menu_edit_workspace": "Editar espacio de trabajo",
    "menu_delete_workspace": "Eliminar espacio de trabajo",
    "menu_create_analysis": "Crear análisis",
    "menu_edit_study_area": "Editar área de estudio",
    "menu_delete_study_area": "Eliminar área de estudio",
    "menu_add_task": "Añadir tarea",
    "menu_delete_analysis": "Eliminar análisis",
    "menu_add_subtask": "Añadir subtarea",
    "menu_run_task": "Ejecutar tarea",
    "menu_open_netweaver_viewer": "Abrir visor de NetWeaver",
    "menu_open_cdp_viewer": "Abrir visor de CDP",
    "menu_open_results": "Abrir resultados",
    "menu_compare_with": "Comparar con…",
    "menu_execution_history": "Historial de ejecución",
    "menu_edit_task": "Editar tarea",
    "menu_delete_task": "Eliminar tarea",
    "menu_show_on_map": "Mostrar en el mapa",
    "menu_toggle_visibility": "Alternar visibilidad"
  },
  "registry_picker": {
    "window_title": "Pick Published Model Version",
    "header": "Published {kind} model versions in the central registry.\nRegistry: {path}",
    "col_name": "Model name",
    "col_version": "Version",
    "col_schema": "Schema",
    "col_authoring_tool": "Authoring tool",
    "col_current": "Current",
    "current_marker": "current",
    "btn_refresh": "Refresh",
    "count": "{count} version(s) found.",
    "empty": "No published {kind} model versions were found in the registry.",
    "load_error": "Could not read the model registry: {error}",
    "select_required": "Select a model version first."
  },
  "pipeline_builder": {
    "title": "Generador de canalizaciones",
    "btn_run": "Ejecutar",
    "btn_test": "Ejecutar prueba",
    "tip_run": "Ejecutar la canalización completa en la salida del estudio.",
    "tip_test": "Ejecutar con ≤200 filas solo en staging (sin capas en el mapa).",
    "run_title": "Ejecutar canalización",
    "test_title": "Probar canalización",
    "run_preparing": "Preparando canalización «{name}»…",
    "test_preparing": "Preparando prueba de canalización (≤200 filas)…",
    "run_complete": "Canalización «{name}» completada.",
    "test_complete": "Prueba completada ({steps} paso(s), solo staging).",
    "run_failed": "Error al ejecutar la canalización:\n\n{error}",
    "test_failed": "Error en la prueba de canalización:\n\n{error}",
    "msg_no_steps": "Añada al menos un paso antes de ejecutar.",
    "menu_file": "Archivo",
    "menu_edit": "Editar",
    "menu_new_pipeline": "Nueva canalización",
    "menu_new_from_template": "Nueva desde plantilla…",
    "menu_open_pipeline": "Abrir canalización",
    "menu_import_json": "Importar desde JSON…",
    "menu_export_json": "Exportar a JSON…",
    "menu_save_pipeline": "Guardar canalización",
    "menu_save_pipeline_as": "Guardar canalización como",
    "menu_undo": "Deshacer",
    "menu_redo": "Rehacer",
    "menu_duplicate_step": "Duplicar el paso seleccionado",
    "menu_delete_step": "Eliminar el paso seleccionado",
    "lbl_pipeline_name": "Nombre de la canalización",
    "lbl_description": "Descripción",
    "lbl_pipeline_steps": "Pasos de la canalización",
    "tab_step_properties": "Propiedades del paso seleccionado",
    "msg_select_step": "Seleccione un paso de la canalización para editar sus propiedades.",
    "tab_execution_preview": "Vista previa de ejecución",
    "btn_run_mock": "Ejecutar con variables de prueba…",
    "btn_run_selected_step": "Ejecutar el paso seleccionado…",
    "lbl_pipeline_graph": "Gráfico de la canalización",
    "btn_refresh": "Actualizar",
    "tip_refresh_graph": "Volver a disponer el gráfico de la canalización para la definición actual.",
    "graph_legend": "El gráfico es de solo lectura: edite los pasos en la lista de tarjetas de la izquierda. Colores: azul = tarea, verde = script de Python, turquesa = variable, morado = bucle, ámbar = si/si no, naranja = try/catch, pizarra = registro.",
    "btn_insert_step": "+ Insertar paso",
    "btn_configure_wizard": "Configurar con el asistente…",
    "btn_cancel": "Cancelar",
    "btn_save": "Guardar",
    "insert_run_task": "Ejecutar una tarea de EMDS",
    "insert_remember_value": "Recordar un valor",
    "insert_repeat_each": "Repetir para cada…",
    "insert_only_if": "Solo si…",
    "insert_log_message": "Escribir un mensaje de registro",
    "insert_on_error": "Si algo sale mal…",
    "msg_no_saved_pipelines": "No hay canalizaciones guardadas disponibles en este proyecto.",
    "msg_select_task_first": "Seleccione primero un paso de tarea.",
    "msg_wizard_engines_only": "El asistente solo está disponible para los motores NetWeaver, CDP y Portfolio.",
    "msg_open_from_analysis": "Abra el editor desde dentro de un análisis para usar el asistente de configuración.",
    "msg_wizard_open_failed": "No se pudo abrir el asistente:\n\n{error}",
    "msg_clear_wizard_confirm": "¿Borrar la configuración del asistente para esta tarea? Los campos sin procesar de abajo se conservarán.",
    "msg_resolve_before_saving": "Resuelva lo siguiente antes de guardar:\n\n{issues}"
  },
  "edit_node": {
    "title_workspace": "Editar espacio de trabajo",
    "title_study": "Editar área de estudio",
    "err_workspace_not_found": "No se pudo encontrar el espacio de trabajo seleccionado.",
    "err_study_not_found": "No se pudo encontrar el área de estudio seleccionada.",
    "err_name_required": "El nombre no puede estar vacío.",
    "err_workspace_save_failed": "No se pudo guardar el espacio de trabajo en los metadatos.",
    "err_study_save_failed": "No se pudo guardar el área de estudio en los metadatos.",
    "label_name": "Nombre:",
    "label_description": "Descripción:",
    "label_comments": "Comentarios:"
  },
  "netweaver_graph": {
    "window_title": "Red NetWeaver – {name}",
    "context": "Tema: {topic} · Entidad: {feature}",
    "context_no_feature": "Tema: {topic} · ninguna entidad seleccionada",
    "context_topics_mode": "Jerarquía de temas – {name}",
    "btn_back": "◀ Atrás",
    "btn_fit": "Ajustar",
    "btn_fit_tip": "Ajustar a la ventana (Ctrl+0)",
    "btn_zoom_in": "Acercar (Ctrl+rueda)",
    "btn_zoom_out": "Alejar (Ctrl+rueda)",
    "btn_details": "Detalles",
    "btn_close": "Cerrar",
    "badge_queued": "en cola",
    "badge_on_map": "en el mapa",
    "tip_column": "Columna: {column}",
    "tip_value": "Valor: {value}",
    "tip_class": "Clase: {label}",
    "tip_type": "Tipo: {type}",
    "tip_queued": "En cola para añadir al mapa",
    "tip_on_map": "Ya está en el mapa",
    "tip_ignored": "Ignorado",
    "tip_no_feature": "Ninguna entidad seleccionada",
    "tip_db_field": "Columna de datos: {column}",
    "value_no_data": "Sin datos",
    "placeholder_no_topics": "No hay temas de NetWeaver disponibles.",
    "status_topics_fallback": "Motor NetWeaver no disponible — solo se muestra la jerarquía de temas.",
    "status_engine_error": "Falló la llamada al motor: {error}",
    "status_no_row": "Seleccione una fila en la tabla de resultados para colorear esta red.",
    "status_drill_failed": "'{name}' no puede abrirse como red propia.",
    "detail_no_selection": "Haga clic en un nodo para inspeccionarlo.",
    "detail_children": "Nodos hijos",
    "detail_type": "Tipo: {type}",
    "detail_hint": "Sugerencia: {hint}",
    "detail_db_field": "Columna de datos: {column}",
    "detail_connection": "Conexión: {connection}",
    "detail_result_column": "Columna de resultados: {column}",
    "tab_network": "Red",
    "tab_outline": "Esquema",
    "tab_nodes": "Metas && Cálculos",
    "tab_data": "Asignaciones de datos",
    "btn_reset_whatifs": "Restablecer hipótesis",
    "btn_reset_whatifs_count": "Restablecer hipótesis ({count})",
    "btn_reset_whatifs_tip": "Borra todas las hipótesis de ignorar y restaura los valores persistidos del modelo.",
    "whatif_conditional": "Ignorar (condicional) — hipótesis",
    "whatif_persistent": "Ignorar (persistente) — hipótesis",
    "whatif_tip": "Solo se aplica a esta sesión del visor; el archivo del modelo nunca se modifica.",
    "outline_col_node": "Nodo",
    "outline_col_value": "Valor",
    "outline_loading": "Cargando…",
    "outline_no_network": "(sin red)",
    "outline_truncated": "… (truncado)",
    "nodes_goals": "Metas",
    "nodes_calcs": "Nodos calculados",
    "data_col_variable": "Variable del modelo",
    "data_col_column": "Columna de datos",
    "data_col_value": "Valor de la fila",
    "data_unmapped": "(sin asignar)",
    "status_truncated": "Red truncada por el límite de tamaño — profundice en un subárbol para ver más.",
    "status_missing_overrides": "Hipótesis no encontrada(s) en el modelo: {names}",
    "tab_documents": "Documentos",
    "docs_kb_header": "Base de conocimiento – {name}",
    "docs_select_prompt": "Seleccione una entrada para leer su documentación.",
    "docs_none": "Este modelo no contiene documentación.",
    "docs_no_content": "(sin documentación en esta entrada)",
    "docs_hint_label": "Sugerencia:",
    "docs_link_label": "Enlace:",
    "hint_drill": "Doble clic en un nodo para profundizar · Esc vuelve atrás",
    "status_unresolved": "{count} variable(s) de entrada sin resolver — vea Asignaciones de datos.",
    "status_no_data_count": "{count} nodo(s) sin datos para esta entidad."
  },
  "netweaver_inspector": {
    "window_title": "Inspector de nodos – {topic}",
    "header": "<b>Tema:</b> {topic}    <b>Columna:</b> {column}    <b>Flujo:</b> {workflow}",
    "selected_row": "<b>Fila seleccionada:</b> {row}    <b>Valor:</b> {value}",
    "unclassified": "Sin clasificar",
    "legend_title": "Leyenda de clases",
    "col_class": "Clase",
    "col_count": "Recuento",
    "col_percent": "% de válidos",
    "btn_close": "Cerrar",
    "total_rows": "Filas totales: {count}",
    "non_null": "Valores no nulos: {count}",
    "null": "Valores nulos: {count}",
    "minimum": "Mínimo: {value}",
    "maximum": "Máximo: {value}",
    "mean": "Media: {value}",
    "median": "Mediana: {value}",
    "no_numeric": "Esta columna no contiene valores numéricos para resumir.",
    "chart_title": "Distribución de clases – {column}",
    "chart_value_label": "número de filas",
    "chart_empty": "Sin datos numéricos para graficar."
  },
  "rich_comments": {
    "tip_bold": "Negrita",
    "tip_italic": "Cursiva",
    "tip_underline": "Subrayado",
    "tip_bullets": "Lista con viñetas",
    "tip_numbering": "Lista numerada",
    "tip_color": "Color del texto",
    "tip_link": "Insertar enlace",
    "tip_undo": "Deshacer",
    "tip_redo": "Rehacer",
    "color_dialog_title": "Color del texto",
    "link_dialog_title": "Insertar enlace",
    "link_dialog_prompt": "Dirección del enlace (URL):"
  }
}
