{
  "@@locale": "es",
  "nav.home": "Estado",
  "status.title": "Estado",
  "status.sip.connected": "Registrado",
  "status.sip.connecting": "Conectando…",
  "status.sip.not_configured": "Sin configurar",
  "status.sip.since": "desde hace {duration}",
  "status.sip.at": "en {host} como {user}",
  "status.sip.ext": "Número interno {n}",
  "status.sip.public_ip": "IP pública {ip}",
  "status.sip.nat_symmetric": "⚠️ NAT simétrico — el audio necesita una redirección de puerto RTP idéntica",
  "status.sip.stun": "STUN {server} · NAT: {nat}",
  "status.sip.setup_cta": "Configurar la telefonía",
  "status.sip.redo_cta": "Reconfigurar la telefonía",
  "status.token.set": "Token PhoneBlock configurado",
  "status.token.missing": "Sin token PhoneBlock",
  "status.token.rejected": "Token rechazado",
  "status.token.rejected.msg": "PhoneBlock ha rechazado el token. Por favor, genera un nuevo token mediante la opción «Solicitar uno nuevo».",
  "status.token.cta": "Crear token",
  "status.token.test": "Probar",
  "status.token.renew": "Renovar",
  "status.token.testing": "Comprobando el token…",
  "status.token.test.ok": "Token válido — PhoneBlock accesible.",
  "status.token.test.fail": "Token rechazado. Solicita uno nuevo.",
  "status.token.test.none": "No hay token configurado.",
  "status.counters.total": "Total",
  "status.counters.spam": "Spam bloqueado",
  "status.counters.legit": "Legítimas",
  "status.counters.errors": "Errores",
  "status.info": "Firmware {fw} · IP {ip} · Uptime {uptime} · Latencia API {api}",
  "status.api.failed": "La última llamada al servidor PhoneBlock ({when}) ha fallado: {reason}.",
  "status.api.fail.dns": "No se puede resolver el nombre del servidor (DNS)",
  "status.api.fail.connect": "No hay conexión con el servidor",
  "status.api.fail.tls": "Error en la conexión segura (TLS)",
  "status.api.fail.timeout": "No se ha recibido respuesta dentro del plazo de espera",
  "status.api.fail.http": "El servidor responde con el estado HTTP {status}",
  "status.api.fail.other": "Errores de transmisión",
  "status.api.fail.hint": "Comprueba la conexión a Internet del router y la configuración de red (puerta de enlace, DNS) del dongle.",
  "status.calls.title": "Últimas llamadas",
  "status.calls.empty": "aún sin llamadas",
  "status.calls.col.when": "Cuándo",
  "status.calls.col.number": "Número",
  "status.calls.col.name": "Nombre",
  "status.calls.col.verdict": "Veredicto",
  "status.calls.show_all": "Mostrar todo ({count})",
  "status.calls.show_less": "Mostrar menos",
  "status.calls.time_unknown": "desconocido",
  "status.calls.clear": "Vaciar lista",
  "status.calls.log_known": "Registrar llamadas conocidas",
  "status.calls.log_known.help": "Si está desactivado, las llamadas de números de la agenda y los códigos internos (**, *…) no aparecen en la lista — los contadores de arriba se siguen actualizando.",
  "status.calls.verdict.spam": "SPAM ({direct} directo, {range} rango)",
  "status.calls.verdict.spam_plain": "SPAM",
  "status.calls.verdict.spam_list": "SPAM (lista de bloqueo, {scope})",
  "status.calls.verdict.suspect": "SOSPECHA DE SPAM ({direct} directo, {range} rango)",
  "status.calls.verdict.blacklist": "SPAM (lista negra, {scope})",
  "status.calls.verdict.name_pattern": "SPAM (patrón de nombres)",
  "status.calls.verdict.legitimate": "legítimo",
  "status.calls.verdict.unknown": "desconocido",
  "status.calls.verdict.test": "Prueba",
  "status.calls.verdict.error": "Error",
  "status.calls.verdict.scope.number": "Número",
  "status.calls.verdict.scope.range": "Ámbito",
  "region.title": "Idioma y país",
  "region.lang": "Idioma",
  "region.country": "País",
  "region.country.hint": "A los números de teléfono sin prefijo de país se les añadirá este país. Si el país indicado aquí es incorrecto, PhoneBlock no encontrará ninguna entrada para ninguna llamada. El idioma también se aplica al mensaje de voz del contestador automático y al correo electrónico de estado.",
  "status.thresholds.title": "Traviesas de bloque",
  "status.thresholds.intro": "A partir de cuántos votos «PhoneBlock» el dongle desactiva una llamada. Los votos «Directos» tienen más peso que los votos «De alcance», por eso se indican valores por separado.",
  "status.thresholds.direct": "Votos directos",
  "status.thresholds.direct.help": "Bloquea directamente las llamadas procedentes del número que llama. Valor por defecto: 4 — el mismo valor que la lista de bloqueo pública de PhoneBlock.",
  "status.thresholds.range": "Voces de Range",
  "status.thresholds.range.help": "Votos contra vecinos del mismo bloque de 10 o de 100. Valor predeterminado: 10. «Desactivado» desactiva el bloque de rango; en ese caso, solo cuentan los aciertos directos.",
  "status.thresholds.range.off": "De",
  "status.thresholds.saved": "Guardado.",
  "status.thresholds.invalid": "Valor no válido.",
  "status.system.title": "Sistema",
  "status.system.heap": "Memoria libre: {free} (mínimo: {min}, bloque mayor: {largest})",
  "status.system.fs": "Partición de datos: {free} libres de {total} ({used} usados)",
  "status.system.temp": "Temperatura del chip: {temp} °C",
  "status.system.wifi": "Señal Wi-Fi: {rssi} dBm ({quality})",
  "status.system.wifi.good": "bien",
  "status.system.wifi.ok": "suficiente",
  "status.system.wifi.weak": "débil",
  "status.system.wifi_tx": "Potencia de transmisión: {tx} dBm",
  "status.system.wifi_link": "Wifi «{ssid}» a través del punto de acceso {bssid}, canal {channel}, conectado desde {since}",
  "status.system.wifi_drops": "{drops} de conexión desde el inicio",
  "status.system.wifi.weak_hint": "Señal wifi débil: acerca el dongle a la Fritz!Box o a un repetidor. En la red Mesh, la vista general de la Fritz!Box muestra en qué dispositivo está conectado.",
  "status.system.col.task": "Tarea",
  "status.system.col.cpu": "CPU",
  "status.system.col.stack": "Pila libre",
  "status.system.led_quiet": "Encender el LED solo cuando haya un problema",
  "status.system.led_quiet.hint": "Normalmente el LED permanece encendido cuando todo está bien. Con esta opción se queda apagado en funcionamiento normal y solo se enciende o parpadea cuando hay un problema (configuración necesaria, sin registrar, token rechazado, sin conexión). Útil en el salón.",
  "status.system.lcd_flip": "Pantalla al revés (girar 180°)",
  "status.system.lcd_flip.hint": "Dependiendo de la orientación del puerto USB de tu Fritz!Box, el dispositivo estará colocado al revés. Gira la imagen 180°.",
  "status.clock.now": "Hora: {time}",
  "status.clock.pending": "Hora: se está sincronizando…",
  "status.time.today": "hoy {time}",
  "status.time.yesterday": "ayer {time}",
  "status.tz.current": "Zona horaria: {tz}",
  "status.tz.apply": "Cambiar a {zone}",
  "status.tz.saved": "Zona horaria guardada.",
  "status.errors.title": "Registro",
  "status.errors.note": "El registro sirve para diagnosticar problemas — no toda entrada es un fallo real; muchos errores son transitorios y desaparecen solos.",
  "status.errors.empty": "sin entradas",
  "status.errors.clear": "Vaciar registro",
  "status.errors.capture_info": "Registrar también los mensajes info",
  "status.errors.capture_info.hint": "Para diagnóstico: muestra también mensajes info (p. ej. el servidor:puerto intentado). Llena el registro rápido; desactívalo después.",
  "status.auth.title": "Protección de acceso",
  "status.auth.intro": "Protege la interfaz de configuración durante el uso diario. Si la activas, la página pedirá un «Inicio de sesión con PhoneBlock» antes de mostrar llamadas o aceptar cambios.",
  "status.auth.disabled": "Protección de acceso desactivada — cualquiera en la LAN puede llegar al panel sin iniciar sesión.",
  "status.auth.enabled": "Protección de acceso activa — sesión iniciada como usuario de PhoneBlock.",
  "status.auth.enabled.user": "Protección de acceso activa — sesión iniciada como {user}.",
  "status.auth.no_token": "La protección de acceso necesita un token PhoneBlock configurado (paso 2 arriba). Solo entonces el dongle puede verificar tu identidad frente al servidor.",
  "status.auth.enable": "Activar protección de acceso",
  "status.auth.disable": "Desactivar protección de acceso",
  "status.auth.logout": "Cerrar sesión",
  "status.auth.activate.intro": "Antes de activarla se te redirige a phoneblock.net para iniciar sesión — la protección solo se activa tras un inicio de sesión correcto. Así no puedes bloquearte fuera.",
  "login.title": "Inicio de sesión necesario",
  "login.intro": "La protección de acceso de este dongle está activa. Haz clic abajo para iniciar sesión con tu cuenta de PhoneBlock — serás redirigido brevemente a phoneblock.net y devuelto automáticamente.",
  "login.button": "Iniciar sesión con PhoneBlock",
  "login.remember": "Mantener la sesión iniciada",
  "login.remember.help": "Coloca una cookie en este dispositivo para que el dongle te reconozca la próxima vez sin pasar por phoneblock.net. Solo se recuerda un navegador a la vez.",
  "login.error.mismatch": "Inicio de sesión fallido — esta cuenta de PhoneBlock no es la propietaria de este dongle.",
  "login.error.mismatch_named": "Inicio de sesión fallido — este dongle pertenece a la cuenta {expected}, pero has iniciado sesión con otro usuario.",
  "login.error.rejected": "Inicio de sesión fallido — el servidor de PhoneBlock no confirmó la identidad.",
  "login.error.expired": "El inicio de sesión ha caducado o no es válido. Inténtalo de nuevo.",
  "login.error.persist": "No se pudo guardar la activación. Inténtalo de nuevo.",
  "login.error.missing": "La respuesta de phoneblock.net estaba incompleta. Inténtalo de nuevo.",
  "login.error.generic": "Inicio de sesión fallido. Inténtalo de nuevo.",
  "status.reset.title": "Restablecimiento",
  "status.reset.intro": "Borra todos los ajustes del dongle (credenciales SIP, token PhoneBlock, historial de errores) y reinicia.",
  "status.reset.button": "Restablecer configuración",
  "status.reset.confirm": "¿Borrar de verdad todos los ajustes del dongle y reiniciar?",
  "status.reset.running": "Restableciendo — el dongle se reinicia.",
  "status.reset.error": "El restablecimiento falló: {msg}",
  "status.fw.title": "Actualizar firmware",
  "status.fw.intro": "Sube un nuevo binario de firmware o comprueba directamente el CDN de PhoneBlock. En ambos casos la nueva versión se escribe en el slot de flash inactivo; tras el reinicio el dongle arranca la nueva versión y revierte automáticamente si falla.",
  "status.fw.current": "Partición activa: {partition} · Versión {version}",
  "status.fw.pick": "Elegir firmware (.bin)",
  "status.fw.submit": "Subir y reiniciar",
  "status.fw.confirm": "¿Instalar el nuevo firmware y reiniciar el dongle?",
  "status.fw.uploading": "Subiendo… {pct} %",
  "status.fw.done": "Firmware subido — el dongle se reinicia. Espera un momento y luego recarga la página.",
  "status.fw.error": "Error: {msg}",
  "status.fw.check": "Buscar actualizaciones",
  "status.fw.checking": "Buscando actualizaciones…",
  "status.fw.check.none": "No hay versión más reciente (actualmente {version}).",
  "status.fw.check.found": "Instalando la nueva versión {version}…",
  "status.fw.check.installed": "Versión {version} instalada — el dongle se reinicia. Espera un momento y luego recarga la página.",
  "status.fw.check.error": "La comprobación falló: {msg}",
  "status.fw.failed": "La última actualización a la versión {version} no superó el arranque — se revirtió automáticamente. La actualización automática omitirá esta versión. Pulsa «Buscar actualizaciones» para volver a intentarlo.",
  "status.fw.auto_update": "Actualización automática diaria",
  "status.fw.auto_update.help": "Si está activada, el dongle comprueba una vez al día si hay una versión más nueva en la CDN de PhoneBlock y la instala automáticamente. Subir un firmware manualmente desactiva esta opción para que la comprobación diaria no sobrescriba tu compilación elegida — vuelve a activarla aquí cuando quieras seguir el flujo de versiones publicadas.",
  "status.fw.channel": "Canal de actualización",
  "status.fw.channel.help": "Elige «Beta» para recibir versiones de prueba con antelación — por ejemplo para verificar un error que has reportado. «Estable» solo entrega versiones publicadas. En cuanto una versión probada se publica definitivamente, vuelves a ella automáticamente.",
  "status.fw.channel.stable": "Estable",
  "status.fw.channel.beta": "Beta (versiones de prueba)",
  "status.fw.crash_report": "Enviar informes de error a phoneblock.net",
  "status.fw.crash_report.help": "Cuando el dongle reinicia tras un fallo de software, se escribe una instantánea de memoria en una partición flash reservada. Con esta opción activada, el dongle sube la instantánea a phoneblock.net en el próximo arranque — esto nos ayuda a localizar y corregir errores en campo. Desactívala para suprimir los envíos; las instantáneas guardadas se borran localmente en lugar de enviarse.",
  "status.mail.title": "Correos de estado",
  "status.mail.intro": "El dongle puede enviarte notificaciones de estado directamente por correo — a través de tu propia cuenta de correo. Introduce las credenciales de tu proveedor; el dongle envía como máximo una notificación al día.",
  "status.mail.host": "Servidor SMTP",
  "status.mail.port": "Puerto (vacío = automático)",
  "status.mail.security": "Cifrado",
  "status.mail.security.tls": "TLS (puerto 465)",
  "status.mail.security.starttls": "STARTTLS (puerto 587)",
  "status.mail.user": "Nombre de usuario (acceso SMTP)",
  "status.mail.pass": "Contraseña",
  "status.mail.pass.keep": "guardada — déjala en blanco para conservarla",
  "status.mail.from": "Remitente (correo, vacío = nombre de usuario)",
  "status.mail.to": "Destinatarios (correo electrónico; separar varios con «;»)",
  "status.mail.help": "Consejo: en Gmail u Outlook normalmente necesitas una «contraseña de aplicación» (si tienes activada la verificación en dos pasos), no tu contraseña habitual. Proveedores clásicos como GMX, web.de o mailbox.org funcionan con nombre de usuario y contraseña.",
  "status.mail.on_error": "Correo en caso de errores y fallos",
  "status.mail.on_error.help": "Envía un correo al día si ha aparecido un error en el registro desde la última notificación — esto incluye un reinicio tras un fallo.",
  "status.mail.on_spam": "Notificar llamadas por correo electrónico",
  "status.mail.on_spam.help": "Envía una vez al día un correo electrónico con las llamadas recibidas desde el último informe, tanto las bloqueadas como las permitidas.",
  "status.mail.spam_only": "Notificar únicamente las llamadas de spam rechazadas",
  "status.mail.spam_only.help": "El correo electrónico de llamadas solo incluye las llamadas que el dongle ha bloqueado como spam. No aparecen las llamadas legítimas ni las de números desconocidos, y si solo se reciben este tipo de llamadas, no se envía ningún correo electrónico.",
  "status.mail.on_update": "Correo electrónico al actualizar el firmware",
  "status.mail.on_update.help": "Envía un correo electrónico una vez que el dongle se haya actualizado a una nueva versión de firmware, con un enlace al registro de cambios.",
  "status.mail.save": "Guardar",
  "status.mail.saved": "Guardado.",
  "status.mail.test": "Enviar correo de prueba",
  "status.mail.testing": "Enviando correo de prueba…",
  "status.mail.test.sent": "Enviando correo de prueba — el resultado aparecerá en el registro.",
  "status.mail.test.fail": "Envío fallido — comprueba los ajustes y el registro.",
  "status.mail.err.host": "Falta el servidor SMTP",
  "status.mail.err.user": "Falta el usuario",
  "status.mail.err.pass": "Falta la contraseña",
  "status.mail.err.to": "Destinatario no válido",
  "status.mail.err.to_many": "Se admiten como máximo {max} destinatarios",
  "status.mail.err.from": "Remitente no válido",
  "status.mail.err.from_user": "Se requiere remitente — el usuario no es una dirección de correo",
  "status.sync.title": "Sincronización de lista de bloqueo",
  "status.sync.intro": "Los números bloqueados desde el terminal («Bloquear número») se envían a la base de PhoneBlock una vez al día y luego se eliminan de la Fritz!Box. El bot luego intercepta esas llamadas para todos los usuarios de PhoneBlock.",
  "status.sync.unavailable": "No disponible — requiere configuración Fritz!Box.",
  "status.sync.never": "Aún no ejecutado.",
  "status.sync.last_ok": "Última ejecución hace {ago}: {n} enviados.",
  "status.sync.last_partial": "Última ejecución hace {ago}: {n} enviados, {f} con error.",
  "status.sync.last_fail": "Última ejecución hace {ago} falló: {err}",
  "status.sync.running": "Sincronización en curso…",
  "status.sync.run_now": "Sincronizar ahora",
  "status.sync.triggered": "Sincronización iniciada.",
  "status.sync.busy": "Sincronización ya en curso.",
  "status.sync.enable": "Activar sincronización",
  "status.sync.disabled": "Sincronización auto desactivada — ejecución manual aún posible.",
  "status.localcache.title": "Caché de lista de bloqueo",
  "status.localcache.intro": "Una vez al día, el dongle descarga la lista de bloqueo común y tu lista negra/blanca personal, y las guarda en la memoria flash interna. Las llamadas entrantes se deciden entonces sin llamadas a la API — más rápido y resistente a problemas de red.",
  "status.localcache.enable": "Usar caché de lista de bloqueo",
  "status.localcache.enable.help": "Descarga la lista de bloqueo en el dongle y decide las llamadas localmente. Desactivado: cada llamada se comprueba directamente con el servidor — más lento y solo posible con una conexión a Internet activa.",
  "status.localcache.disabled": "Desactivado — las llamadas se comprueban directamente con el servidor.",
  "status.localcache.never": "Aún no descargado.",
  "status.localcache.have": "{community} entradas comunes, {personal} personales. Actualizado hace {ago}.",
  "status.localcache.last_fail": "Última descarga hace {ago} falló: {err}",
  "status.localcache.running": "Descarga en curso…",
  "status.localcache.wildcards": "Aplicar comodines",
  "status.localcache.wildcards.help": "Bloquea también rangos de números (p. ej. \"030 12 34 56*\") que la comunidad haya marcado como spam, además de coincidencias exactas. Desactiva para bloquear solo coincidencias exactas.",
  "status.localcache.run_now": "Descargar ahora",
  "status.localcache.triggered": "Descarga iniciada.",
  "status.localcache.busy": "Descarga ya en curso.",
  "status.names.title": "Filtro de nombres",
  "status.names.intro": "Si tu FRITZ!Box encuentra al llamante en una agenda telefónica, te indica también su nombre. Si utilizas una lista de spam de terceros (por ejemplo, de Tellows), todas las entradas tendrán un nombre revelador, que podrás marcar aquí como spam. Lo mismo ocurre con una agenda propia en la que denomines de la misma forma a todas las llamadas no deseadas.",
  "status.names.patterns": "Nombres que indican spam (separados por |)",
  "status.names.help": "Una llamada se considera spam en cuanto el nombre notificado contenga alguno de estos textos; no importa si se escribe en mayúsculas o minúsculas. Ejemplo: «tellows|Score|SPAM». El nombre de la persona que llama aparece en la lista de llamadas recientes. Si lo dejas en blanco, se desactiva el filtro de nombres.",
  "status.names.save": "Guardar filtro de nombres",
  "status.names.saved": "Filtro de nombres guardado.",
  "status.names.failed": "Error al guardar.",
  "status.names.err.many": "Se admiten como máximo {max} nombres.",
  "status.names.err.long": "Un nombre puede tener una longitud máxima de {max} caracteres.",
  "status.webhook.title": "Webhook para llamadas",
  "status.webhook.intro": "Cada vez que aparece una llamada en el historial de llamadas, el dongle envía los datos de la llamada mediante un método HTTP POST a esta dirección, por ejemplo, a Home Assistant, ioBroker o Node-RED. El contenido es una entrada del historial de llamadas en formato JSON, con los mismos campos que /api/calls.",
  "status.webhook.url": "Dirección del webhook",
  "status.webhook.help": "Solo http:// y solo a direcciones de tu red doméstica, por ejemplo, http://homeassistant.local:8123/api/webhook/phoneblock. Si lo dejas en blanco, se desactivará el webhook.",
  "status.webhook.save": "Guardar webhook",
  "status.webhook.saved": "Webhook guardado.",
  "status.webhook.failed": "Error al guardar.",
  "status.webhook.err.https": "No es compatible con https: el dongle solo envía datos a través de http y únicamente en la red doméstica.",
  "status.webhook.err.url": "Introduce una dirección http válida, por ejemplo, http://homeassistant.local:8123/api/webhook/phoneblock.",
  "status.webhook.err.long": "La dirección no puede tener más de {max} caracteres.",
  "status.ann.title": "Mensaje anti-spam",
  "status.ann.default": "Mensaje predeterminado integrado ({kb} KB).",
  "status.ann.custom": "Mensaje personalizado ({kb} KB).",
  "status.ann.play": "Escuchar mensaje actual",
  "status.ann.stop": "Detener",
  "status.ann.upload.label": "Subir uno propio (WAV/MP3/OGG, máx. {s} s)",
  "status.ann.upload.pick": "Elegir archivo",
  "status.ann.upload.submit": "Subir",
  "status.ann.upload.converting": "Convirtiendo…",
  "status.ann.upload.uploading": "Enviando…",
  "status.ann.upload.done": "Guardado ({kb} KB).",
  "status.ann.upload.error": "Error: {msg}",
  "status.ann.upload.toolong": "Demasiado largo — máximo {s} segundos.",
  "status.ann.upload.decode_fail": "No se pudo decodificar el archivo.",
  "status.ann.reset.button": "Restablecer al predeterminado",
  "status.ann.reset.confirm": "¿Descartar realmente el mensaje personalizado?",
  "status.ann.accept_test": "Aceptar llamadas de prueba locales",
  "status.ann.accept_test.help": "Si está activado, el dongle responde a las llamadas a códigos internos del Fritz!Box (**622, *21#, …) como spam — con el anuncio y colgando. Permite probar el flujo completo desde otro teléfono interno sin denunciar un número real a PhoneBlock.",
  "status.dialog.mode": "En caso de llamadas no deseadas",
  "status.dialog.mode.announcement": "Reproducir el mensaje y colgar",
  "status.dialog.mode.dialog": "Hablar con la persona que llama (diálogo)",
  "status.dialog.help": "En el modo de diálogo, el dongle acepta la llamada no deseada y mantiene al interlocutor en espera con frases breves que responden a sus respuestas hasta que cuelga, sin límite de tiempo. En el modo de diálogo no hay mensaje de bienvenida: la grabación propia se borra al cambiar de modo y solo se puede volver a cargar en el modo de mensaje de bienvenida.",
  "status.dialog.clips.present": "Se han cargado las frases de diálogo ({lang}).",
  "status.dialog.clips.missing": "Las frases de diálogo aún no se han cargado; hasta entonces, el dongle realiza llamadas spam sin mensaje de bienvenida.",
  "status.dialog.clips.pending": "Las frases de diálogo se cargarán en breve…",
  "status.dialog.clips.downloading": "Se están cargando las frases de diálogo ({kb} KB) …",
  "status.dialog.clips.failed": "Error al cargar las frases de diálogo ({error}): el dongle lo volverá a intentar en la próxima sincronización. Hasta entonces, colgará las llamadas no deseadas sin dar ningún mensaje.",
  "status.dialog.clips.unavailable": "No hay frases de diálogo publicadas para este idioma y este dispositivo: el dongle cuelga las llamadas de spam sin emitir ningún mensaje.",
  "status.dialog.confirm_delete_own": "Tu propio mensaje de bienvenida se borrará al cambiar al modo de diálogo. Puedes volver a subirlo en el modo de mensaje de bienvenida. ¿Quieres continuar?",
  "status.dialog.vad_silence_db": "Umbral de silencio (dBFS)",
  "status.dialog.vad_silence_db.help": "Si el volumen es inferior a este nivel, se considera que la persona que llama habla en voz baja. Se ajusta a un valor más alto (p. ej., -30) si hay ruido en la línea, y a uno más bajo (p. ej., -45) si la persona que llama habla en voz baja. Valor predeterminado: -35.",
  "status.dialog.vad_min_silence_ms": "Tiempo de respuesta (ms)",
  "status.dialog.comfort_noise": "Ruido de línea (dBFS)",
  "status.dialog.comfort_noise.help": "Un ligero ruido de fondo entre frases y al final de cada una, para que la línea no suene muerta. -90 equivale prácticamente a apagado. Valor predeterminado: -60.",
  "status.dialog.saved": "Guardado.",
  "status.dialog.tuning": "Ajustes avanzados: detección de pausas y ruido de fondo",
  "status.dialog.failed": "Error al guardar.",
  "status.dialog.err.range": "Introduce un número entero comprendido entre {min} y {max}.",
  "status.ann.upload.silent": "La grabación no tiene sonido: nada de lo que contiene supera los -45 dBFS.",
  "status.dialog.clips.own": "Se ha activado el cuadro de diálogo propio.",
  "status.dialog.speaker": "Voz",
  "status.dialog.speaker.use": "Utilizar",
  "status.dialog.speaker.active": "activo",
  "status.dialog.speaker.none": "Aún no se han cargado las voces; el dongle las cargará en la próxima sincronización.",
  "status.dialog.own": "Diálogo propio",
  "status.dialog.own.replace_confirm": "Tu propio diálogo se sustituirá por las frases de {name}; en el dongle solo cabe un diálogo. Si quieres conservarlo, descárgalo antes en «Crear tu propio diálogo». ¿Quieres continuar?",
  "status.dialog.own.leave_confirm": "Al pasar al modo de locución, se borrará tu propio diálogo. ¿Quieres continuar?",
  "status.dialog.own.leave_download": "¿Quieres descargar antes tu diálogo como archivo?",
  "status.dialog.edit.title": "Crear un diálogo propio",
  "status.dialog.edit.intro": "Empiezas con las frases que hay en el dongle. Borra grabaciones o añade otras nuevas (WAV/MP3/OGG); cada una se ajusta al mismo volumen y se elimina el silencio al principio y al final. Cada fase necesita al menos una frase; el dongle la selecciona al azar.",
  "status.dialog.edit.yes_hint": "Nunca grabes un «sí»: un «sí» grabado puede utilizarse indebidamente como consentimiento.",
  "status.dialog.phase.hello": "Bienvenida",
  "status.dialog.phase.who-is-there": "La persona que llama guarda silencio tras el saludo («¿Quién es?»).",
  "status.dialog.phase.am-aparat": "La persona que llama se presenta",
  "status.dialog.phase.question": "Consultas",
  "status.dialog.phase.cant-hear-you": "La persona que llama permanece en silencio durante la conversación («No oigo nada»)",
  "status.dialog.edit.add": "+ Añadir grabación",
  "status.dialog.edit.delete": "Eliminar",
  "status.dialog.edit.gauge": "{kb} de {max} KB",
  "status.dialog.edit.upload": "Cargar en el dongle",
  "status.dialog.edit.download": "Descargar el archivo de diálogo",
  "status.dialog.edit.load_file": "Cargar archivo de diálogo",
  "status.dialog.edit.reason.empty": "La fase «{phase}» aún no tiene ninguna grabación.",
  "status.dialog.edit.reason.many": "La fase «{phase}» tiene más de {max} grabaciones.",
  "status.dialog.edit.reason.size": "El tamaño total de las grabaciones supera la capacidad del dongle: borra o recorta algunas grabaciones.",
  "status.dialog.edit.bad_file": "Este no es un archivo de diálogo válido.",
  "status.dialog.edit.no_set": "En el dongle aún no hay ningún diálogo; añade grabaciones para cada fase.",
  "status.dialog.edit.changed": "En el dongle hay ahora otras grabaciones (se ha cambiado el idioma o la voz). Tu edición en el editor aún no se ha subido.",
  "status.dialog.edit.reload": "Deshacer y volver a cargar",
  "status.dialog.edit.done": "Se ha guardado un diálogo propio ({kb} KB).",
  "hero.title": "Configuración",
  "hero.intro": "Dos pasos y el dongle bloqueará llamadas spam automáticamente. Ambos deben completarse para que el dispositivo esté listo.",
  "hero.step1.todo": "Registra el dongle en tu sistema telefónico",
  "hero.step1.done": "Telefonía configurada",
  "hero.step2.todo": "Conecta con PhoneBlock — para que el dongle sepa qué es spam",
  "hero.step2.done": "Conectado con PhoneBlock",
  "hero.cta.sip": "Configurar la telefonía",
  "hero.cta.token": "Conectar PhoneBlock",
  "sip.entry.title": "Configurar la telefonía",
  "sip.entry.intro": "Elige cómo se registra el dongle en tu sistema telefónico.",
  "sip.entry.fritzbox": "Fritz!Box (recomendado)",
  "sip.entry.fritzbox.desc": "Configuración automática. El dongle se registra solo como teléfono IP.",
  "sip.entry.provider": "Otro proveedor",
  "sip.entry.provider.desc": "Registrarse directamente con Telekom, Vodafone, 1&1, sipgate o easybell.",
  "sip.entry.manual": "Manual (experto)",
  "sip.entry.manual.desc": "Rellena tú mismo todos los campos SIP.",
  "sip.fb.title": "Configuración Fritz!Box",
  "sip.fb.intro": "Introduce una vez la contraseña de administración de la Fritz!Box. No se guarda.",
  "sip.fb.host": "Fritz!Box (host o IP)",
  "sip.fb.user": "Usuario",
  "sip.fb.user.hint": "(dejar vacío → usuario por defecto de la Fritz!Box)",
  "sip.fb.pass": "Contraseña",
  "sip.fb.submit": "Crear extensión",
  "sip.fb.working": "Creando la extensión (~2–5 s)…",
  "sip.fb.done": "Extensión creada — iniciando el registro.",
  "sip.fb.done.withnum": "Extensión creada (número interno {n}) — iniciando el registro.",
  "sip.fb.error": "Error: {msg}",
  "sip.fb.2fa.title": "Confirmación de dos factores",
  "sip.fb.2fa.button": "pulsar cualquier botón de la Fritz!Box",
  "sip.fb.2fa.dtmf": "marcar {seq} en un teléfono conectado",
  "sip.fb.2fa.instructions": "Ahora {hints}, por favor.",
  "sip.fb.2fa.cancelled": "2FA cancelada.",
  "sip.fb.2fa.timeout": "Tiempo agotado. Inténtalo de nuevo.",
  "sip.prov.title": "Elegir proveedor",
  "sip.prov.intro": "Elige tu proveedor; las credenciales están en su portal de cliente. Si tu proveedor no aparece, usa la configuración manual.",
  "sip.prov.provider": "Proveedor",
  "sip.prov.user": "Usuario SIP / número",
  "sip.prov.pass": "Contraseña",
  "sip.prov.submit": "Guardar credenciales",
  "sip.prov.done": "Guardado. Iniciando el registro.",
  "sip.prov.error": "Error: {msg}",
  "sip.manual.title": "Configuración manual",
  "sip.manual.intro": "Todos los campos SIP. Dejar la contraseña vacía significa «sin cambios».",
  "sip.manual.host": "Registrar SIP",
  "sip.manual.port": "Puerto SIP",
  "sip.manual.port.hint": "Déjelo en blanco para usar DNS-SRV o el valor predeterminado del transporte (5060 UDP/TCP, 5061 TLS).",
  "sip.manual.user": "Usuario SIP",
  "sip.manual.pass": "Contraseña SIP",
  "sip.manual.pass.hint": "Dejar en blanco = conservar la contraseña guardada.",
  "sip.manual.anon": "Registrarse sin contraseña (anónimo)",
  "sip.manual.anon.hint": "Elimina cualquier contraseña guardada y se registra sin ella, p. ej. anonymous@t-online.de en Telekom.",
  "sip.manual.submit": "Guardar",
  "sip.manual.done": "Guardado.",
  "sip.manual.error": "Error: {msg}",
  "sip.manual.advanced": "Parámetros avanzados",
  "sip.manual.transport": "Transporte",
  "sip.manual.transport.hint": "Puede elegir UDP, TCP o TLS. TLS cifra la conexión y se recomienda si el proveedor lo admite. El audio de voz todavía no está cifrado.",
  "sip.manual.auth_user": "Usuario de auth",
  "sip.manual.auth_user.hint": "Vacío = usar el usuario SIP para auth. Telekom: correo electrónico.",
  "sip.manual.outbound": "Proxy saliente",
  "sip.manual.outbound.hint": "Opcional, formato host[:puerto]. Vacío = registrar directamente.",
  "sip.manual.realm": "Realm",
  "sip.manual.realm.hint": "Vacío = tomarlo del challenge del servidor.",
  "sip.manual.stun": "Servidor STUN",
  "sip.manual.stun.hint": "Opcional, formato host[:puerto]. Detecta el puerto RTP público al registrarse directamente con el proveedor. Vacío = desactivado. Lo define el preajuste del proveedor (Telekom: stun.t-online.de:3478).",
  "sip.manual.srtp": "SRTP",
  "sip.manual.srtp.hint": "El SRTP se negocia automáticamente: el audio se cifra cuando el proveedor lo ofrece (p. ej. Telekom); de lo contrario, RTP sin cifrar (p. ej. la Fritz!Box en la LAN).",
  "sip.manual.local_port": "Puerto SIP local",
  "sip.manual.local_port.hint": "Puerto en el que el dongle recibe SIP (predeterminado 15060). Vacío = predeterminado.",
  "sip.manual.rtp_port": "Puerto RTP (audio)",
  "sip.manual.rtp_port.hint": "Puerto del canal de voz (predeterminado 16000). Vacío = predeterminado.",
  "sip.manual.fwd.title": "Reenvío de puertos para registro directo con el proveedor",
  "sip.manual.fwd.body": "Si el dongle se registra directamente con el proveedor (en lugar de a través de un router VoIP) y este solo admite UDP, añade en tu router un reenvío UDP al dongle para cada uno, con el mismo puerto (puerto externo = puerto interno): {sip} (SIP) y {rtp} (RTP). El dongle detecta su IP pública automáticamente (se muestra en el estado de arriba); no es necesario introducirla. Esto solo funciona con una IPv4 pública real (dedicada) — no con DS-Lite/CGNAT (IPv4 compartida), donde no es posible ningún reenvío; entonces solo ayuda TCP/TLS, si el proveedor lo admite.",
  "sip.manual.srtp.off": "desactivado",
  "sip.manual.srtp.optional": "opcional",
  "sip.manual.srtp.mandatory": "obligatorio",
  "token.title": "Conectar PhoneBlock",
  "token.intro": "El dongle consulta la base de PhoneBlock en cada llamada entrante. Para ello necesita un token.",
  "token.how": "Al pulsar el botón de abajo irás a phoneblock.net para iniciar sesión una sola vez (Google, Facebook o cuenta). Después vuelves aquí con el token configurado.",
  "token.current.set": "Ya hay un token configurado. Iniciar sesión de nuevo generará uno nuevo.",
  "token.current.missing": "Aún no hay token configurado.",
  "token.submit": "Entrar en PhoneBlock",
  "link.submit": "Vincular la cuenta de PhoneBlock",
  "link.how": "Al hacer clic en el botón, aparecerá un código. A continuación, abre phoneblock.net, inicia sesión e introduce el código allí. El servicio se encargará de recuperar el token automáticamente.",
  "link.starting": "Se está preparando el enlace…",
  "link.compare": "Introduce este código en phoneblock.net para vincular el servicio a tu cuenta.",
  "link.copy": "Copiar código",
  "link.copied": "Código copiado",
  "link.copy_failed": "No se puede copiar: el código está resaltado; cópialo con Ctrl+C.",
  "link.open": "Abrir phoneblock.net",
  "link.manual": "La página es {url}; también puedes introducir el código allí desde otro dispositivo, por ejemplo, desde el móvil.",
  "link.waiting": "A la espera de que se introduzca el código en phoneblock.net…",
  "link.approved": "Cuenta de PhoneBlock vinculada: el token está configurado.",
  "link.denied": "El enlace ha sido rechazado en phoneblock.net.",
  "link.expired": "El código ha caducado. Solicita un nuevo código.",
  "link.error": "El enlace ha fallado: {msg}",
  "link.retry": "Intentarlo de nuevo",
  "back.status": "← volver al estado",
  "back.sip": "← volver a la elección",
  "i18n.loading": "Cargando la traducción…",
  "i18n.unavailable": "Traducción no disponible: se muestra el idioma predeterminado.",
  "status.calls.add_contact": "Añadir a la agenda de la Fritz!Box",
  "status.phonebook.title": "Agenda telefónica para nuevos contactos",
  "status.phonebook.intro": "Las llamadas de personas que la Fritz!Box no reconoce aparecen en el historial sin nombre. Con el botón «+» que hay junto a ellas, puedes añadirlas como contacto en la Fritz!Box; a partir de ese momento, el teléfono mostrará el nombre y el dongle dejará de consultar a PhoneBlock sobre ese número.",
  "status.phonebook.current": "Los nuevos contactos se guardan en «{name}».",
  "status.phonebook.unset": "Aún no se ha establecido; se solicitará al crearlo por primera vez.",
  "status.phonebook.change": "Modificar",
  "status.phonebook.unavailable": "No disponible — solo se puede utilizar con la configuración de Fritz!Box.",
  "status.phonebook.saved": "Guardado.",
  "pb.dialog.title": "Crear un contacto en el Fritz!Box",
  "pb.dialog.intro": "La próxima vez que llames, el teléfono mostrará el nombre en lugar del número. El contacto permanecerá en tu Fritz!Box; no se transferirá a PhoneBlock.",
  "pb.dialog.name": "Nombre",
  "pb.dialog.type": "Tipo de número",
  "pb.dialog.type.home": "Particular",
  "pb.dialog.type.mobile": "Móvil",
  "pb.dialog.type.work": "Por motivos de trabajo",
  "pb.dialog.type.fax_home": "Fax particular",
  "pb.dialog.type.fax_work": "Fax de la empresa",
  "pb.dialog.vip": "Persona importante (VIP)",
  "pb.dialog.book": "Agenda telefónica",
  "pb.dialog.book.readonly": "{name} (sincronizado — no se puede escribir)",
  "pb.dialog.pick": "¿En qué agenda se debe guardar el contacto?",
  "pb.dialog.none_writable": "No se ha encontrado ninguna agenda en la que se pueda escribir.",
  "pb.dialog.save": "Crear",
  "pb.dialog.cancel": "Cancelar",
  "pb.dialog.working": "Se está creando…",
  "pb.dialog.done": "Se ha creado un contacto.",
  "pb.dialog.error.name": "Introduce un nombre, por favor.",
  "pb.dialog.error.number": "Este número no se puede guardar como contacto.",
  "pb.dialog.error.not_writable": "Esta agenda está sincronizada y no se puede escribir en ella. Por favor, elige otra.",
  "pb.dialog.error.no_fritzbox": "Solo es posible con la configuración de Fritz!Box.",
  "pb.dialog.error.unreachable": "El Fritz!Box no responde.",
  "pb.dialog.error.generic": "Error: {msg}",
  "status.calls.add_contact.help": "Añadir la persona que llama como contacto en la agenda de la Fritz!Box",
  "status.calls.report_spam": "Correo basura",
  "status.calls.report_spam.help": "Denunciar este número como spam en PhoneBlock",
  "status.calls.whitelist": "Lista blanca",
  "status.calls.whitelist.help": "Dejar de bloquear este número",
  "whitelist.dialog.title": "Añadir un número a la lista blanca",
  "whitelist.dialog.intro": "Las llamadas procedentes de este número ya no se bloquearán. Al hacerlo, consideras que el número es legítimo en PhoneBlock; esta valoración se asociará a tu cuenta.",
  "whitelist.dialog.submit": "Dejar de bloquear",
  "whitelist.dialog.working": "Se está transmitiendo…",
  "whitelist.dialog.done": "Ya está hecho: el número está en tu lista blanca.",
  "spam.dialog.title": "Denunciar este número como spam",
  "spam.dialog.intro": "Tu valoración es importante para todos los usuarios de PhoneBlock y se asignará a tu cuenta. No se puede anular a través del dongle; solo se puede hacer en phoneblock.net.",
  "spam.dialog.rating": "Tipo de llamada",
  "spam.dialog.rating.B_MISSED": "Desconocido",
  "spam.dialog.rating.C_PING": "Llamada Ping",
  "spam.dialog.rating.D_POLL": "Encuesta",
  "spam.dialog.rating.E_ADVERTISING": "Publicidad",
  "spam.dialog.rating.F_GAMBLE": "Sorteo",
  "spam.dialog.rating.G_FRAUD": "Estafa",
  "spam.dialog.submit": "Notificar",
  "spam.dialog.working": "Se va a notificar…",
  "spam.dialog.done": "Gracias — Se ha enviado la valoración.",
  "spam.dialog.error.no_token": "Para valorar es necesario tener una cuenta de PhoneBlock.",
  "pb.dialog.error.moved": "La agenda seleccionada ya no existe. Selecciona otra.",
  "spam.dialog.comment": "Motivo",
  "spam.dialog.comment.hint": "(opcional, será visible públicamente)",
  "spam.dialog.error.is_contact": "Esta persona figura en tu agenda. Una entrada de la agenda siempre tiene prioridad en el dongle, por lo que en este caso no es posible recibir un aviso de spam.",
  "status.rec.enable": "Grabar conversaciones en modo de diálogo",
  "status.rec.help": "El dongle graba las conversaciones que mantiene con los autores de llamadas spam en el modo de diálogo: ambas partes, con una duración máxima de {min} minutos por llamada. Puedes reproducirlas, descargarlas y borrarlas desde el historial de llamadas; si se elimina una llamada del historial, se borra su grabación.",
  "status.rec.legal": "La grabación de las conversaciones telefónicas es responsabilidad tuya (art. 201 del Código Penal alemán, RGPD).",
  "status.rec.usage": "{count} archivos, {used} de {cap} MB ocupados.",
  "status.rec.play": "Reproducir grabación",
  "status.rec.stop": "Pausar la reproducción",
  "status.rec.download": "Descargar la grabación (WAV)",
  "status.rec.delete": "Borrar grabación",
  "status.rec.delete.confirm": "¿Quieres borrar esta grabación? La llamada seguirá apareciendo en la lista.",
  "status.rec.failed": "No se ha podido cargar la grabación.",
  "status.dialog.vad_min_silence_ms.help": "Este es el tiempo que debe permanecer en silencio la persona que llama antes de que el dongle responda. Valor predeterminado: 500."
}
