//! Git-panel + Git-dialog strings for this locale.
//!
//! Split out of `es.rs` to keep that table under the
//! repo's 800-line file cap. The main table falls through
//! here for any `git.*` key.

pub fn lookup(key: &str) -> Option<&'static str> {
    Some(match key {
        "git.openPanel" => "Abrir panel de Git",
        "git.closePanel" => "Cerrar panel de Git",
        "git.title" => "Git · {{fileName}}",
        "git.titleNoFile" => "Git · (Sin archivo)",
        "git.close" => "Cerrar",
        "git.initializing" => "Inicializando repositorio…",
        "git.conflict.title" => "Conflicto de fusión",
        "git.conflict.description" => "Resuelve cada conflicto usando las tarjetas de abajo y luego aplica la fusión.",
        "git.conflict.abort" => "Abortar fusión",
        "git.conflict.nonOp.title" => "Fusión pausada en archivos distintos de .op",
        "git.conflict.nonOp.description" => "La fusión de .op terminó, pero otros archivos del repositorio siguen sin resolverse. Resuélvelos fuera de OpenPencil y luego continúa.",
        "git.conflict.nonOp.unresolvedHeading_one" => "1 archivo necesita atención",
        "git.conflict.nonOp.unresolvedHeading_other" => "{{count}} archivos necesitan atención",
        "git.conflict.nonOp.continue" => "Continuar fusión",
        "git.conflict.nonOp.abort" => "Cancelar fusión",
        "git.conflict.banner.progress" => "Resuelto {{resolved}} / {{total}}",
        "git.conflict.banner.apply" => "Aplicar fusión",
        "git.conflict.banner.continue" => "Continuar",
        "git.conflict.banner.finalizeError" => "No se pudo aplicar: {{message}}",
        "git.conflict.banner.pollError" => "Sondeo de estado pausado por un error: {{message}}",
        "git.conflict.banner.reopenMessage" => "Panel reabierto durante la fusión — por favor, cancela y vuelve a hacer pull.",
        "git.conflict.list.heading" => "Todos los conflictos",
        "git.conflict.list.progress" => "{{resolved}} / {{total}} resueltos",
        "git.conflict.list.allResolved" => "Todo resuelto",
        "git.conflict.list.allOurs" => "Todo el mío",
        "git.conflict.list.allTheirs" => "Todo el suyo",
        "git.conflict.item.nodeConflict" => "Conflicto de nodo",
        "git.conflict.item.fieldConflict" => "Conflicto de campo",
        "git.conflict.item.resolved" => "Resuelto",
        "git.conflict.card.ours" => "El mío",
        "git.conflict.card.theirs" => "El suyo",
        "git.conflict.card.base" => "Base",
        "git.conflict.card.keepMine" => "Usar el mío",
        "git.conflict.card.keepTheirs" => "Usar el suyo",
        "git.conflict.card.oursThumbnailAlt" => "Mi versión",
        "git.conflict.card.theirsThumbnailAlt" => "Su versión",
        "git.conflict.editor.editManually" => "Editar manualmente",
        "git.conflict.editor.cancel" => "Cancelar",
        "git.conflict.editor.apply" => "Aplicar",
        "git.conflict.editor.invalidJson" => "JSON inválido",
        "git.conflict.editor.textareaLabel" => "Editar valor JSON",
        "git.error.dismiss" => "Descartar",
        "git.error.retry" => "Reintentar",
        "git.error.title" => "Algo salió mal",
        "git.empty.heading" => "Aún no hay historial de versiones",
        "git.empty.optional" => "Git es opcional — puedes omitirlo",
        "git.empty.requireSavedFile" => "Guarda el archivo .op para habilitar el historial",
        "git.empty.newCard" => "Nuevo",
        "git.empty.newCardDescription" => "Crear historial local",
        "git.empty.openCard" => "Abrir",
        "git.empty.openCardDescription" => "Repositorio existente",
        "git.empty.cloneCard" => "Clonar",
        "git.empty.cloneCardDescription" => "Desde un remoto",
        "git.author.heading" => "Autor del commit",
        "git.author.subheading" => "Guardar el primer commit requiere nombre y correo",
        "git.author.nameLabel" => "Nombre",
        "git.author.namePlaceholder" => "Tu nombre",
        "git.author.emailLabel" => "Correo",
        "git.author.emailPlaceholder" => "tu@ejemplo.com",
        "git.author.submit" => "Guardar",
        "git.author.cancel" => "Cancelar",
        "git.author.validationName" => "El nombre es obligatorio",
        "git.author.validationEmail" => "Se requiere un correo válido",
        "git.picker.heading" => "{{count}} archivos .op en este repositorio:",
        "git.picker.milestoneCount" => "{{count}} hitos",
        "git.picker.noHistory" => "Sin historial",
        "git.picker.lastCommit" => "{{message}} · {{time}}",
        "git.picker.bindButton" => "Rastrear este archivo",
        "git.picker.bindAndOpenButton" => "Rastrear y abrir",
        "git.picker.back" => "Atrás",
        "git.picker.backClose" => "Cancelar",
        "git.picker.empty.heading" => "No hay archivos .op en este repositorio",
        "git.picker.empty.body" => "El panel de Git necesita al menos un archivo .op para funcionar.",
        "git.picker.empty.close" => "Cerrar panel",
        "git.autoBind.confirmHeading" => "{{fileName}} encontrado — ¿abrirlo?",
        "git.autoBind.openButton" => "Abrir",
        "git.autoBind.dismissButton" => "Omitir",
        "git.relativeTime.justNow" => "ahora",
        "git.relativeTime.minutesAgo" => "hace {{count}}m",
        "git.relativeTime.hoursAgo" => "hace {{count}}h",
        "git.relativeTime.daysAgo" => "hace {{count}}d",
        "git.commit.placeholder" => "Describe este cambio…",
        "git.commit.submitButton" => "Guardar hito",
        "git.commit.saveRequiredTitle" => "Guarda el documento primero",
        "git.commit.saveRequiredBody" => "Tienes cambios sin guardar. Guarda el documento para continuar: {{label}}",
        "git.commit.saveRequiredSave" => "Guardar",
        "git.commit.saveRequiredCancel" => "Cancelar",
        "git.header.autosaveError" => "Error de auto-guardado",
        "git.header.autosaveErrorTitle" => "El último auto-guardado falló",
        "git.header.authorMissingWarning" => "Configura el autor del commit para registrar la atribución",
        "git.header.overflowSwitchTracked" => "Cambiar archivo rastreado…",
        "git.header.overflowClearAuthor" => "Borrar autor del commit",
        "git.header.overflowCloseRepo" => "Cerrar repositorio",
        "git.header.overflowRemoteSettings" => "Ajustes del remoto…",
        "git.header.overflowSshKeys" => "Claves SSH…",
        "git.header.overflowMoreActions" => "Más acciones",
        "git.history.empty" => "Sin historial",
        "git.history.autosaveGroup_one" => "1 auto-guardado",
        "git.history.autosaveGroup_other" => "{{count}} auto-guardados",
        "git.history.autosaveLabel" => "auto {{time}}",
        "git.history.milestoneDetailTitle" => "Detalles del hito",
        "git.history.restoreButton" => "Restaurar",
        "git.history.copyHashButton" => "Copiar hash",
        "git.history.copiedToast" => "Copiado",
        "git.history.diff.loading" => "Cargando diff…",
        "git.history.diff.initialCommit" => "Commit inicial — sin padre para comparar",
        "git.history.diff.noChanges" => "No se detectaron cambios",
        "git.history.diff.error" => "Diff no disponible: {{message}}",
        "git.history.diff.framesChanged_one" => "1 marco cambiado",
        "git.history.diff.framesChanged_other" => "{{count}} marcos cambiados",
        "git.history.diff.nodesAdded_one" => "1 nodo añadido",
        "git.history.diff.nodesAdded_other" => "{{count}} nodos añadidos",
        "git.history.diff.nodesRemoved_one" => "1 nodo eliminado",
        "git.history.diff.nodesRemoved_other" => "{{count}} nodos eliminados",
        "git.history.diff.nodesModified_one" => "1 nodo modificado",
        "git.history.diff.nodesModified_other" => "{{count}} nodos modificados",
        "git.history.promoteButton" => "Promover a hito",
        "git.history.promoteSuccessToast" => "Promovido a hito",
        "git.history.loadMore" => "Cargar más",
        "git.autosave.messagePrefix" => "auto",
        "git.autosave.messageDiffSuffix" => "",
        "git.branch.listHeading" => "Ramas",
        "git.branch.createAction" => "Nueva rama",
        "git.branch.createPlaceholder" => "feature/login-redesign",
        "git.branch.createSubmit" => "Crear rama",
        "git.branch.createEmpty" => "Escribe un nombre de rama",
        "git.branch.createExists" => "La rama {{name}} ya existe",
        "git.branch.mergeAction" => "Fusionar rama…",
        "git.branch.mergeHeading" => "Fusionar en {{name}}",
        "git.branch.deletePrompt" => "¿Eliminar la rama {{name}}?",
        "git.branch.deleteLabel" => "Eliminar la rama {{name}}",
        "git.branch.deleteWarning" => "La rama {{name}} tiene commits sin fusionar",
        "git.branch.deleteConfirm" => "Eliminar",
        "git.branch.deleteForce" => "Forzar eliminación",
        "git.branch.cancel" => "Cancelar",
        "git.branch.conflictDisabled" => "Termina la fusión antes de cambiar de rama",
        "git.branch.noCommits" => "Aún no hay commits",
        "git.wizard.clone.heading" => "Clonar un repositorio remoto",
        "git.wizard.clone.subheading" => "Elige una URL remota y una carpeta de destino.",
        "git.wizard.clone.urlLabel" => "URL remota",
        "git.wizard.clone.urlPlaceholder" => "https://github.com/owner/repo.git",
        "git.wizard.clone.destLabel" => "Carpeta de destino",
        "git.wizard.clone.destPlaceholder" => "/ruta/del/clon",
        "git.wizard.clone.destPickButton" => "Examinar…",
        "git.wizard.clone.usernameLabel" => "Usuario (opcional)",
        "git.wizard.clone.tokenLabel" => "Token de acceso (opcional)",
        "git.wizard.clone.tokenPlaceholder" => "ghp_… déjalo vacío para repos públicos",
        "git.wizard.clone.anonymousHint" => "Déjalo vacío para clonar de forma anónima (solo repos públicos).",
        "git.wizard.clone.sshHint" => "Esta URL requiere autenticación con clave SSH.",
        "git.wizard.clone.hostDetected" => "Detectado: {{host}} · {{mode}}",
        "git.wizard.clone.authMode.token-or-anon" => "token o anónimo",
        "git.wizard.clone.authMode.ssh" => "clave SSH",
        "git.wizard.clone.cancel" => "Cancelar",
        "git.wizard.clone.submit" => "Clonar",
        "git.wizard.clone.validationUrl" => "La URL remota es obligatoria",
        "git.wizard.clone.validationDest" => "La carpeta de destino es obligatoria",
        "git.wizard.clone.validationTokenUsername" => "Se necesita un usuario cuando se proporciona un token",
        "git.wizard.clone.error.clone-network" => "Error de red al clonar. Comprueba tu conexión y vuelve a intentarlo.",
        "git.wizard.clone.error.network" => "Error de red. Comprueba tu conexión y vuelve a intentarlo.",
        "git.wizard.clone.error.timeout" => "El clon agotó el tiempo. Inténtalo de nuevo o usa un repositorio más pequeño.",
        "git.wizard.clone.error.auth-required" => "Este repositorio requiere autenticación.",
        "git.wizard.clone.error.auth-failed" => "La autenticación falló. Comprueba tu usuario y token.",
        "git.wizard.clone.error.auth-token-invalid" => "El token de acceso fue rechazado. Genera uno nuevo y vuelve a intentarlo.",
        "git.wizard.clone.error.clone-failed" => "Error al clonar. Verifica que la URL apunte a un repositorio real.",
        "git.wizard.clone.error.clone-target-exists" => "La carpeta de destino ya existe o no está vacía.",
        "git.pull.label" => "Pull",
        "git.pull.tooltip" => "Pull desde origin",
        "git.pull.noRemote" => "Sin remoto configurado — añádelo en la configuración de Git",
        "git.pull.retry" => "Reintentar pull",
        "git.push.label" => "Push",
        "git.push.tooltip_one" => "Push 1 commit a origin",
        "git.push.tooltip_other" => "Push {{count}} commits a origin",
        "git.push.noRemote" => "Sin remoto configurado — añádelo en la configuración de Git",
        "git.push.upToDate" => "Nada que enviar — estás al día",
        "git.push.retry" => "Reintentar push",
        "git.push.rejectedBody" => "El remoto tiene commits que aún no tienes. Haz pull primero y luego push de nuevo.",
        "git.push.rejectedDismiss" => "Cerrar",
        "git.push.rejectedPull" => "Pull ahora",
        "git.remote.dismissError" => "Cerrar",
        "git.remote.settingsLabel" => "Ajustes del remoto",
        "git.remote.settingsHeading" => "Remoto",
        "git.remote.back" => "Atrás",
        "git.remote.cancel" => "Cancelar",
        "git.remote.emptyNoOrigin" => "No hay remoto configurado. Añade uno:",
        "git.remote.urlLabel" => "URL de origin",
        "git.remote.urlPlaceholder" => "https://github.com/owner/repo.git",
        "git.remote.saveButton" => "Guardar",
        "git.remote.clearButton" => "Borrar",
        "git.remote.clearConfirmHeading" => "¿Borrar origin?",
        "git.remote.clearConfirmBody" => "Esto eliminará el remoto origin de este repositorio.",
        "git.remote.clearConfirmAction" => "Confirmar",
        "git.remote.aheadBehind" => "{{ahead}} adelante · {{behind}} atrás",
        "git.remote.fetchButton" => "Fetch",
        "git.remote.sshIsoUnsupported" => "El motor integrado no admite transporte SSH. Instala el git del sistema o usa una URL remota HTTPS.",
        "git.remote.storedAuthLabel" => "Credenciales guardadas",
        "git.remote.storedAuth.token" => "Token",
        "git.remote.storedAuth.ssh" => "Clave SSH",
        "git.remote.storedAuth.none" => "Ninguna",
        "git.remote.storedAuth.loading" => "Cargando…",
        "git.remote.storedAuth.noHost" => "Ningún host detectado",
        "git.remote.clearAuthButton" => "Borrar credenciales guardadas",
        "git.ssh.label" => "Claves SSH",
        "git.ssh.heading" => "Claves SSH",
        "git.ssh.back" => "Atrás",
        "git.ssh.cancel" => "Cancelar",
        "git.ssh.isoUnsupported" => "El remoto actual usa SSH, pero el motor integrado no puede realizar transporte SSH. Instala el git del sistema o cambia la URL remota a HTTPS.",
        "git.ssh.emptyList" => "Aún no hay claves SSH.",
        "git.ssh.generateAction" => "Generar nueva",
        "git.ssh.importAction" => "Importar existente",
        "git.ssh.copyPublicKey" => "Copiar clave pública",
        "git.ssh.copiedHint" => "Copiada",
        "git.ssh.copyUnsupported" => "Portapapeles no disponible: copia esta clave manualmente.",
        "git.ssh.deleteKey" => "Eliminar {{name}}",
        "git.ssh.deletePrompt" => "¿Eliminar la clave SSH {{name}}?",
        "git.ssh.deleteConfirm" => "Eliminar",
        "git.ssh.currentHostBadge" => "host actual",
        "git.ssh.hostLabel" => "Host",
        "git.ssh.hostPlaceholder" => "github.com",
        "git.ssh.commentLabel" => "Comentario",
        "git.ssh.commentPlaceholder" => "laptop@home",
        "git.ssh.generateSubmit" => "Generar",
        "git.ssh.importPathLabel" => "Ruta de la clave privada",
        "git.ssh.importPathPlaceholder" => "/path/to/id_ed25519",
        "git.ssh.importBrowse" => "Examinar…",
        "git.ssh.importSubmit" => "Importar",
        "git.ssh.validationHost" => "El host es obligatorio",
        "git.ssh.validationComment" => "El comentario es obligatorio",
        "git.ssh.validationImportPath" => "Selecciona un archivo de clave privada para importar",
        "git.ssh.providerLink" => "Abrir los ajustes de claves SSH de {{host}}",
        "git.ssh.genericGuidance" => "Copia la clave pública y añádela a los ajustes de claves SSH de tu proveedor de Git.",
        "git.auth.formLabel" => "Credenciales de Git",
        "git.auth.heading" => "Autenticar con {{host}}",
        "git.auth.headingUnknown" => "Autenticar con este remoto",
        "git.auth.modeToggleLabel" => "Tipo de credencial",
        "git.auth.modeToken" => "Token",
        "git.auth.modeSsh" => "SSH",
        "git.auth.usernameLabel" => "Usuario (opcional)",
        "git.auth.tokenLabel" => "Token de acceso",
        "git.auth.tokenPlaceholder" => "ghp_… o PAT",
        "git.auth.sshKeyLabel" => "Clave SSH",
        "git.auth.sshNoKeys" => "No hay claves SSH disponibles. Importa o genera una primero en la configuración de Git.",
        "git.auth.rememberLabel" => "Recordar esta credencial para este host",
        "git.auth.rememberHint" => "Recordar esta credencial para este host",
        "git.auth.cancel" => "Cancelar",
        "git.auth.validationToken" => "El token de acceso es obligatorio",
        "git.auth.validationSshKey" => "Selecciona una clave SSH",
        "git.auth.error.auth-required" => "Se requiere autenticación para este remoto.",
        "git.auth.error.auth-failed" => "Autenticación fallida. Comprueba tus credenciales y vuelve a intentarlo.",
        "git.auth.error.auth-token-invalid" => "El token de acceso fue rechazado. Genera uno nuevo e inténtalo de nuevo.",
        "git.error.pushTitle" => "Error al hacer push",
        "git.error.pushBody" => "git push no pudo completarse.",
        "git.error.pullTitle" => "Error al hacer pull",
        "git.error.pullBody" => "git pull no pudo completarse.",
        "git.error.commitTitle" => "Error al confirmar",
        "git.error.commitBody" => "git commit no pudo completarse.",
        "git.merge.conflictTitle" => "La fusión tiene conflictos",
        "git.merge.conflictBody" => "Fusionar {{branch}} genera conflictos en {{count}} archivo(s); la fusión no se aplicó y tu árbol de trabajo no cambió. Resuelve los conflictos primero:",
        "git.ssh.readyTitle" => "Clave SSH lista",
        "git.ssh.readyBody" => "Se generó y vinculó una clave SSH para {{host}}; pull y push ya la usan. Añade esta clave pública a la configuración de claves SSH del host:",
        "git.panel.title" => "Git",
        "git.panel.loading" => "Cargando repositorio…",
        "git.panel.notARepo" => "No es un repositorio git.",
        "git.panel.detachedHead" => "HEAD desacoplada",
        "git.panel.branch" => "⎇ {{name}}",
        "git.panel.abortMerge" => "Cancelar fusión",
        "git.panel.refresh" => "Actualizar",
        "git.panel.complete" => "Completar",
        "git.panel.commit" => "Confirmar",
        "git.panel.pull" => "Traer",
        "git.panel.push" => "Subir",
        "git.panel.mergeInProgress" => "Fusión en curso — resuelve los conflictos",
        "git.panel.conflicts" => "Conflictos",
        "git.panel.noConflicts" => "Sin conflictos.",
        "git.panel.changes" => "Cambios — {{staged}}/{{total}} preparados",
        "git.panel.recentCommits" => "Confirmaciones recientes",
        "git.panel.noCommits" => "Aún no hay confirmaciones.",
        "git.panel.branches" => "Ramas",
        "git.panel.commitPlaceholder" => "Mensaje de confirmación…",
        "git.panel.footer" => "Haz clic en la línea de estado o una fila para ver su diff",
        "git.panel.pulling" => "Trayendo…",
        "git.panel.pushing" => "Subiendo…",
        "git.panel.changedConflicted" => "{{changed}} cambiados · {{conflicted}} en conflicto",
        "git.panel.changed" => "{{count}} cambiados",
        "git.panel.clean" => "Árbol de trabajo limpio",
        "git.panel.diffTitle" => "Diff · {{title}}",
        "git.panel.diffNoChanges" => "Sin cambios.",
        "git.panel.diffComputing" => "Calculando diff…",
        "git.panel.diffLoading" => "cargando…",
        "git.panel.diffWorkingTree" => "Árbol de trabajo",
        "git.panel.diffCommit" => "confirmación {{rev}}",
        "git.panel.stage" => "Preparar",
        "git.panel.diffFooter" => "Líneas {{start}}–{{end}} de {{total}}{{col}}",
        "git.panel.diffCol" => " · col {{n}}",
        "git.panel.remotes" => "Remotos",
        "git.panel.remotesMore" => "{{name}} +{{count}} más",
        "git.panel.noRemote" => "Sin remoto — añade origin abajo.",
        "git.panel.remotePlaceholder" => "https://github.com/you/repo.git",
        "git.panel.httpsPlaceholder" => "usuario:token",
        "git.panel.set" => "Establecer",
        "git.panel.login" => "Iniciar sesión",
        "git.panel.resolveTitle" => "Resolver fusión — {{branch}}",
        "git.panel.resolveSubtitle" => "{{count}} conflicto(s) de nodo — elige un lado para cada uno",
        "git.panel.ours" => "El nuestro",
        "git.panel.theirs" => "El suyo",
        "git.panel.applyMerge" => "Aplicar fusión",
        "git.panel.resolveFooter" => "Aplicar repite la fusión con tus elecciones",
        "git.panel.resolveFooterMore" => "+{{count}} más conservados como nuestros · Cancelar aborta la fusión",
        "git.conflict.bothModified" => "modificado en ambos",
        "git.conflict.structuralChange" => "orden de hijos cambiado",
        "git.conflict.deleteModify" => "eliminar / modificar",
        "git.conflict.bothAdded" => "añadido en ambos",
        "git.conflict.addedOnRemote" => "añadido en remoto",
        "git.merge.autoMergeable" => "{{path}} — fusionable automáticamente (estructura)",
        "git.merge.andMore" => "    … y {{count}} más",
        "git.panel.diffError" => "(error al obtener diff: {{message}})",
        "git.reload.confirmTitle" => "Cambios sin guardar",
        "git.reload.confirmBody" => "Esta acción de Git recarga el documento desde el disco y descarta tus ediciones sin guardar.\n\nSí = Guardar primero · No = Descartar · Cancelar = quedarse.",
        "git.gitError.notFound" => "Git no está instalado — instala Git para usar el control de versiones.",
        "git.gitError.notARepo" => "No es un repositorio git: {{detail}}",
        "git.gitError.commandFailed" => "El comando git falló:\n{{detail}}",
        "git.gitError.mergeInProgress" => "Ya hay una fusión en curso — resuélvela o cancélala primero.",
        "git.gitError.workingTreeDirty" => "El árbol de trabajo tiene cambios sin confirmar — confírmalos o guárdalos antes de fusionar.",
        "git.gitError.io" => "Error de proceso git: {{detail}}",
        _ => return None,
    })
}
