// Spanish translations. Missing keys fall back to English (see en.ts / index.ts). export const es = { common: { cancel: "Cancelar", save: "Guardar", close: "Cerrar", delete: "Eliminar", rename: "Renombrar", create: "Crear", apply: "Aplicar", choose: "Elegir…", connect: "Conectar", local: "Local", }, app: { notConnectedTitle: "No conectado a la aplicación", notConnectedBody: "Esta página se ejecuta en un navegador normal. Abre la aplicación de escritorio para usarla.", managerOpen: "El gestor de conexiones está abierto.", showConnections: "Mostrar conexiones", }, tabBar: { connections: "Conexiones", manageConnections: "Gestionar conexiones", newTab: "Nueva pestaña ({mod}T)", closeTab: "Cerrar pestaña ({mod}W)", options: "Opciones", update: "Actualización disponible", updating: "Actualizando", restartToUpdate: "Reiniciar para aplicar", updateTooltip: "Actualización disponible: miniSCP {version}", }, options: { title: "Opciones", language: "Idioma", system: "Sistema", skin: { label: "Aspecto", modern: "Moderno", win7: "Windows 7", restartHint: "Se aplica la próxima vez que abras miniSCP", }, theme: { label: "Tema", system: "Sistema", light: "Claro", dark: "Oscuro" }, tone: { label: "Tono", dark: "Oscuro", darker: "Más oscuro" }, accent: { label: "Acento" }, accentNames: { graphite: "Grafito", blue: "Azul", indigo: "Índigo", purple: "Morado", rose: "Rosa", orange: "Naranja", green: "Verde", teal: "Turquesa", }, fileIcons: { label: "Iconos", plain: "Simple", multi: "Color" }, interface: { label: "Interfaz", smaller: "Más pequeña", larger: "Más grande", reset: "Restablecer al 100%" }, speedUnit: { label: "Unidad de velocidad" }, transfers: { label: "Transferencias", single: "Una", multi: "Varias" }, atOnce: "A la vez", editor: { label: "Editor", builtin: "Integrado", custom: "Personalizado" }, systemDefault: "Predeterminado del sistema", resetDefault: "Restablecer al predeterminado", finishedTransfers: { label: "Transferencias completadas", autoClear: "Auto-limpiar", keep: "Mantener" }, }, kinds: { folder: "Carpeta", symlink: "Enlace simbólico", file: "Archivo", image: "Imagen", audio: "Audio", video: "Vídeo", archive: "Archivo comprimido", code: "Código", document: "Documento", }, columns: { name: "Nombre", size: "Tamaño", mtime: "Modificado", kind: "Tipo", rights: "Permisos", owner: "Propietario", group: "Grupo", }, panel: { choosePanel: "Elige qué muestra este panel", copy: "Enviar", copyToRight: "Enviar al panel derecho (F5)", copyToLeft: "Enviar al panel izquierdo (F5)", edit: "Editar", editFile: "Editar archivo (F4)", rename: "Renombrar (F2)", newFolder: "Nueva carpeta (F7)", newFile: "Nuevo archivo", permissions: "Permisos", delete: "Eliminar", deleteHint: "Eliminar (F8 / Supr)", parentDir: "Carpeta superior (Retroceso)", refresh: "Actualizar", clearFilter: "Borrar filtro (Esc)", sshConfig: "~/.ssh/config", connectingTo: "Conectando con {name}…", emptyDir: "Carpeta vacía", noMatches: "Sin coincidencias", matches: { one: "{count} coincidencia · Esc", other: "{count} coincidencias · Esc" }, }, connMgr: { title: "Conexiones", importWinscp: "Importar de WinSCP…", importWinscpHint: "Importar sesiones de una exportación WinSCP.ini", newConnection: "Conexión", newConnectionHint: "Nueva conexión", newStack: "Grupo", newStackHint: "Nuevo grupo", expand: "Expandir", collapse: "Contraer", renameStack: "Renombrar grupo", deleteStack: "Eliminar grupo", openStack: "Abrir grupo en pestañas", empty: "vacío", connectionsHeader: "Conexiones", noneTitle: "Aún no hay conexiones guardadas.", noneBody: "Crea una o importa tus sesiones de WinSCP.", name: "Nombre", namePlaceholder: "mi servidor", host: "Servidor", port: "Puerto", stack: "Grupo", stackNone: "(ninguno)", username: "Usuario", remotePath: "Ruta remota (opcional)", remotePathPlaceholder: "carpeta de inicio", auth: "Autenticación", authPassword: "Contraseña", authKey: "Clave privada", password: "Contraseña", privateKeyFile: "Archivo de clave privada", passphrase: "Frase de contraseña (opcional)", localDir: "Carpeta local (opcional)", localDirPlaceholder: "~/proyectos/mi-servidor", localDirHint: "El otro panel se abre aquí cuando está en Local y no se ha navegado.", more: "Más…", less: "Menos…", selectPrompt: "Selecciona una conexión o crea una nueva.", newStackTitle: "Nuevo grupo", newStackPrompt: "nombre del grupo", renameStackTitle: "Renombrar grupo", deleteStackTitle: "Eliminar grupo", deleteStackBody: '¿Eliminar el grupo "{name}"? Sus conexiones se mantienen, sin agrupar.', deleteConnectionTitle: "Eliminar conexión", deleteConnectionBody: '¿Eliminar "{name}"?', }, editor: { noFileTitle: "Ningún archivo que editar", noFileBody: "Esta ventana se abrió sin contexto de editor. Abre archivos desde la aplicación.", wrap: "Ajustar", wrapHint: "Ajustar líneas largas — oculta los números de línea ({alt}Z)", findHint: "Buscar ({mod}F)", findPlaceholder: "Buscar en el archivo", prevMatch: "Coincidencia anterior (⇧↵)", nextMatch: "Coincidencia siguiente (↵)", closeHint: "Cerrar (Esc)", disconnected: "Desconectado de {name} — no se podrá guardar, pero tu texto se conserva en esta ventana.", cantOpen: "No se puede abrir {name}", closeWindow: "Cerrar ventana", shortcuts: "{mod}S guardar · {mod}F buscar · {mod}W cerrar", lines: { one: "{count} línea", other: "{count} líneas" }, close: "Cerrar", save: "Guardar", saveChangesTitle: '¿Guardar los cambios en "{name}"?', saveChangesBody: "Perderás tus cambios si no los guardas.", dontSave: "No guardar", countLabel: "{current} de {total}", noMatches: "Sin coincidencias", }, transfer: { summary: "{active} activas · {finished} completadas", clearFinished: "Limpiar completadas", cancel: "Cancelar", dismiss: "Descartar", showDetails: "Ver detalles de transferencias", copying: "Copiando {name} · {percent}%{speed}", queued: "{count} en cola", failed: { one: "{count} transferencia fallida", other: "{count} transferencias fallidas" }, finished: "Transferencias completadas", ready: "Listo", items: "{count} elementos", selected: "{count} seleccionados", queuedState: "En cola", scanning: "Analizando…", failedState: "Fallida", cancelled: "Cancelada", completedFiles: { one: "{count} archivo · {size}", other: "{count} archivos · {size}" }, left: "{eta} restante", }, dialogs: { chmodTitle: "Permisos", chmodItems: "{count} elementos", read: "Lectura", write: "Escritura", execute: "Ejecución", roleOwner: "Propietario", roleGroup: "Grupo", roleOthers: "Otros", octal: "Octal", mergeFolder: "Combinar carpeta", replace: "Reemplazar", merge: "Combinar", mergeAll: "Combinar todo", replaceAll: "Reemplazar todo", skip: "Omitir", skipAll: "Omitir todo", ofTotal: "{index} de {total}", overwriteDirBody: "El destino ya tiene una carpeta con este nombre. Combinar puede reemplazar archivos dentro.", overwriteFileBody: "El destino ya tiene un archivo con este nombre.", source: "Origen", destination: "Destino", newer: "más reciente", }, toasts: { movedToTrash: 'Se movió "{name}" a la papelera', editingExternal: "Editando {name} — los cambios se suben automáticamente", nothingToCopy: "Nada que copiar (los enlaces simbólicos se omiten)", nothingToCopyAllSkipped: "Nada que copiar — se omitieron todos los elementos en conflicto", sameFolder: "Ambos paneles muestran la misma carpeta", sameFile: 'Se omitió "{name}" — es el mismo archivo', typeMismatch: 'Se omitió "{name}" — hay otro tipo de elemento en el camino', transferFailed: 'La transferencia "{name}" falló: {error}', unknownError: "error desconocido", saved: "Se guardó {name}", disconnectedReason: "{title}: desconectado ({reason})", imported: { one: "Se importó {count} conexión", other: "Se importaron {count} conexiones" }, importedIntoStacks: { one: " en {count} grupo nuevo", other: " en {count} grupos nuevos" }, importedSkipped: " ({skipped} omitidas)", leftoverTitle: "Archivos editados sobrantes", leftoverMore: ", +{count} más", leftoverBody: { one: "Una sesión anterior dejó {count} archivo editado temporal ({names}). ¿Eliminarlo?", other: "Una sesión anterior dejó {count} archivos editados temporales ({names}). ¿Eliminarlos?", }, leftoverClear: "Eliminar", }, fileActions: { deleteTitle: "Eliminar", deleteBody: "¿Eliminar {what}? Las carpetas se eliminan de forma recursiva. Esto no se puede deshacer.", deleteConfirm: "Eliminar", renameTitle: 'Renombrar "{name}"', renameConfirm: "Renombrar", newFolderTitle: "Nueva carpeta", newFolderPlaceholder: "nombre de la carpeta", newFileTitle: "Nuevo archivo", newFilePlaceholder: "nombre del archivo", createConfirm: "Crear", itemsCount: "{count} elementos", }, menu: { about: "Acerca de {app}", checkForUpdates: "Buscar actualizaciones…", quit: "Salir", file: "Archivo", newTab: "Nueva pestaña", closeTab: "Cerrar pestaña", newFolder: "Nueva carpeta", newFile: "Nuevo archivo", editFile: "Editar archivo", connect: "Conectar", connectionManager: "Gestor de conexiones…", edit: "Edición", view: "Ver", refresh: "Actualizar", window: "Ventana", }, ctx: { size: "Tamaño", modified: "Modificado", kind: "Tipo", rights: "Permisos", owner: "Propietario", group: "Grupo", revealFinder: "Mostrar en Finder", revealExplorer: "Mostrar en el Explorador", revealFileManager: "Mostrar en el gestor de archivos", moveToTrash: "Mover a la papelera", moveToRecycleBin: "Mover a la papelera de reciclaje", newFolder: "Nueva carpeta", newFile: "Nuevo archivo", refresh: "Actualizar", open: "Abrir", openDefault: "Abrir con la aplicación predeterminada", edit: "Editar", copyToOther: "Enviar al otro panel", rename: "Renombrar", permissions: "Permisos", copyPath: "Copiar ruta", delete: "Eliminar", columns: "Columnas", tabNew: "Nueva pestaña", tabClose: "Cerrar pestaña", tabCloseOthers: "Cerrar las demás pestañas", tabCloseRight: "Cerrar pestañas a la derecha", tabDisconnect: "Desconectar", trashTooltip: "La opción Restaurar de Finder no está disponible para elementos enviados a la papelera desde aquí", }, errors: { sshAgentUnavailable: "ssh-agent no disponible (SSH_AUTH_SOCK no está definido)", identityFileNotFound: "archivo de identidad no encontrado: {path}", sessionNotConnected: 'La sesión "{id}" no está conectada', localCannotDisconnect: "La sesión local no se puede desconectar", notADirectory: '"{path}" existe y no es una carpeta', sameFileTransfer: '"{name}": el origen y el destino son el mismo archivo', sameFileNoName: "El origen y el destino son el mismo archivo", folderOntoItself: "No se puede copiar una carpeta sobre sí misma", folderIntoItself: "No se puede copiar una carpeta dentro de sí misma", }, } as const;