{ "server": { "magic_link": { "page": { "expired_title": "Este enlace de inicio de sesión ya no es válido", "expired_body": "Es posible que el enlace haya expirado o ya se haya utilizado. Podemos enviarte uno nuevo — llegará a tu bandeja de entrada en unos segundos.", "resend_to": "Enviar un nuevo enlace a {{email}}", "generic_unavailable": "Este enlace de inicio de sesión ya no es válido. Es posible que ya se haya usado o que haya expirado. Solicita uno nuevo desde la página de inicio de sesión.", "service_unavailable": "El inicio de sesión por enlace mágico no está habilitado en este servidor.", "internal_error": "Algo salió mal al iniciar sesión. Por favor, inténtalo de nuevo.", "resend_failure": "Algo salió mal al enviar el enlace. Por favor, inténtalo de nuevo.", "cross_browser_title": "¿Continuar el inicio de sesión en este dispositivo?", "cross_browser_body": "Has abierto este enlace de inicio de sesión en un navegador o dispositivo diferente del que lo solicitó.", "cross_browser_warning": "Si solicitaste este enlace, es seguro continuar. Si no, cierra esta página — hacer clic en Continuar iniciaría sesión a otra persona en tu cuenta.", "cross_browser_continue": "Continuar e iniciar sesión", "resend_confirmation_title": "Revisa tu bandeja de entrada", "resend_confirmation_body": "Si el enlace de inicio de sesión pertenecía a una cuenta activa, se acaba de enviar uno nuevo. Por favor, revisa tu bandeja de entrada.", "return_link": "Volver a OxiCloud" }, "email": { "invitation": { "subject": "{{inviter}} ha compartido un {{kind}} contigo en OxiCloud", "body": "{{inviter_full}} ha compartido un {{kind}} contigo en OxiCloud.\n\nÁbrelo haciendo clic en el enlace de abajo:\n{{link}}\n\nEl enlace es de un solo uso y expira en {{ttl_hours}} horas.\nSi no esperabas esta invitación, puedes ignorar este mensaje.\n\n— OxiCloud" }, "login": { "subject": "Inicia sesión en OxiCloud", "body": "Hola,\n\nUsa el enlace de abajo para iniciar sesión en OxiCloud. El enlace es de un solo uso y expira en {{ttl_minutes}} minutos. Ábrelo en el mismo dispositivo donde lo solicitaste.\n\n{{link}}\n\nSi no solicitaste este enlace de inicio de sesión, puedes ignorar este mensaje — no se necesita ninguna acción adicional.\n\n— OxiCloud" }, "kind_file": "archivo", "kind_folder": "carpeta", "english_fallback_divider": "--- Versión en inglés a continuación ---" } }, "notification": { "share": { "subject": "{{inviter}} ha compartido un {{kind}} contigo en OxiCloud", "body": "{{inviter_full}} ha compartido un {{kind}} contigo en OxiCloud.\n\nAbre OxiCloud para ver tu nuevo recurso compartido:\n{{login_link}}\n\nPuede que tengas más recursos compartidos nuevos de {{inviter}} — inicia sesión para ver todos tus elementos compartidos.\n\n— OxiCloud\n\nRecibes este mensaje porque tienes una cuenta de OxiCloud y la preferencia de notificación de recursos compartidos está activada. Puedes desactivarla en tu perfil (Enviarme un correo cuando alguien comparta conmigo)." } } }, "app": { "title": "OxiCloud", "description": "Sistema de almacenamiento en la nube minimalista" }, "nav": { "files": "Archivos", "shared": "Compartidos", "recent": "Recientes", "favorites": "Favoritos", "photos": "Fotos", "music": "Música", "trash": "Papelera", "sharedwithme": "Compartidos conmigo", "profile": "Perfil", "shared_with_me": "Compartidos conmigo", "groups": "Grupos" }, "photos": { "empty_state": "Aún no hay fotos", "empty_hint": "Sube imágenes o videos para verlos aquí", "items_selected": "seleccionados", "view_daily": "Día", "view_monthly": "Mes", "view_yearly": "Año", "group_by": "Agrupar por" }, "music": { "create_playlist": "Crear Lista", "playlists": "Listas", "no_playlists": "Sin listas aún", "empty_hint": "Crea tu primera lista para empezar a organizar tu música", "select_playlist": "Selecciona una lista", "select_hint": "Elige una lista de la barra lateral o crea una nueva", "add_tracks": "Añadir Pistas", "no_tracks": "No hay pistas en esta lista", "unknown_artist": "Artista Desconocido", "unknown_title": "Desconocido", "confirm_delete": "¿Eliminar esta lista?", "playlist_name": "Nombre de la lista", "create": "Crear", "delete": "Eliminar", "share": "Compartir", "edit": "Editar", "play_all": "Reproducir Todo", "shuffle": "Aleatorio", "repeat": "Repetir", "repeat_one": "Repetir Una", "queue": "Cola", "queue_empty": "Cola vacía", "not_playing": "No reproduciendo", "play": "Reproducir", "pause": "Pausar", "previous": "Anterior", "next": "Siguiente", "volume": "Volumen", "mute": "Silenciar", "unmute": "Activar sonido", "title": "Título", "artist": "Artista", "album": "Álbum", "tracks": "pistas", "add": "Añadir", "added": "¡Añadido!", "added_to_playlist": "añadido a la lista", "add_to_playlist": "Añadir a playlist", "load_error": "Error al cargar listas", "add_error": "No se pudieron añadir las pistas", "no_playlists_yet": "No hay listas aún. ¡Crea una primero!", "selected_files": "Seleccionados:", "share_with_user": "ID de usuario o email", "playback_error": "Error de reproducción", "error": "Error", "remove": "Eliminar", "track_removed": "Pista eliminada", "manage_shares": "Gestionar compartidos", "no_shares": "Sin compartidos aún", "remove_share": "Eliminar compartido", "can_write": "Puede editar", "read_only": "Solo lectura", "public": "Pública", "private": "Privada", "toggle_public": "Visibilidad", "make_public": "Hacer pública", "make_private": "Hacer privada", "set_cover": "Establecer portada", "cover_updated": "Portada actualizada", "search_audio": "Buscar archivos de audio…", "no_audio_files": "No se encontraron archivos de audio", "selected": "seleccionados", "loading": "Cargando…", "search_error": "No se pudieron cargar los archivos de audio", "adding": "Añadiendo…", "prev": "Anterior" }, "share": { "dialogTitle": "Compartir Enlace", "linkLabel": "Enlace compartido:", "copyLink": "Copiar", "permissions": "Permisos:", "permissionRead": "Lectura", "permissionWrite": "Escritura", "permissionReshare": "Recompartir", "password": "Protección con contraseña:", "generatePassword": "Generar", "expiration": "Fecha de caducidad:", "update": "Actualizar compartido", "remove": "Eliminar compartido", "notifyTitle": "Enviar notificación", "notifyEmailLabel": "Dirección de correo:", "notifyMessageLabel": "Mensaje (opcional):", "notifySend": "Enviar notificación", "shareWithOthers": "Compartir con otros", "sharePublicly": "Compartir públicamente", "shareSettings": "Configuración de compartido", "shareCopied": "Enlace copiado al portapapeles", "shareCreated": "Enlace compartido creado correctamente", "shareUpdated": "Configuración de compartido actualizada", "shareRemoved": "Compartido eliminado correctamente", "inviteByEmail": "Invitar por correo — se enviará una invitación", "directoryUnavailable": "Directorio de usuarios no disponible", "linkNamePlaceholder": "Nombre del enlace (opcional)", "newLink": "Nuevo enlace", "noExpiry": "Sin caducidad", "pending": "Pendiente", "people": "Personas", "publicLinks": "Enlaces públicos", "role": { "canEdit": "Puede editar", "canManage": "Puede gestionar", "canView": "Puede ver" }, "searchPlaceholder": "Buscar personas…", "shareOf": "Compartir:", "sharedLink": "Enlace compartido", "copied": "Enlace copiado", "copy": "Copiar", "copy_failed": "No se pudo copiar el enlace", "download": "Descargar", "files": "Archivos", "folders": "Carpetas", "link_name": "Nombre del enlace (opcional)", "notifyByEmail": "Notificar por correo", "revoke": "Eliminar", "role_label": "Rol" }, "share_dialogTitle": "Compartir Enlace", "share_linkLabel": "Enlace compartido:", "share_copyLink": "Copiar", "share_permissions": "Permisos:", "share_permissionRead": "Lectura", "share_permissionWrite": "Escritura", "share_permissionReshare": "Recompartir", "share_password": "Protección con contraseña:", "share_generatePassword": "Generar", "share_expiration": "Fecha de caducidad:", "share_update": "Actualizar compartido", "share_remove": "Eliminar compartido", "share_notifyTitle": "Enviar notificación", "share_notifyEmailLabel": "Dirección de correo:", "share_notifyMessageLabel": "Mensaje (opcional):", "share_notifySend": "Enviar notificación", "shared": { "backToFiles": "Volver a Archivos", "pageTitle": "Recursos Compartidos", "pageDescription": "Administra tus archivos y carpetas compartidos", "filterType": "Tipo:", "filterAll": "Todos", "filterFiles": "Archivos", "filterFolders": "Carpetas", "sortBy": "Ordenar por:", "sortByName": "Nombre", "sortByDate": "Fecha compartido", "sortByExpiration": "Caducidad", "search": "Buscar", "colName": "Nombre", "colType": "Tipo", "colDateShared": "Fecha compartido", "colExpiration": "Caducidad", "colPermissions": "Permisos", "colPassword": "Contraseña", "colActions": "Acciones", "emptyStateTitle": "Aún no hay recursos compartidos", "emptyStateDesc": "Cuando compartas archivos o carpetas, aparecerán aquí", "goToFiles": "Ir a Archivos", "typeFile": "Archivo", "typeFolder": "Carpeta", "noExpiration": "Sin caducidad", "hasPassword": "Sí", "noPassword": "No", "editShare": "Editar compartido", "notifyShare": "Notificar a alguien", "copyLink": "Copiar enlace", "removeShare": "Eliminar compartido", "linkCopied": "¡Enlace copiado al portapapeles!", "linkCopyFailed": "Error al copiar el enlace", "itemUpdated": "Configuración de compartido actualizada", "itemRemoved": "Compartido eliminado correctamente", "invalidEmail": "Por favor, introduce una dirección de correo válida", "notificationSent": "Notificación enviada correctamente", "notificationFailed": "Error al enviar la notificación", "shared_backToFiles": "Volver a Archivos", "shared_pageTitle": "Recursos Compartidos", "shared_pageDescription": "Administra tus archivos y carpetas compartidos", "shared_filterType": "Tipo:", "shared_filterAll": "Todos", "shared_filterFiles": "Archivos", "shared_filterFolders": "Carpetas", "shared_sortBy": "Ordenar por:", "shared_sortByName": "Nombre", "shared_sortByDate": "Fecha compartido", "shared_sortByExpiration": "Caducidad", "shared_search": "Buscar", "shared_colName": "Nombre", "shared_colType": "Tipo", "shared_colDateShared": "Fecha compartido", "shared_colExpiration": "Caducidad", "shared_colPermissions": "Permisos", "shared_colPassword": "Contraseña", "shared_colActions": "Acciones", "shared_emptyStateTitle": "Aún no hay recursos compartidos", "shared_emptyStateDesc": "Cuando compartas archivos o carpetas, aparecerán aquí", "shared_goToFiles": "Ir a Archivos", "shared_typeFile": "Archivo", "shared_typeFolder": "Carpeta", "shared_noExpiration": "Sin caducidad", "shared_hasPassword": "Sí", "shared_noPassword": "No", "shared_editShare": "Editar compartido", "shared_notifyShare": "Notificar a alguien", "shared_copyLink": "Copiar enlace", "shared_removeShare": "Eliminar compartido", "shared_linkCopied": "¡Enlace copiado al portapapeles!", "shared_linkCopyFailed": "Error al copiar el enlace", "shared_itemUpdated": "Configuración de compartido actualizada", "shared_itemRemoved": "Compartido eliminado correctamente", "shared_invalidEmail": "Por favor, introduce una dirección de correo válida", "shared_notificationSent": "Notificación enviada correctamente", "shared_notificationFailed": "Error al enviar la notificación" }, "actions": { "search": "Buscar archivos...", "new_folder": "Nueva carpeta", "upload": "Subir", "upload_files": "Subir archivos", "upload_folder": "Subir carpeta", "upload.uploading": "Subiendo...", "upload.complete": "{count} / {total} subidos", "upload.files": "archivos", "rename": "Renombrar", "move": "Mover a...", "move_to": "Mover a", "delete": "Eliminar", "download": "Descargar", "view": "Ver", "cancel": "Cancelar", "confirm": "Confirmar", "share": "Compartir", "favorite": "Añadir a favoritos", "unfavorite": "Quitar de favoritos", "copy": "Copiar", "notify": "Notificar", "send": "Enviar", "clear_recent": "Limpiar recientes", "logout": "Cerrar sesión", "create": "Crear", "search_btn": "Buscar", "close": "Cerrar", "delete_permanently": "Eliminar permanentemente", "empty_trash": "Vaciar papelera", "open_parent_folder": "Ir a la carpeta padre", "add": "Añadir", "apply": "Aplicar", "clear": "Limpiar", "remove": "Quitar" }, "user_menu": { "appearance": "Apariencia", "about": "Acerca de OxiCloud", "about_description": "Plataforma de almacenamiento en la nube creada con Rust y Arquitectura Limpia. Rápida, segura y privada.", "admin_panel": "Panel de administración", "profile": "Mi perfil", "role_user": "Usuario", "theme": { "light": "Claro", "dark": "Oscuro", "auto": "Como el sistema" }, "manage_groups": "Gestionar grupos", "admin": "Admin" }, "files": { "name": "Nombre", "type": "Tipo", "size": "Tamaño", "modified": "Modificado", "no_files": "No hay archivos en esta carpeta", "empty_hint": "Sube archivos o crea carpetas para comenzar", "loading": "Cargando archivos…", "view_grid": "Vista de cuadrícula", "view_list": "Vista de lista", "file_types": { "document": "Documento", "image": "Imagen", "video": "Video", "audio": "Audio", "pdf": "PDF", "text": "Texto", "folder": "Carpeta", "spreadsheet": "Hoja de cálculo", "presentation": "Presentación", "archive": "Archivo comprimido", "installer": "Instalador", "code": "Código" }, "owner": "Propietario", "add_favorites": "Añadir a favoritos", "added_favorites": "Añadido a favoritos", "col_name": "Nombre", "col_owner": "Propietario", "col_size": "Tamaño", "col_type": "Tipo", "copy": "Copiar", "edit": "Editar", "file": "Archivo", "folder": "Carpeta", "new_folder": "Nueva carpeta", "share": "Compartir", "view": "Ver", "selected_count": "{{count}} seleccionados", "uploaded_saved": "Subida completa — {{mb}} MB deduplicados", "uploaded_partial": "{{ok}} subidos, {{failed}} fallaron", "uploaded_skipped": "{{ok}} subidos · {{skipped}} omitidos (no son ficheros normales)", "upload_failed": "La subida falló" }, "dialogs": { "rename_folder": "Renombrar carpeta", "rename_file": "Renombrar archivo", "new_name": "Nuevo nombre", "new_folder_title": "Nueva carpeta", "folder_name": "Nombre de la carpeta", "folder_placeholder": "Mi carpeta", "rename_title": "Renombrar", "move_file": "Mover archivo", "move_folder": "Mover carpeta", "select_destination": "Selecciona la carpeta destino:", "select_this_folder": "Seleccionar esta carpeta", "go_to_parent": ".. (carpeta superior)", "no_subfolders": "Sin subcarpetas", "root": "Raíz", "delete_confirmation": "¿Estás seguro de que quieres eliminar", "and_contents": "y todo su contenido", "no_undo": "Esta acción no se puede deshacer", "confirm_title": "Confirmar acción", "confirm_delete": "Mover a papelera", "confirm_delete_file": "¿Estás seguro de que quieres mover a la papelera el archivo \"{{name}}\"?", "confirm_delete_folder": "¿Estás seguro de que quieres mover a la papelera la carpeta \"{{name}}\" y todo su contenido?", "confirm_permanent_delete": "Eliminar permanentemente", "confirm_permanent_delete_msg": "¿Estás seguro de que quieres eliminar permanentemente este elemento? Esta acción no se puede deshacer.", "confirm_empty_trash": "Vaciar papelera", "confirm_delete_share": "Eliminar enlace compartido", "confirm_delete_share_msg": "¿Estás seguro de que quieres eliminar este enlace compartido?", "share_file": "Compartir Archivo", "share_folder": "Compartir Carpeta", "existing_shares": "Compartidos Existentes", "share_options": "Opciones de Compartición", "password": "Contraseña", "expiration": "Caducidad", "permissions": "Permisos", "generated_link": "Enlace Generado", "notify": "Enviar Notificación", "recipient": "Destinatario", "message": "Mensaje", "move_to_home": "Mover a la carpeta de inicio" }, "dropzone": { "drag_files": "Arrastra archivos aquí o haz clic para seleccionar", "drop_files": "Suelta los archivos para subirlos" }, "permissions": { "read": "Lectura", "write": "Escritura", "reshare": "Recompartir" }, "errors": { "file_not_found": "Archivo no encontrado", "folder_not_found": "Carpeta no encontrada", "delete_error": "Error al eliminar", "upload_error": "Error al subir el archivo", "rename_error": "Error al renombrar", "move_error": "Error al mover", "empty_name": "El nombre no puede estar vacío", "name_exists": "Ya existe un archivo o carpeta con ese nombre", "generic_error": "Ha ocurrido un error", "group_name_invalid": "El nombre del grupo debe seguir el formato de prefijo de correo (letras, dígitos, punto, guión, guion bajo; 1–64 caracteres).", "group_cycle": "Este miembro creaería una referencia circular entre grupos.", "group_depth_exceeded": "Esta profundidad de anidamiento excede el máximo permitido (8).", "group_virtual_immutable": "El grupo «Internal» es gestionado por el sistema y no se puede modificar.", "group_not_found": "Grupo no encontrado.", "group_name_taken": "Ya existe un grupo con este nombre." }, "breadcrumb": { "home": "Inicio" }, "trash": { "empty_trash": "Vaciar papelera", "empty_state": "La papelera está vacía", "original_location": "Ubicación original", "deleted_date": "Fecha de eliminación", "remaining": "Restante", "actions": "Acciones", "restore": "Restaurar", "delete_permanently": "Eliminar permanentemente", "empty_confirm": "¿Estás seguro de que quieres vaciar la papelera? Esta acción eliminará permanentemente todos los elementos.", "groupby": { "remaining_days": "Días restantes", "trashed_time": "Fecha de eliminación" }, "delete": "Eliminar permanentemente", "empty_action": "Vaciar papelera" }, "daysRemaining": { "expired": "Caducado", "today": "Hoy", "tomorrow": "Mañana", "inDays": "{{count}} días" }, "expiryChip": { "never": "Nunca caduca", "expired": "Caducado", "today": "Caduca hoy", "tomorrow": "Caduca mañana", "inDays": "Caduca en {{count}} días", "onDate": "Caduca el {{date}}" }, "auth": { "login_title": "Iniciar sesión", "username": "Usuario", "username_placeholder": "Ingresa tu nombre de usuario", "login_identifier": "Usuario o correo electrónico", "login_identifier_placeholder": "Ingresa tu usuario o correo electrónico", "password": "Contraseña", "password_placeholder": "Ingresa tu contraseña", "login_button": "Iniciar sesión", "no_account": "¿No tienes cuenta?", "register": "Regístrate", "admin_setup": "¿Primera vez?", "setup": "Configurar administrador", "register_title": "Crear cuenta", "email": "Email", "email_placeholder": "Ingresa tu email", "confirm_password": "Confirmar contraseña", "confirm_password_placeholder": "Confirma tu contraseña", "register_button": "Crear cuenta", "have_account": "¿Ya tienes cuenta?", "login": "Iniciar sesión", "setup_title": "Configuración inicial", "setup_step1": "Admin", "setup_step2": "Sistema", "setup_step3": "Completado", "admin_username": "Usuario administrador", "admin_email": "Email administrador", "admin_password": "Contraseña administrador", "create_admin": "Crear administrador", "back_to_login": "¿Ya está configurado?", "admin_success": "¡Cuenta de administrador creada con éxito! Ahora puedes iniciar sesión.", "account_success": "¡Cuenta creada con éxito! Ahora puedes iniciar sesión.", "passwords_mismatch": "Las contraseñas no coinciden", "admin_create_error": "Error al crear cuenta de administrador", "or": "o", "sso_login": "Iniciar sesión con SSO", "sso_login_provider": "Iniciar sesión con {{provider}}", "magicLinkHint": "¿Sin contraseña? Introduce tu correo electrónico y te enviaremos un enlace de inicio de sesión único.", "magicLinkEmailLabel": "Correo electrónico", "magicLinkEmailPlaceholder": "tu@ejemplo.com", "magicLinkSubmit": "Enviar enlace de inicio de sesión", "magicLinkSent": "Si existe una cuenta para ese correo, se ha enviado un enlace de inicio de sesión. Revisa tu bandeja de entrada.", "magicLinkUnavailable": "El inicio de sesión por correo electrónico no está disponible en este servidor.", "magicLinkNetworkError": "No se pudo conectar con el servidor: {{message}}", "magicLinkToggle": "¿Sin contraseña? Recíbelo por correo", "passwordsMatch": "Las contraseñas coinciden", "capsLock": "Bloq Mayús activado", "caps_lock": "Bloq Mayús activado", "magic_email_label": "Correo electrónico", "magic_hint": "¿Sin contraseña? Introduce tu correo electrónico y te enviaremos un enlace de inicio de sesión único.", "magic_unavailable": "El inicio de sesión por correo electrónico no está disponible en este servidor.", "passwords_match": "Las contraseñas coinciden", "sign_in": "Iniciar sesión" }, "storage": { "title": "Almacenamiento", "calculating": "Calculando...", "used": "{{percentage}}% usado ({{used}} / {{total}})" }, "viewer": { "unsupported_file": "Este tipo de archivo no se puede previsualizar.", "download_file": "Descargar archivo", "zoom_in": "Acercar", "zoom_out": "Alejar", "zoom_reset": "Restablecer zoom" }, "language_selector": { "title": "¡Bienvenido!", "subtitle": "Selecciona tu idioma para continuar", "continue": "Continuar", "languages": { "en": "English", "es": "Español", "zh": "中文", "fa": "فارسی", "fr": "Français", "de": "Deutsch", "pt": "Português", "ar": "العربية", "hi": "हिन्दी", "it": "Italiano", "ja": "日本語", "ko": "한국어", "nl": "Nederlands", "ru": "Русский" } }, "favorites": { "empty_state": "Aún no hay favoritos", "empty_hint": "Marca archivos o carpetas con estrella para añadirlos a favoritos", "add": "Añadir a favoritos", "remove": "Quitar de favoritos", "added_title": "Añadido a favoritos", "added_msg": "añadido a favoritos", "removed_title": "Quitado de favoritos", "removed_msg": "quitado de favoritos" }, "recent": { "title": "Recientes", "clear": "Limpiar recientes", "accessed": "Accedido", "empty_state": "No hay archivos recientes", "empty_hint": "Los archivos que abras aparecerán aquí", "loadMore": "Cargar más" }, "notifications": { "file_renamed": "Archivo renombrado", "file_renamed_to": "Archivo renombrado a \"{{name}}\"", "folder_renamed": "Carpeta renombrada", "folder_renamed_to": "Carpeta renombrada a \"{{name}}\"", "file_uploaded": "Archivo subido", "file_deleted": "Archivo movido a papelera", "folder_deleted": "Carpeta movida a papelera", "item_deleted_permanently": "Elemento eliminado permanentemente", "trash_emptied": "Papelera vaciada correctamente", "title": "Notificaciones", "empty": "Sin notificaciones", "link_created": "Enlace creado", "share_success": "Enlace compartido creado correctamente", "upload_files_section_title": "Subida no disponible aquí", "upload_files_section_body": "Ve a la sección Archivos para subir archivos" }, "batch": { "one_selected": "1 elemento seleccionado", "n_selected": "{{count}} elementos seleccionados", "confirm_delete": "¿Estás seguro de que quieres mover {{count}} elementos a la papelera?", "move_title": "Mover {{count}} elemento(s)", "add_favorites": "Añadir a favoritos", "move_copy": "Mover o copiar" }, "admin": { "page_title": "Panel de Administración", "back_to_app": "Volver a OxiCloud", "loading": "Cargando…", "access_denied": "Acceso Denegado", "access_denied_desc": "Se requieren privilegios de administrador para acceder a este panel.", "sign_in": "Iniciar sesión", "tab_dashboard": "Panel", "tab_users": "Usuarios", "tab_oidc": "SSO / OIDC", "total_users": "Usuarios Totales", "active_users": "Usuarios Activos", "admins": "Administradores", "version": "Versión", "storage_overview": "Resumen de Almacenamiento", "used": "Usado", "total_quota": "Cuota Total", "usage_pct": "Uso %", "users_over_80": "Usuarios >80% cuota", "users_over_quota": "Usuarios sobre cuota", "system": "Sistema", "auth_label": "Auth", "oidc_label": "OIDC", "quotas_label": "Cuotas", "enabled": "Habilitado", "disabled": "Deshabilitado", "active": "Activo", "off": "Inactivo", "allow_registration": "Permitir registro público", "registration_warning": "El registro público está deshabilitado. Solo los administradores pueden crear nuevos usuarios.", "user_management": "Gestión de Usuarios", "create_user": "Crear Usuario", "col_user": "Usuario", "col_role": "Rol", "col_auth": "Auth", "col_status": "Estado", "col_storage": "Almacenamiento", "col_last_login": "Último Acceso", "col_actions": "Acciones", "loading_users": "Cargando usuarios…", "failed_load_users": "Error al cargar usuarios", "no_users_found": "No se encontraron usuarios", "showing_users": "Mostrando {{from}}-{{to}} de {{total}}", "prev": "Anterior", "next": "Siguiente", "inactive": "Inactivo", "you_badge": "(tú)", "local": "Local", "never": "Nunca", "just_now": "Ahora mismo", "minutes_ago": "hace {{n}}m", "hours_ago": "hace {{n}}h", "days_ago": "hace {{n}}d", "edit_quota_title": "Editar cuota", "reset_password_title": "Restablecer contraseña", "toggle_role_title": "Cambiar rol", "deactivate_title": "Desactivar", "activate_title": "Activar", "delete_title": "Eliminar", "sso_title": "Inicio de Sesión Único (OIDC / SSO)", "enable_sso": "Habilitar autenticación SSO", "provider_name": "Nombre del Proveedor", "issuer_url": "URL del Emisor", "issuer_url_hint": "URL del emisor OpenID Connect de tu proveedor de identidad", "auto_discover": "Auto-descubrir", "discovering": "Descubriendo…", "client_id": "Client ID", "client_secret": "Client Secret", "client_secret_placeholder": "Dejar vacío para mantener el valor actual", "secret_configured": "Ya hay un client secret configurado", "callback_url": "URL de Callback", "callback_url_hint": "(registrar en tu IdP)", "advanced_settings": "Configuración Avanzada", "scopes": "Scopes", "auto_provision": "Auto-provisionar usuarios en el primer inicio de sesión", "admin_groups": "Grupos de Admin", "admin_groups_hint": "Nombres de grupos OIDC separados por comas que mapean al rol de admin", "disable_password": "Desactivar inicio de sesión con contraseña (solo OIDC)", "password_warning": "¡Esto impedirá TODOS los inicios de sesión con contraseña!", "test_btn": "Probar", "save_btn": "Guardar", "saving": "Guardando…", "settings_saved": "Configuración guardada — OIDC ahora está {{status}}", "quota_modal_title": "Actualizar Cuota de Almacenamiento", "quota_user_label": "Usuario:", "new_quota": "Nueva Cuota", "quota_unlimited_hint": "Establecer 0 para ilimitado", "cancel": "Cancelar", "create_user_title": "Crear Nuevo Usuario", "username_label": "Nombre de usuario", "username_placeholder": "juanperez", "username_hint": "3–32 caracteres", "password_label": "Contraseña", "password_placeholder": "Mín 8 caracteres", "email_label": "Correo", "email_optional": "(opcional)", "email_placeholder": "usuario@ejemplo.com (auto-generado si vacío)", "role_label": "Rol", "role_user": "Usuario", "role_admin": "Admin", "quota_label": "Cuota", "creating": "Creando…", "reset_pw_title": "Restablecer Contraseña", "new_password_label": "Nueva Contraseña", "resetting": "Restableciendo…", "reset_btn": "Restablecer", "confirm_role_change": "¿Cambiar rol a {{role}}?", "confirm_deactivate": "¿Estás seguro de que quieres desactivar este usuario?", "confirm_activate": "¿Estás seguro de que quieres activar este usuario?", "confirm_delete_user": "¿ELIMINAR usuario \"{{name}}\"? ¡Esto no se puede deshacer!", "confirm_action": "Confirmar Acción", "confirm_yes": "Confirmar", "confirm_no": "Cancelar", "error_username_short": "El nombre de usuario debe tener al menos 3 caracteres", "error_password_short": "La contraseña debe tener al menos 8 caracteres", "error_generic": "Error", "error_network": "Error de red: {{message}}", "error_create_user": "Error al crear usuario", "tab_storage": "Almacenamiento", "storage_title": "Backend de Almacenamiento", "storage_current_backend": "Backend Activo", "storage_total_blobs": "Total de Blobs", "storage_total_size": "Tamaño Total", "storage_dedup_ratio": "Ratio de Dedup", "storage_backend": "Tipo de Backend", "storage_local": "Sistema de Archivos Local", "storage_s3": "Compatible con S3", "storage_provider_preset": "Proveedor Preconfigurado", "storage_preset_custom": "Personalizado", "storage_endpoint_url": "URL del Endpoint", "storage_endpoint_hint": "Dejar vacío para usar Amazon S3 por defecto", "storage_bucket": "Bucket", "storage_region": "Región", "storage_access_key": "Access Key ID", "storage_secret_key": "Secret Access Key", "storage_secret_configured": "Ya hay una clave secreta configurada", "storage_key_placeholder": "Dejar vacío para mantener el valor actual", "storage_path_style": "Forzar Path Style", "storage_path_style_hint": "Requerido para MinIO y algunos proveedores compatibles con S3", "storage_test_connection": "Probar Conexión", "storage_test_success": "Conexión exitosa", "storage_test_failure": "Conexión fallida", "storage_save": "Guardar", "storage_saved": "Configuración de almacenamiento guardada correctamente", "storage_migration": "Migración de Backend", "storage_migration_coming_soon": "La migración de backend estará disponible en una futura actualización.", "migration_status_label": "Estado:", "migration_start": "Iniciar Migración", "migration_pause": "Pausar", "migration_resume": "Reanudar", "migration_verify": "Verificar Integridad", "migration_complete": "Finalizar", "migration_started": "Migración iniciada", "migration_paused_msg": "Migración pausada", "migration_resumed_msg": "Migración reanudada", "migration_completed_msg": "Migración finalizada. Reinicia el servidor para usar el nuevo backend.", "migration_verifying": "Verificando…", "migration_verify_passed": "Verificación exitosa", "migration_verify_failed": "Verificación fallida", "migration_failed_blobs": "blobs fallidos", "testing": "Probando…", "smtp_disabled": "Desactivado (host no configurado)", "smtp_enabled": "Activado", "smtp_enabled_label": "Estado", "smtp_intro": "SMTP se configura exclusivamente a través de variables de entorno (OXICLOUD_SMTP_*). Los valores siguientes se leen del servidor en ejecución — para modificarlos, edita el entorno y reinicia OxiCloud.", "smtp_not_configured": "SMTP no está configurado en este servidor.", "smtp_send_failed": "Fallo al enviar.", "smtp_send_test": "Enviar correo de prueba", "smtp_sending": "Enviando…", "smtp_sent": "Correo de prueba enviado.", "smtp_server_code": "Respuesta del servidor", "smtp_test_intro": "Envía un mensaje de diagnóstico predefinido al destinatario indicado abajo e informa de la respuesta del servidor SMTP para que puedas cruzarla con los registros de tu relay.", "smtp_test_missing_to": "Introduce una dirección de destinatario.", "smtp_test_title": "Enviar correo de prueba", "smtp_test_to": "Dirección del destinatario", "smtp_title": "Correo saliente (SMTP)", "tab_smtp": "SMTP", "admin_users": "Administradores", "confirm_role": "¿Cambiar rol a {{role}}?", "dashboard": "Panel", "email": "Correo", "mig_complete": "Finalizar", "mig_pause": "Pausar", "mig_resume": "Reanudar", "mig_verify_failed": "Verificación fallida", "mig_verify_passed": "Verificación exitosa", "mig_verifying": "Verificando…", "oidc_auto_provision": "Auto-provisionar usuarios en el primer inicio de sesión", "oidc_callback": "URL de Callback", "oidc_client_id": "Client ID", "oidc_disable_pw": "Desactivar inicio de sesión con contraseña (solo OIDC)", "oidc_issuer": "URL del Emisor", "oidc_scopes": "Scopes", "password": "Contraseña", "quotas": "Cuotas", "reset_pw_for": "Nueva contraseña para", "role": "Rol", "smtp_fail": "Fallo al enviar.", "smtp_send": "Enviar", "smtp_test": "Enviar correo de prueba", "smtp_user_state": "Auth", "status": "Estado", "storage": "Almacenamiento", "storage_endpoint": "URL del Endpoint", "storage_tab": "Almacenamiento", "time_min_ago": "hace {{n}} min", "title": "Admin", "user": "Usuario", "username": "Nombre de usuario", "users": "Usuarios", "running": "Ejecutando…", "maintenance": "Mantenimiento", "maintenance_hint": "Reescanea los archivos existentes para rellenar metadatos. Se puede repetir sin riesgo; procesa toda la biblioteca y puede tardar.", "reextract_audio": "Reextraer metadatos de audio", "reextract_photos": "Reextraer fechas de fotos y vídeos", "reextract_done": "{{processed}}/{{total}} procesados · {{failed}} fallidos", "encryption": "Cifrado", "encryption_hint": "Genera una clave AES-256 para el cifrado de blobs en reposo y configúrala como OXICLOUD_STORAGE_ENCRYPTION_KEY en el entorno del servidor.", "gen_key": "Generar clave", "gen_key_warning": "Guarda esta clave de forma segura. Si se pierde, los datos cifrados se pierden de forma irrecuperable.", "drive_manage_policies": "Gestionar políticas", "drive_manage_policies_for": "Políticas — {{name}}", "drive_manage_policies_help": "Las políticas son exclusivas de administradores; los propietarios del Drive no pueden modificarlas. Cada interruptor controla una restricción.", "drive_policy": { "forbid_sharing": "Prohibir compartir por recurso", "forbid_sharing_help": "Bloquea los permisos por archivo o carpeta (incluye también enlaces públicos y compartir externo). La membresía del Drive sigue funcionando.", "forbid_public_links": "Prohibir enlaces públicos", "forbid_public_links_help": "Bloquea la creación de enlaces compartidos anónimos en los recursos de este Drive.", "forbid_external_sharing": "Prohibir compartir externo", "forbid_external_sharing_help": "Bloquea los permisos a usuarios externos (invitaciones por correo y cuentas externas existentes).", "forbid_cross_drive_move": "Prohibir mover entre Drives", "forbid_cross_drive_move_help": "Bloquea mover archivos o carpetas a otro Drive. No impide descargar y volver a subir.", "forbid_owner_role_change": "Bloquear lista de propietarios", "forbid_owner_role_change_help": "Solo los administradores pueden añadir, retirar o degradar propietarios del Drive mientras esta política esté activa.", "implied_by_forbid_sharing": "Ya aplicada por «Prohibir compartir por recurso»." } }, "profile": { "page_title": "Perfil", "back_to_app": "Volver a OxiCloud", "loading": "Cargando…", "not_authenticated": "No Autenticado", "not_authenticated_desc": "Inicia sesión para ver tu perfil.", "sign_in": "Iniciar sesión", "role_admin": "Administrador", "role_user": "Usuario", "account_details": "Detalles de la Cuenta", "username": "Nombre de usuario", "email": "Correo electrónico", "role": "Rol", "last_login": "Último acceso", "storage": "Almacenamiento", "used": "Usado", "quota": "Cuota", "usage": "Uso", "unlimited": "Ilimitado", "app_passwords": "Contraseñas de Aplicación", "app_pw_desc": "Genera contraseñas para clientes WebDAV, CalDAV y CardDAV. Cada contraseña se muestra solo una vez.", "app_pw_label_placeholder": "Etiqueta (ej. Thunderbird, macOS)", "generate": "Generar", "generating": "Generando…", "new_password_for": "Nueva contraseña para", "copy_warning": "Copia esta contraseña ahora. No podrás verla de nuevo.", "copy_to_clipboard": "Copiar al portapapeles", "col_label": "Etiqueta", "col_created": "Creado", "col_last_used": "Último uso", "col_status": "Estado", "active": "Activa", "revoked": "Revocada", "revoke_title": "Revocar", "no_app_passwords": "Aún no hay contraseñas de aplicación.", "client_sessions": "Sesiones de cliente", "client_sessions_desc": "Generadas automáticamente al conectar un cliente compatible con Nextcloud.", "col_client": "Cliente", "never": "Nunca", "just_now": "Ahora mismo", "minutes_ago": "hace {{n}} min", "hours_ago": "hace {{n}}h", "days_ago": "hace {{n}} días", "edit_profile": "Editar perfil", "edit_oidc_managed": "Para cambiar tu información (nombre, apellidos, foto de perfil, …), actualízala en tu proveedor de identidad. Los cambios se aplicarán en tu próximo inicio de sesión.", "username_claim_hint": "Entre 2 y 64 caracteres, letras / dígitos / punto / guion / subrayado. Una vez elegido, el nombre de usuario no se puede cambiar (los clientes DAV/NextCloud dependen de él).", "username_already_claimed": "Nombre de usuario fijado y no modificable (los clientes DAV/NextCloud dependen de él).", "given_name": "Nombre", "family_name": "Apellidos", "notify_on_share": "Enviarme un correo cuando alguien comparta conmigo", "notify_on_share_hint": "Cuando esté desmarcado, los recursos compartidos seguirán apareciendo en tu cuenta — simplemente no recibirás un correo sobre ellos.", "save_profile": "Guardar cambios", "profile_saved": "Perfil actualizado", "profile_no_changes": "Sin cambios que guardar.", "profile_save_failed": "Error al guardar", "username_taken_error": "Ese nombre de usuario ya está en uso.", "username_immutable_error": "Tu nombre de usuario ya está fijado y no se puede cambiar aquí. Contacta con un administrador si necesitas renombrarlo.", "change_password": "Cambiar Contraseña", "current_password": "Contraseña Actual", "new_password": "Nueva Contraseña", "min_8_chars": "Al menos 8 caracteres", "confirm_password": "Confirmar Nueva Contraseña", "update_password": "Actualizar Contraseña", "updating": "Actualizando…", "password_updated": "Contraseña actualizada correctamente", "passwords_no_match": "Las contraseñas no coinciden", "password_too_short": "La contraseña debe tener al menos 8 caracteres", "password_change_failed": "Error al cambiar la contraseña", "error_network": "Error de red: {{message}}", "error_label_required": "Introduce una etiqueta", "error_create_pw": "Error al crear contraseña de aplicación", "confirm_revoke": "¿Revocar contraseña \"{{label}}\"? Los clientes que la usen dejarán de funcionar.", "error_revoke": "Error al revocar contraseña", "edit_photo": "Edit photo", "photo_tab_url": "URL", "photo_tab_upload": "Upload", "photo_url_placeholder": "https://example.com/photo.jpg", "photo_url_hint": "https://, http://, or data:image/…;base64,… accepted", "photo_choose_file": "Choose a photo (PNG, JPEG, WebP)", "photo_resize_note": "Images larger than 512 × 512 px are automatically resized.", "photo_save": "Save photo", "photo_remove": "Remove photo", "photo_cancel": "Cancel", "photo_save_failed": "Failed to save photo", "photo_no_file": "Please select a file first", "photo_managed_by_oidc": "Photo managed by your identity provider.", "password_mismatch": "Las contraseñas no coinciden" }, "upload": { "uploading": "Subiendo...", "files": "archivos", "complete": "{{count}} / {{total}} subidos" }, "storage_quota_exceeded": "Cuota de almacenamiento superada", "sharedwithme": { "pageTitle": "Compartido conmigo", "pageDescription": "Archivos y carpetas que otros usuarios han compartido contigo", "emptyStateTitle": "Aún no hay nada compartido contigo", "emptyStateDesc": "Los elementos que otros usuarios compartan contigo aparecerán aquí", "loadMore": "Cargar más", "sharedBy": "Compartido por", "colName": "Nombre", "colType": "Tipo", "colSharedBy": "Compartido por", "colDate": "Fecha de compartición", "colPermissions": "Permisos" }, "groupby": { "none": "Ninguno", "title": "Agrupar por", "owner": "Propietario", "shareDate": "Fecha de compartición", "type": "Tipo", "type.folders": "Carpetas", "accessedAt": "Fecha de acceso", "modifiedAt": "Fecha de modificación", "createdAt": "Fecha de creación", "size": "Tamaño", "favoriteDate": "Fecha de favorito", "byFiles": "By files", "sharedWith": "Shared with", "justAdded": "Nuevo", "folders": "Carpetas" }, "dateBucket": { "today": "Hoy", "last7days": "Últimos 7 días", "last30days": "Últimos 30 días", "unknown": "Desconocido" }, "groups": { "title": "Gestionar grupos", "create_button": "Crear grupo", "create_dialog_title": "Nuevo grupo", "edit_dialog_title": "Renombrar grupo", "name_label": "Nombre", "name_placeholder": "ingenieria", "description_label": "Descripción (opcional)", "members_section": "Miembros", "add_member_placeholder": "Añadir un usuario o grupo…", "no_members": "Aún no hay miembros.", "remove_member": "Eliminar", "delete_group": "Eliminar grupo", "delete_confirm": "¿Eliminar el grupo «{name}»? Se revocarán las concesiones que hagan referencia a este grupo.", "empty_state": "Aún no hay grupos.", "load_more": "Cargar más", "back_to_list": "Volver", "loading": "Cargando…", "virtual_badge": "Sistema", "member_count_zero": "Sin miembros", "member_count_one": "1 miembro", "member_count_other": "{count} miembros", "delete_confirm_label": "Escribe el nombre del grupo para confirmar:", "delete_confirm_mismatch": "Escribe el nombre del grupo exactamente para confirmar.", "virtual_internal_name": "Interno", "members_loading": "Cargando miembros…", "members_empty": "Sin miembros", "virtual_internal_explanation": "Todos los usuarios internos de este servidor", "create": "Crear grupo", "empty": "Aún no hay grupos.", "members": "Miembros" }, "myshares": { "copyLink": "Copiar enlace", "deleteLink": "Eliminar enlace", "notifyByEmail": "Notificar por correo", "notifyFailed": "No se pudo enviar la notificación.", "notifyGroupMembers": "Notificar a los miembros del grupo", "notifyRateLimited": "Demasiadas notificaciones para este destinatario — inténtalo más tarde.", "removeAccess": "Quitar acceso", "resendInvitation": "Reenviar correo de invitación", "publicLinks": "Enlaces públicos" }, "sort": { "asc": "ascendente", "desc": "descendente" }, "notif": { "errorTitle": "Error", "searchError": "Error al realizar la búsqueda", "cleanupCompleted": "Limpieza completada", "cleanupCompletedBody": "Se ha borrado el historial de archivos recientes", "batchCopy": "Copia en lote", "batchCopyBody": "{{success}} copiados, {{errors}} fallidos", "itemsCopied": "Elementos copiados", "itemsCopiedBody": "{{count}} elementos copiados correctamente", "batchMove": "Movimiento en lote", "batchMoveBody": "{{success}} movidos, {{errors}} fallidos", "itemsMoved": "Elementos movidos", "itemsMovedBody": "{{count}} elementos movidos correctamente", "batchDelete": "Borrado en lote", "batchDeleteBody": "{{success}} movidos a la papelera, {{errors}} fallidos", "movedToTrash": "Movido a la papelera", "movedToTrashBody": "{{count}} elementos movidos a la papelera", "trashItemsError": "No se pudieron mover los elementos a la papelera", "preparingDownload": "Preparando descarga", "preparingDownloadBody": "Preparando la descarga…", "downloadItemsError": "No se pudieron descargar los elementos seleccionados", "favoritesAddError": "No se pudieron añadir los elementos a favoritos", "invalidEmail": "Introduce una dirección de correo válida", "notificationSendError": "No se pudo enviar la notificación", "folderCreated": "Carpeta creada", "folderCreatedBody": "«{{name}}» creada correctamente", "fileMoved": "Archivo movido", "fileMovedBody": "Archivo movido correctamente", "fileMoveError": "Error al mover el archivo: {{error}}", "fileMoveErrorGeneric": "Error al mover el archivo", "folderMoved": "Carpeta movida", "folderMovedBody": "Carpeta movida correctamente", "folderMoveError": "Error al mover la carpeta: {{error}}", "folderMoveErrorGeneric": "Error al mover la carpeta", "fileCopied": "Archivo copiado", "fileCopiedBody": "Archivo copiado correctamente", "fileCopyError": "Error al copiar el archivo: {{error}}", "fileCopyErrorGeneric": "Error al copiar el archivo", "folderRenamed": "Carpeta renombrada", "folderRenamedBody": "Carpeta renombrada a «{{name}}»", "fileTrashed": "Archivo movido a la papelera", "fileTrashedBody": "«{{name}}» movido a la papelera", "fileDeleted": "Archivo eliminado", "fileDeletedBody": "«{{name}}» eliminado correctamente", "fileDeleteError": "Error al eliminar el archivo", "folderTrashed": "Carpeta movida a la papelera", "folderTrashedBody": "«{{name}}» movida a la papelera", "folderDeleted": "Carpeta eliminada", "folderDeletedBody": "«{{name}}» eliminada correctamente", "folderDeleteError": "Error al eliminar la carpeta", "itemRestored": "Elemento restaurado", "itemRestoredBody": "Elemento restaurado correctamente", "itemRestoreError": "Error al restaurar el elemento", "itemDeleted": "Elemento eliminado", "itemDeletedBody": "Elemento eliminado permanentemente", "itemDeleteError": "Error al eliminar el elemento", "trashEmptied": "Papelera vaciada", "trashEmptiedBody": "La papelera se ha vaciado correctamente", "trashEmptyError": "Error al vaciar la papelera", "cacheCleared": "Caché limpiada", "cacheClearedBody": "Caché de búsqueda limpiada correctamente", "cacheClearError": "Error al limpiar la caché de búsqueda", "wopiOpenError": "No se pudo abrir el editor de documentos.", "linkCopied": "Enlace copiado", "linkCopiedBody": "Enlace copiado al portapapeles", "linkCopyError": "No se pudo copiar el enlace", "notificationSent": "Notificación enviada", "notificationSentBody": "Notificación enviada a {{email}}" }, "category": { "audio": "Audio", "code": "Código", "text": "Texto" }, "common": { "add": "Añadir", "cancel": "Cancelar", "clear": "Limpiar", "close": "Cerrar", "confirm": "Confirmar", "copy": "Copiar", "create": "Crear", "delete": "Eliminar", "download": "Descargar", "load_more": "Cargar más", "loading": "Cargando…", "next": "Siguiente", "no": "No", "previous": "Anterior", "remove": "Eliminar", "rename": "Renombrar", "save": "Guardar", "search": "Buscar", "yes": "Sí", "saving": "Guardando…" }, "device": { "continue": "Continuar", "unknown": "Desconocido" }, "expiryBucket": { "expired": "Caducado", "noExpiry": "Sin caducidad", "today": "Hoy", "tomorrow": "Mañana" }, "nextcloud": { "error_title": "Error", "sign_in_with": "Iniciar sesión con {{provider}}" }, "search": { "size_label": "Tamaño", "title": "Buscar", "type": { "audio": "Audio" }, "type_label": "Tipo" }, "sizeBucket": { "folders": "Carpetas" }, "view": { "grid": "Vista de cuadrícula", "list": "Vista de lista" } }