wireguard-ui/locale/es.json

510 lines
29 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"meta.brand": "WireGuard UI",
"nav.section.main": "Principal",
"nav.section.monitor": "Monitoreo",
"nav.section.admin": "Administración",
"nav.section.other": "Otros",
"nav.dashboard": "Dashboard",
"nav.clients": "Clientes",
"nav.server": "Servidor",
"nav.traffic": "Tráfico",
"nav.logs": "Logs",
"nav.settings": "Configuración",
"nav.users": "Usuarios",
"nav.wol": "WoL",
"nav.about": "About",
"nav.badge_tooltip": "Cambios sin aplicar",
"nav.profile": "Perfil",
"nav.logout_sidebar": "Cerrar sesión",
"nav.mobile_user_aria": "Acciones de usuario",
"nav.sign_out_mobile": "Salir",
"role.admin": "Administrador",
"role.user": "Usuario",
"role.guest": "Invitado",
"top.reload": "Recargar vista",
"top.sync": "Sync",
"top.new_client": "Nuevo cliente",
"top.apply_config": "Aplicar config",
"new_client.tooltip_allowed": "Lista de rutas enviadas al servidor; se incluyen en AllowedIPs del cliente.",
"new_client.tooltip_extra": "Lista incluida en AllowedIPs del peer en wg.conf del servidor.",
"modal.apply.title": "Aplicar configuración",
"modal.apply.body1": "Esto volcará los clientes/peers actuales a <code>wg.conf</code> y actualizará el kernel. Si modificaste la tarjeta <strong>Configuración global WireGuard</strong>, puede reiniciarse la interfaz con <code>wg-quick</code> (si está permitido).",
"modal.apply.body2": "Los cambios en <strong>Sesión/Apariencia</strong> se aplican sin este paso cuando no hay otras modificaciones pendientes.",
"modal.apply.cancel": "Cancelar",
"modal.apply.confirm": "Aplicar",
"modal.kernel.title": "Config guardada, recarga pendiente",
"modal.kernel.p1": "Los cambios se escribieron en <code>wg.conf</code>, pero no se pudieron aplicar al kernel automáticamente.",
"modal.kernel.p2": "Puedes ir a <strong>Servidor</strong> para iniciar o reiniciar manualmente la interfaz WireGuard.",
"modal.kernel.details": "Ver detalle técnico",
"modal.kernel.none": "(sin detalle)",
"js.apply_ok": "Configuración aplicada correctamente.",
"js.apply_kernel_hint": "Configuración guardada en disco. Para aplicar al kernel, habilita WGUI_WG_SYNCCONF_AFTER_APPLY=true o reinicia o inicia manualmente desde Servidor.",
"js.global_post_fail": "No se pudo aplicar configuración global",
"clients.search_ph": "Buscar cliente…",
"clients.enabled": "Habilitados",
"clients.disabled": "Deshabilitados",
"clients.new_btn": "Nuevo cliente",
"meta.title_clients": "Clientes · WireGuard",
"page.clients": "Clientes",
"dash.wg_warn": "WireGuard UI no pudo consultar estadísticas locales:",
"dash.kpi.active": "Activos",
"dash.kpi.active_sub": "Peers habilitados en configuración",
"dash.kpi.down_lbl": "Descarga",
"dash.kpi.down_sub": "TX acumulado (kernel, perspectiva peer)",
"dash.kpi.up_lbl": "Subida",
"dash.kpi.up_sub": "RX acumulado (kernel, perspectiva peer)",
"dash.kpi.sessions": "Sesiones activas",
"dash.kpi.sessions_sub": "Peers habilitados con handshake reciente (≈3 min)",
"dash.peers_title": "Peers recientes",
"dash.peers_badge": "de",
"dash.peers_of": "clientes",
"dash.peer_filter_ph": "Buscar peer…",
"dash.no_peers": "No hay peers en la base de datos.",
"dash.peer_online": "Online",
"dash.peer_offline": "Offline",
"dash.peer_disabled": "Deshabilitado",
"dash.peer_usage": "(24h)",
"dash.toggle_peer": "Habilitar / deshabilitar peer",
"dash.srv_title": "Servidor WireGuard",
"dash.srv_active": "● Activo",
"dash.srv_inactive": "Inactivo",
"dash.srv_iface_port": "Interfaz / puerto",
"dash.srv_pubkey": "Clave pública (truncate)",
"meta.title_dashboard": "Dashboard · WireGuard",
"page.dashboard": "Dashboard",
"login.title_page": "WireGuard UI — Login",
"login.subtitle": "Panel de administración",
"login.user": "Usuario",
"login.pass": "Contraseña",
"login.remember": "Mantener sesión",
"login.forgot": "¿Olvidaste la contraseña?",
"login.submit": "Iniciar sesión",
"login.submit_checking": "Verificando…",
"login.secure": "Acceso seguro vía HTTPS",
"login.encrypted": "Sesión cifrada",
"login.show_pass": "Mostrar",
"login.passkey": "Entrar con Passkey",
"login.passkey_hint": "Opcional: deja el usuario vacío para elegir la cuenta en el dispositivo.",
"login.success_title": "Acceso concedido",
"login.success_sub": "Redirigiendo…",
"profile.title": "Perfil · WireGuard",
"profile.page": "Mi cuenta",
"users.title": "Usuarios · WireGuard",
"users.page": "Usuarios",
"settings.title": "Configuración global · WireGuard",
"settings.page": "Configuración global",
"server.title": "Servidor · WireGuard",
"server.page": "Servidor",
"traffic.title": "Tráfico · WireGuard",
"traffic.page": "Tráfico",
"logs.title": "Logs · WireGuard",
"logs.page": "Logs del sistema",
"status.title": "Estado (tabla) · WireGuard",
"status.page": "Estado (tabla)",
"wol.title": "Wake-on-LAN · WireGuard",
"wol.page": "Wake-on-LAN",
"about.title": "About · WireGuard",
"about.page": "About",
"helper.client_disabled": "Cliente deshabilitado",
"helper.dns_no_server": "No usa servidor",
"helper.dns_empty_list": "DNS servidor (lista vacía)",
"helper.dns_active": "DNS del servidor: activo",
"helper.dns_inactive": "DNS del servidor: desactivado",
"helper.updated": "Última actualización:",
"helper.peer_meta_aria": "Datos del peer",
"helper.created_lbl": "Creado",
"helper.updated_lbl": "Actualizado",
"helper.email_title": "Correo",
"helper.email_short_lbl": "Correo",
"helper.dns_section_lbl": "DNS",
"helper.notes_inline_lbl": "Notas",
"helper.created_chip_title": "Fecha de creación",
"helper.updated_chip_title": "Última modificación",
"helper.badge_online": "En línea",
"helper.badge_disconnected": "Desconectado",
"helper.badge_blocked": "Sin acceso",
"helper.switch_peer": "Habilitar / deshabilitar peer",
"helper.field_allocated": "IP asignada",
"helper.field_dns": "DNS",
"helper.field_allowed": "Allowed IPs",
"helper.field_down": "Descarga",
"helper.field_up": "Subida",
"helper.field_keepalive": "Keepalive",
"helper.field_extra_allowed": "Extra allowed IPs",
"helper.field_subnets": "Subnet ranges",
"helper.field_endpoint": "Endpoint",
"helper.peer_pubkey": "Clave pública del peer",
"helper.btn_qr": "Ver QR",
"helper.btn_dl": "Descargar .conf",
"helper.btn_edit": "Editar",
"helper.btn_del": "Eliminar",
"login.status.unavailable": "Estado del servidor no disponible · %s · %d/UDP",
"login.status.no_wg_read": "Sin lectura de WireGuard · %s · %d/UDP",
"login.status.active": "Servidor activo · %s · %d/UDP",
"login.status.inactive": "Interfaz inactiva · %s · %d/UDP (config)",
"login.generic_error": "Error",
"login.passkey_begin_fail": "No se pudo iniciar passkey",
"login.passkey_invalid": "Passkey inválida",
"login.passkey_unavailable": "Passkey no disponible",
"login.forgot_unavailable_tip": "No disponible en WireGuard UI",
"modal.kernel.close_btn": "Cerrar",
"modal.kernel.goto_server": "Ir a Servidor",
"modal.new_client.title": "Nuevo cliente WireGuard",
"aria.close": "Cerrar",
"dash.wg_warn_suffix": "Los KPI de tráfico pueden estar incompletos.",
"dash.server_no_config": "Sin configuración cargada.",
"dash.quick_actions": "Acciones rápidas",
"dash.export_configs": "Exportar configs",
"dash.restart_server": "Reiniciar servidor",
"dash.change_server_key": "Cambiar clave",
"dash.view_logs": "Ver logs",
"dash.logs_tail_hint": "Los logs opcionales requieren la variable de entorno <code>%s</code> apuntando a un archivo legible por el proceso.",
"dash.modal.restart_title": "Reiniciar servidor WireGuard",
"dash.modal.restart_body": "Esta acción reiniciará la interfaz WireGuard (<code>wg-quick down</code> y <code>wg-quick up</code>). Puede interrumpir conexiones activas por unos segundos.",
"dash.modal.cancel": "Cancelar",
"dash.modal.restart_confirm": "Aceptar y reiniciar",
"dash.modal.key_title": "Cambiar clave del servidor",
"dash.modal.key_body": "Se regenerará el par de claves del servidor WireGuard. Después deberás guardar/aplicar configuración para propagar cambios a clientes.",
"dash.modal.key_confirm": "Aceptar y cambiar",
"dash.toast_restart_ok": "Servidor WireGuard reiniciado",
"dash.toast_restart_err": "No se pudo reiniciar el servidor WireGuard",
"dash.toast_key_ok": "Claves del servidor regeneradas",
"dash.toast_key_err": "No se pudieron regenerar las claves",
"dash.meta_sep": " de ",
"top.search_placeholder": "Buscar…",
"top.status.all": "Todos",
"top.status.enabled": "Habilitados",
"top.status.disabled": "Deshabilitados",
"top.status.connected": "Conectados",
"top.status.disconnected": "Desconectados",
"js.pending_global_invalid": "Los cambios pendientes en Configuración son inválidos. Vuelve a guardar desde esa pestaña.",
"js.global_saved_ok": "Configuración global aplicada correctamente",
"js.session_prefs_ok": "Preferencias de sesión y apariencia aplicadas",
"js.could_not_apply_prefs": "No se pudieron aplicar los ajustes",
"js.client_created_success": "Cliente creado correctamente",
"js.apply_config_success": "Configuración aplicada correctamente",
"js.kernel_detail_fallback": "(sin detalle)",
"js.manual_kernel_synconf_off": "La recarga automática de kernel está desactivada (WGUI_WG_SYNCCONF_AFTER_APPLY=false/no definido).",
"js.validator_name_required": "Introduce un nombre",
"js.tags_placeholder": "Añadir",
"wol.meta_title_tpl": "{{.}} · WireGuard",
"clients.email_modal_title": "Enviar correo",
"clients.email_modal_send": "Enviar",
"clients.email_label": "Dirección de correo",
"about.page_title_fallback": "Acerca de",
"traffic.kpi_dl_total": "Descarga total (kernel)",
"traffic.kpi_ul_total": "Subida total (kernel)",
"traffic.kpi_all_peers_24h": "Todos los peers · últimas 24h",
"traffic.kpi_rate_window_title": "Máximo en ventana ~60s (muestreo 4s) · instantáneo",
"traffic.kpi_peak_dl_today": "Pico descarga · hoy",
"traffic.kpi_peak_perspective": "Perspectiva peer · máximo en ventanas 24h (muestreo 4s)",
"traffic.kpi_updated_ago": "actualizado hace {s}s",
"traffic.kpi_wg_ifaces": "Interfaces WG",
"traffic.bandwidth": "Ancho de banda",
"traffic.range_24h_live": "últimas 24h (estimado en vivo)",
"traffic.range_7d_live": "últimos 7 días (estimado en vivo)",
"traffic.range_30d_live": "últimos 30 días (estimado en vivo)",
"traffic.range_tabs_aria": "Rango histórico",
"traffic.chart_aria": "Historial ancho de banda",
"traffic.legend_dl_top": "Descarga (arriba)",
"traffic.legend_ul_bottom": "Subida (abajo)",
"traffic.peer_perspective_hint": "Perspectiva de peer/usuario final: descarga=TX del servidor, subida=RX del servidor.",
"traffic.table_intro": "Consumo por cliente según filtro seleccionado (24h · 7d · 30d).",
"traffic.th_client": "Cliente",
"traffic.th_ips": "IP asignadas",
"traffic.th_dl": "Descarga",
"traffic.th_ul": "Subida",
"traffic.th_handshake": "Último handshake",
"traffic.peer_fallback": "peer",
"traffic.bar_title": "Cliente: {name} · Descarga: {dl} · Subida: {ul}",
"logs.disabled_warn_before": "El monitoreo de logs está desactivado. Actívalo en",
"logs.disabled_warn_link": "Configuración global",
"logs.disabled_warn_after": "(opción Logs) para mostrar la pestaña Logs en el menú y la actualización periódica.",
"logs.filter_all": "Todos",
"logs.export": "Exportar",
"logs.clear": "Limpiar",
"logs.live_badge": "En vivo",
"logs.live_paused": "Sin actualización automática",
"logs.console_note": "Interfaz detectada: %s. Consola unificada de systemctl, journalctl y log opcional de app.",
"server.banner_query_err": "— Error al consultar WG",
"server.banner_active": "— Activo y escuchando",
"server.banner_no_iface": "— Sin interfaz en el kernel (no detectada por wgctrl)",
"server.banner_port": "Puerto",
"server.banner_peers": "peers",
"server.banner_hs_fmt": "%d handshakes recientes (&lt;3 min)",
"server.banner_uptime": " · Uptime equipo:",
"server.tooltip_apply_dump": "Vuelca wg.conf desde la base de datos (no ejecuta wg-quick).",
"server.tooltip_admin_required": "Administrador requerido",
"server.quick_restart": "Reiniciar",
"server.quick_down": "Detener",
"server.quick_up": "Iniciar",
"server.quick_actions_note": "Detener, Iniciar y Reiniciar actúan al momento sobre la interfaz WireGuard en vivo. No sustituyen «Guardar cambios» ni «Aplicar config».",
"server.section_iface": "Interfaz de red",
"server.lbl_ifname": "Nombre de interfaz",
"server.lbl_ip_addr": "Dirección IP",
"server.lbl_listen_port": "Puerto de escucha",
"server.lbl_mtu": "MTU",
"server.lbl_dns": "DNS",
"server.dns_micro": "Se usa en cliente y en opción “Global DNS”. Guardar también actualiza configuración global (MTU/DNS).",
"server.section_crypt": "Claves criptográficas",
"server.lbl_privkey": "Clave privada",
"server.lbl_pubkey": "Clave pública",
"server.pk_show": "Mostrar clave",
"server.pk_hide": "Ocultar clave",
"server.regenerate": "Regenerar",
"server.section_post": "PostUp / PostDown",
"server.lbl_pre_down": "Pre-down (opcional)",
"server.section_firewall": "Opciones de red y firewall",
"server.opt_fwd_title": "Reenvío IP (ip_forward)",
"server.opt_fwd_desc_admin": "Preferencia guardada en la base; en Linux ejecuta sysctl solo si WGUI_ALLOW_SYSCTL_IP_FORWARD=true.",
"server.opt_fwd_readonly": "Solo lectura.",
"server.opt_gdns_title": "Global DNS override",
"server.opt_gdns_body": "Forzar línea DNS de los bloques cliente con los DNS globales (independiente del campo por peer).",
"server.opt_persist_title": "Persistir configuración",
"server.opt_persist_body_fmt": "Escribir %s.conf desde la base de datos.",
"server.opt_auto_title": "Auto-aplicar cambios",
"server.opt_auto_body": "Mismo paso que “Persistir”: vuelca el archivo WG y actualiza hashes (equivalente a “Aplicar config”).",
"server.micro_footer": "Si tienes persistencia y reaplicación desactivadas, sólo cambia la base; usa “Sync” arriba o “Aplicar config” después.",
"server.btn_save_changes": "Guardar cambios",
"server.modal_regen_title": "Regenerar claves del servidor",
"server.modal_regen_body": "¿Seguro? Habrá que actualizar manualmente todos los peers con la nueva clave pública del servidor.",
"server.modal_regen_btn": "Regenerar",
"server.js_btn_save_apply": "Guardar y aplicar",
"server.js_tooltip_no_dirty": "Sin cambios pendientes en la sección Servidor",
"server.js_tooltip_dirty_apply": "Hay cambios sin guardar: se solicitará guardar antes de aplicar",
"server.js_tooltip_apply_file": "Aplicar cambios guardados al archivo wg.conf",
"server.js_err_port_invalid": "Puerto inválido",
"server.js_err_port_range": "Puerto fuera de rango",
"server.js_ok_updated": "Servidor actualizado",
"server.js_ok_applied_conf": "Configuración aplicada a wg.conf",
"server.js_err_generic": "Error",
"server.js_mtu_invalid": "MTU: número entero válido o vacío para omitirla",
"server.js_mtu_range": "MTU: entre 1280 y 9000, o vacío para omitir en los .conf",
"server.js_confirm_dirty_then_apply": "Hay cambios sin guardar. ¿Quieres guardarlos y luego aplicar configuración a wg.conf?",
"server.js_confirm_saved_apply": "Cambios guardados. ¿Aplicar ahora configuración a wg.conf?",
"server.js_confirm_apply_saved": "¿Aplicar ahora configuración guardada a wg.conf?",
"server.js_tunnel_down_apply_note": "El túnel está parado: solo escribimos wg.conf en disco; no iniciará hasta que pulses «Iniciar».",
"server.js_confirm_quick_down": "¿Detener la interfaz WireGuard (wg-quick down) usando la ruta de Config File Path global?",
"server.js_confirm_quick_up": "¿Levantar la interfaz WireGuard (wg-quick up) con el archivo configurado en Config File Path global?",
"server.js_confirm_quick_restart": "¿Reiniciar interfaz WireGuard ahora? (wg-quick down + wg-quick up)",
"server.js_ok_iface_down": "Interfaz detenida",
"server.js_ok_iface_up": "Interfaz iniciada",
"server.js_ok_iface_restart": "Interfaz reiniciada",
"server.js_ok_keys_regen": "Claves regeneradas",
"clients.modal_qr": "Código QR",
"clients.modal_telegram_title": "Configuración de Telegram",
"clients.telegram_userid": "ID de usuario Telegram",
"clients.modal_edit_client": "Editar cliente",
"clients.modal_disable": "Desactivar",
"clients.modal_remove": "Eliminar",
"clients.modal_apply_btn": "Aplicar",
"clients.sent_email_ok": "Correo enviado correctamente",
"clients.sent_telegram_ok": "Config enviada por Telegram correctamente",
"clients.updated_ok": "Cliente actualizado correctamente",
"clients.removed_ok": "Cliente eliminado correctamente",
"clients.edit_title_fmt": "Editar cliente {name}",
"clients.scan_qr_fmt": "Escanee el QR para el perfil de {name}",
"clients.send_config_fmt": "Enviar config a cliente {name}",
"clients.about_disable_fmt": "Va a desactivar el cliente {name}",
"clients.about_remove_fmt": "Va a eliminar el cliente {name}",
"clients.validator_name": "Introduce un nombre",
"clients.validator_email": "Introduce un correo",
"clients.validator_tg_req": "Introduce un userid de Telegram",
"clients.validator_tg_num": "Introduce un userid de Telegram válido",
"settings.card_head_wireguard": "Configuración global WireGuard",
"clients.save_btn": "Guardar",
"server.lbl_post_up": "PostUp",
"server.lbl_post_down": "PostDown",
"settings.page_sub": "Ajustes globales de cliente y archivos",
"profile.page_sub": "Perfil del usuario actual",
"users.page_sub": "Gestión de accesos y passkeys",
"page.clients_sub": "Gestión de peers y configuraciones",
"page.dashboard_sub": "Resumen del sistema",
"page.traffic_sub": "Monitoreo de ancho de banda",
"page.logs_sub": "Registros en tiempo real de WireGuard / aplicación",
"page.server_sub_fmt": "Configuración de %s",
"page.status_sub": "Peers desde wgctrl (detalle tabla)",
"page.about_sub": "Información y versión",
"api.account_disabled": "Cuenta deshabilitada",
"api.password_updated_reauth": "Contraseña actualizada. Vuelve a iniciar sesión.",
"api.user_enabled": "Usuario habilitado",
"api.no_change": "Sin cambios",
"api.account_disabled_admin_reactive": "Tu cuenta fue deshabilitada. Vuelve a iniciar sesión cuando un administrador te reactive.",
"api.user_disabled": "Usuario deshabilitado",
"api.disabled_no_valid_sessions": "El usuario está deshabilitado; no tiene sesiones activas válidas",
"api.session_revoked_reauth": "Sesión revocada. Vuelve a iniciar sesión.",
"api.user_sessions_revoked": "Sesiones del usuario cerradas",
"api.logs_monitoring_disabled": "Monitoreo de logs desactivado en configuración",
"api.saved_passkeys_cleared_failed": "Ajustes guardados pero no se pudieron borrar las passkeys almacenadas",
"api.global_saved_passkeys_disabled_kernel": "Configuración guardada. Passkeys desactivadas y credenciales eliminadas. Puedes aplicar al kernel en el mismo paso.",
"api.passkey_removed_reauth": "Passkey eliminada. Vuelve a iniciar sesión.",
"api.passkey_removed_sessions_revoked": "Passkey eliminada; sesiones del usuario revocadas",
"api.need_another_active_admin": "Debe haber al menos otro administrador activo antes de deshabilitar a este usuario",
"settings.endpoint_hint": "IP pública o <strong>nombre Dinámico DNS / No-IP</strong> tal cual (no se sustituye por IP ni se consulta desde el servidor). Opcionalmente <code>host:51820</code> para puerto distinto al de escucha.",
"settings.dns_hint": "Se insertan en la configuración de cliente.",
"settings.mtu_hint": "Rango recomendado: 1280-9000. Vacío para omitir.",
"settings.keepalive_hint": "Mantiene conectividad en peers detrás de NAT.",
"settings.config_path_example": "Ejemplo: <code>/etc/wireguard/wg0.conf</code>",
"settings.card_session": "Sesión y seguridad",
"settings.session_timeout_label": "Tiempo de sesión (minutos)",
"settings.session_timeout_hint": "Usa solo <strong>números enteros en minutos</strong> (no segundos). Rango <strong>51440</strong>. Cierra sesión por <strong>inactividad</strong>: sin peticiones autenticadas durante ese tiempo. Tras aplicar estos ajustes, <strong>vuelve a iniciar sesión</strong> para que el nuevo límite afecte tu cookie actual.",
"settings.minutes_unit": "minutos",
"settings.session_example": "Ejemplo: 30 = caduca tras ~30&nbsp;min sin usar la aplicación.",
"settings.passkeys_hint": "Iniciar sesión con llave segura del dispositivo. Desmarcar el interruptor no borra nada hasta que pulsas <strong>Guardar cambios</strong> abajo del todo; en ese momento se eliminan las passkeys guardadas. Al volver a activarlas, hay que registrarlas de nuevo desde <strong>Usuarios</strong>.",
"settings.card_appearance": "Apariencia",
"settings.lang_label": "Idioma",
"settings.theme_label": "Tema",
"settings.theme_dark": "Oscuro",
"settings.theme_light": "Claro",
"settings.theme_auto": "Automático (navegador)",
"settings.logs_toggle_label": "Logs",
"settings.logs_hint": "Activa el monitoreo en vivo: pestaña <strong>Logs</strong> en el menú, actualización periódica de registros y refresco de métricas en el <strong>Dashboard</strong>.",
"settings.save_footer": "Guardar cambios",
"settings.btn_suggest": "Suggest",
"settings.endpoint_modal_title": "Sugerencia de endpoint",
"settings.endpoint_modal_intro": "Lista de IPs públicas y locales para revisar.",
"settings.endpoint_modal_close": "Cerrar",
"settings.endpoint_modal_use": "Usar dirección seleccionada",
"profile.section_account_title": "Datos de tu cuenta",
"profile.section_account_sub": "Solo modifica tu propio usuario. Si cambias contraseña, se cerrará la sesión.",
"profile.lbl_display_name": "Nombre para mostrar",
"profile.lbl_username": "Nombre de usuario",
"profile.lbl_email": "Correo electrónico",
"profile.lbl_new_password": "Nueva contraseña",
"profile.ph_display_name": "Ej: Mario López",
"profile.ph_email": "usuario@ejemplo.com",
"profile.ph_password_keep": "Vacío para mantener la actual",
"profile.pass_show": "Mostrar",
"profile.pass_hide": "Ocultar",
"profile.pass_prefix": "Fortaleza:",
"profile.pass_none": "sin contraseña nueva",
"profile.pass_vweak": "muy débil",
"profile.pass_weak": "débil",
"profile.pass_medium": "media",
"profile.pass_strong": "fuerte",
"profile.pass_vstrong": "muy fuerte",
"profile.passkeys_sub": "Puedes registrar varias llaves y administrar sus nombres.",
"profile.pk_name_ph": "Nombre (ej: iPhone, MacBook, YubiKey)",
"profile.pk_add_btn": "Agregar passkey",
"users.stat_total_upper": "TOTAL USUARIOS",
"users.stat_total_badge": "Registrados",
"users.stat_admins_upper": "ADMINISTRADORES",
"users.stat_admins_badge": "Acceso total",
"users.stat_with_pk_upper": "CON PASSKEYS",
"users.stat_with_pk_badge": "Auth. fuerte",
"users.stat_no_pk_upper": "SIN PASSKEYS",
"users.stat_no_pk_badge": "Sin passkey reg.",
"users.search_ph": "Buscar usuario…",
"users.btn_new": "Nuevo usuario",
"users.th_user": "USUARIO",
"users.th_email": "CORREO",
"users.th_role": "ROL",
"users.th_state": "ESTADO",
"users.th_passkeys": "PASSKEYS",
"users.th_actions": "ACCIONES",
"users.modal_new_title": "Nuevo usuario",
"users.modal_edit_title": "Editar usuario",
"users.lbl_display_name": "Nombre para mostrar",
"users.ph_display_ex": "Ej: Mario López",
"users.ph_username_ex": "Ej: mario",
"users.lbl_username": "Nombre de usuario",
"users.lbl_email": "Correo electrónico",
"users.lbl_initial_pw": "Contraseña inicial",
"users.ph_min_pw": "Mínimo 8 caracteres",
"users.lbl_role": "Rol",
"users.role_standard": "Usuario",
"users.role_admin_option": "Administrador",
"users.btn_cancel": "Cancelar",
"users.btn_create": "Crear usuario",
"users.lbl_password": "Contraseña",
"users.ph_pw_unchanged": "Vacío para no cambiar",
"users.edit_admin_checkbox": "Administrador",
"users.edit_admin_note": "Solo aplica cuando editas a otro usuario",
"users.btn_save": "Guardar",
"users.del_title": "¿Eliminar usuario?",
"users.del_confirm_btn": "Eliminar",
"settings.val_mtu_digits": "MTU debe ser un entero",
"settings.val_mtu_range": "MTU entre 1280 y 9000 (o vacío para omitir)",
"settings.val_keepalive_digits": "Keepalive debe ser un entero",
"settings.val_conf_required": "Indica la ruta del archivo de configuración WireGuard",
"settings.val_session_digits": "El tiempo de sesión debe ser un entero",
"settings.val_session_range": "El tiempo de sesión debe estar entre 5 y 1440 minutos",
"settings.toast_no_changes": "Sin cambios pendientes por guardar",
"settings.toast_stage_local": "Cambios guardados localmente. Usa «Aplicar config» para aplicarlos.",
"settings.placeholder_select_ip": "Selecciona una dirección IP",
"profile.pk_empty_disabled": "Passkeys desactivadas en configuración global.",
"profile.pk_empty_none": "No tienes passkeys registradas aún.",
"profile.rename_tooltip": "Renombrar",
"profile.delete_pk_tooltip": "Eliminar passkey",
"profile.default_pk_name": "Passkey",
"profile.err_load_profile": "No se pudo cargar tu perfil",
"profile.err_load_pk": "No se pudieron cargar las passkeys",
"profile.err_username_required": "Nombre de usuario requerido",
"profile.ok_saved": "Perfil actualizado",
"profile.err_save": "Error al guardar",
"profile.err_pk_disabled_global": "Passkeys desactivadas en configuración global",
"profile.err_pk_browser": "Passkeys no soportadas en este navegador",
"profile.err_pk_need_name": "Indica un nombre para la passkey",
"profile.err_pk_begin": "No se pudo iniciar registro",
"profile.err_pk_finish": "Fallo el registro",
"profile.ok_pk_registered": "Passkey registrada",
"profile.confirm_remove_pk": "¿Eliminar esta passkey? Se cerrará tu sesión y tendrás que iniciar sesión de nuevo.",
"profile.warn_pk_removed": "Passkey eliminada",
"profile.err_pk_remove": "Error al eliminar",
"profile.prompt_pk_name": "Nombre de la passkey",
"profile.ok_name_updated": "Nombre actualizado",
"profile.err_rename": "Error al renombrar",
"users.pk_suspended": "Cuenta suspendida. Reactiva el usuario para administrar passkeys.",
"users.pk_disabled_global": "Passkeys desactivadas en Configuración global (TOTP/Passkeys).",
"users.pk_none_row": "Sin passkeys registradas",
"users.role_admin_badge": "Admin",
"users.role_user_badge": "Usuario",
"users.state_active": "Activo",
"users.state_suspended": "Suspendido",
"users.btn_demote_admin": "Quitar admin",
"users.btn_promote_admin": "Hacer admin",
"users.account_yours": "Tu cuenta",
"users.btn_revoke": "Revocar",
"users.btn_revoke_title": "Cierra todas las sesiones guardadas para este usuario",
"users.btn_suspend": "Suspender",
"users.btn_activate": "Activar",
"users.btn_suspend_title_block": "Impedir inicio hasta reactivación",
"users.btn_suspend_title_allow": "Permitir inicio de sesión",
"users.btn_edit": "Editar",
"users.btn_edit_title": "Editar usuario",
"users.passkeys_for": "Passkeys · ",
"users.pk_placeholder_short": "Nombre (ej: MacBook, YubiKey)",
"users.pk_add_inline": "Agregar passkey",
"users.empty_search": "No hay usuarios o no coincide la búsqueda.",
"users.err_load_users": "No se pudieron cargar usuarios",
"users.key_single": "key",
"users.key_plural": "keys",
"users.rename_tooltip": "Renombrar",
"users.delete_pk_tooltip": "Eliminar passkey",
"users.err_new_user_pass": "Nombre de usuario y contraseña son obligatorios",
"users.ok_user_created": "Usuario creado",
"users.err_generic_short": "Error",
"users.err_username_req": "Nombre de usuario requerido",
"users.ok_user_updated": "Usuario actualizado",
"users.del_body_fmt": "Se eliminará a «{display}» (@{username}) y todas sus passkeys.",
"users.ok_user_deleted": "Usuario eliminado",
"users.self_promote_hint": "Gestiona tu rol desde otro administrador.",
"users.ok_promoted_admin": "Usuario promovido a administrador",
"users.ok_demoted_admin": "Rol de administrador quitado",
"users.confirm_revoke_fmt": "¿Revocar todas las sesiones de «@{username}»? Deberá iniciar sesión de nuevo.",
"users.ok_sessions_revoked": "Sesiones revocadas",
"users.confirm_suspend_fmt": "¿Suspender cuenta «@{username}»? No podrá iniciar sesión hasta reactivación.",
"users.ok_state_updated": "Estado actualizado",
"users.err_pk_need_name_inline": "Indica un nombre para la passkey",
"users.err_pk_disabled": "Passkeys desactivadas en configuración global",
"users.err_pk_browser_inline": "Passkeys no soportadas en este navegador",
"users.ok_pk_registered": "Passkey registrada",
"users.confirm_del_pk_other": "¿Eliminar esta passkey? Las sesiones activas de ese usuario se cerrarán.",
"users.ok_rename_pk": "Nombre actualizado",
"settings.lang_opt_es": "Español",
"settings.lang_opt_en": "English",
"settings.lang_reload_hint": "Recarga la página después de pulsar «Aplicar config» en la barra superior para que se aplique el idioma seleccionado.",
"settings.dns_tags_add": "Añadir",
"settings.passkeys_label": "Passkeys",
"profile.pk_section_title": "Passkeys"
}