i18n: strings the desktop client needed, and its screenshots
The dictionaries here are the single source both clients read: the desktop
copies src/i18n/generated.js byte for byte, so a key added on either side is
available to the other.
* desktop.* — sentences only the desktop says. It has no QR display and no
browser to grant permissions, so its copy differs where the browser's would
mislead: "allow the microphone in system settings", not "for this site".
* msg.after5s and the rest of the disappearing-message timers, which this
client renders from hardcoded English today and can now translate too.
* secLevel.HIGH / MEDIUM / LOW, which the security panel needed and the
dictionary only had MAXIMUM for.
All of it translated into the full thirteen. Nothing here changes what this site
renders — the web client does not reference the new keys yet.
assets/screenshots/desktop-*.png are captures of the desktop client at 1.0.0,
for its Flathub listing. A reviewer opens each URL, so they have to be served
from this domain rather than from a code host.
This commit is contained in:
+76
-1
@@ -806,6 +806,81 @@
|
||||
"groupCall.speaking": "{name} está hablando",
|
||||
"groupCall.pin": "Ver a {name} en grande",
|
||||
"groupCall.unpin": "Volver a todos",
|
||||
"groupCall.showEveryone": "Todos"
|
||||
"groupCall.showEveryone": "Todos",
|
||||
"msg.after5s": "5 s tras leerse",
|
||||
"msg.after15s": "15 s tras leerse",
|
||||
"msg.after30s": "30 s tras leerse",
|
||||
"msg.after1m": "1 min tras leerse",
|
||||
"msg.sec30": "30 segundos",
|
||||
"msg.min5": "5 minutos",
|
||||
"msg.hour1": "1 hora",
|
||||
"desktop.shareDesc": "Envía el código a tu par. Es de un solo uso y caduca pronto.",
|
||||
"desktop.invitationCreated": "Invitación segura creada: envíasela a tu par.",
|
||||
"desktop.joinDesc": "Pega el código de invitación de tu par para construir tu respuesta segura.",
|
||||
"desktop.offerTag": "invitación · copiar texto",
|
||||
"desktop.answerTag": "respuesta · copiar texto",
|
||||
"desktop.offerPlaceholder": "El código de invitación aparecerá aquí…",
|
||||
"desktop.answerPlaceholder": "El código de respuesta aparecerá aquí…",
|
||||
"desktop.backToChats": "Volver a los chats",
|
||||
"desktop.sendFeedback": "Enviar comentarios",
|
||||
"desktop.callsNeedVerified": "Las llamadas requieren un canal seguro verificado.",
|
||||
"desktop.noOpenChannel": "No hay ningún canal seguro abierto.",
|
||||
"desktop.chatCarriesCall": "Este chat está transportando una llamada de grupo. Sal de la llamada de grupo antes de iniciar una llamada 1:1.",
|
||||
"desktop.err.permission_denied": "La llamada no pudo iniciarse: el acceso al micrófono y la cámara está bloqueado. Permítelo en los ajustes del sistema e inténtalo de nuevo.",
|
||||
"desktop.language": "Idioma",
|
||||
"desktop.languageHint": "Se aplica al instante. Los mensajes ya enviados conservan sus palabras.",
|
||||
"desktop.compareCode": "Compara el código de verificación con tu par y confírmalo si coincide.",
|
||||
"desktop.verifyBeforeFiles": "Completa la verificación antes de enviar archivos.",
|
||||
"desktop.verifyBeforeSending": "Completa la verificación antes de enviar mensajes.",
|
||||
"desktop.disconnectedByBackend": "Conexión cerrada de forma segura.",
|
||||
"desktop.restoreFailed": "No se pudo restablecer la conexión. Cerrando este chat.",
|
||||
"desktop.channelNotReady": "El canal de datos aún no está disponible. Espera a que se establezca la conexión.",
|
||||
"desktop.enterCode": "Introduce el código de verificación para confirmar.",
|
||||
"desktop.noOffer": "No se encontró ninguna invitación. Crea una primero.",
|
||||
"desktop.notInitiator": "No creaste esta conexión, así que no hay ninguna respuesta que aplicar.",
|
||||
"desktop.decryptFailed": "No se pudo descifrar un mensaje y se descartó.",
|
||||
"desktop.badMessageFormat": "Llegó una trama con formato incorrecto y se descartó.",
|
||||
"desktop.notSentNotReady": "Mensaje no enviado: el canal seguro no está listo. Espera a que termine la verificación o vuelve a conectarte.",
|
||||
"desktop.micDenied": "Se denegó el acceso al micrófono.",
|
||||
"desktop.noChannelWait": "No hay canal seguro abierto: espera a que se establezca la conexión.",
|
||||
"desktop.sasFailed": "La verificación falló. Puede haber alguien en medio, así que se abortó la conexión.",
|
||||
"desktop.sasOk": "Verificación correcta. Este canal está autenticado de extremo a extremo.",
|
||||
"desktop.iceForgotten": "Servidores guardados olvidados. Se usarán servidores ICE públicos.",
|
||||
"desktop.icePublic": "Se usarán servidores ICE públicos.",
|
||||
"desktop.verificationInProgress": "La verificación de seguridad sigue en curso. Espera a que termine.",
|
||||
"desktop.fileGone": "Este archivo ya no está disponible para descargar.",
|
||||
"desktop.codeMismatch": "Los códigos de verificación no coinciden. Desconectando por seguridad.",
|
||||
"desktop.noLocalCode": "Verificación fallida: no hay código derivado localmente con el que comparar. Desconectando por seguridad.",
|
||||
"desktop.protocolViolation": "El par afirmó que el código estaba confirmado antes de que tú lo confirmaras. Desconectando por seguridad.",
|
||||
"desktop.verificationRejected": "Verificación rechazada. La conexión se abortó por seguridad.",
|
||||
"secLevel.HIGH": "ALTO",
|
||||
"secLevel.MEDIUM": "MEDIO",
|
||||
"secLevel.LOW": "BAJO",
|
||||
"desktop.rerun": "Volver a ejecutar",
|
||||
"desktop.ice.customDesc": "Hasta {max} servidores, una URL por línea o JSON.",
|
||||
"desktop.ice.persistDesc": "Guardado localmente en este dispositivo. Déjalo desactivado para usarlo solo en esta sesión.",
|
||||
"desktop.group.leaveNote": "Se avisa a los demás miembros de que te has ido. Después no queda nada de este grupo en este dispositivo: ningún servidor guarda una copia desde la que volver, así que necesitarías una invitación nueva.",
|
||||
"desktop.sec.ecdsaOk": "Firma del paquete de claves del par verificada durante el saludo (ECDSA P-384 / SHA-384)",
|
||||
"desktop.sec.ecdsaNone": "No hay un saludo completado",
|
||||
"desktop.sec.ecdhOk": "Claves de sesión derivadas de un intercambio ECDH P-384 efímero mediante HKDF-SHA-256",
|
||||
"desktop.sec.ecdhNone": "No se derivaron claves de sesión",
|
||||
"desktop.sec.encryptionOk": "Cifrado y descifrado AES-GCM verificados en el núcleo",
|
||||
"desktop.sec.encryptionNa": "No se pudo ejecutar la autocomprobación de AES-GCM",
|
||||
"desktop.sec.integrityOk": "Integridad de los mensajes verificada (autenticación AES-GCM)",
|
||||
"desktop.sec.integrityNa": "No se pudo ejecutar la autocomprobación de integridad",
|
||||
"desktop.sec.pfsOk": "Double Ratchet activo: cada mensaje tiene su propia clave",
|
||||
"desktop.sec.pfsNa": "No medido",
|
||||
"desktop.sec.replayOk": "Las claves de mensaje del ratchet se destruyen al usarse, así que una trama capturada no puede reproducirse",
|
||||
"desktop.sec.replayNa": "No medido",
|
||||
"desktop.sec.dtlsPinned": "Huella DTLS del par fijada: {fp}",
|
||||
"desktop.sec.dtlsNone": "No hay huella DTLS remota disponible",
|
||||
"desktop.sec.sasBoth": "Ambos pares confirmaron el código de seguridad fuera de banda",
|
||||
"desktop.sec.sasIncomplete": "El código de seguridad no ha sido confirmado por ambos pares",
|
||||
"desktop.sec.metadataOk": "Se derivó una clave de metadatos dedicada (HKDF metadata-protection-v4)",
|
||||
"desktop.sec.metadataNone": "Sin clave de metadatos",
|
||||
"desktop.sec.coverOn": "Tráfico de cobertura activo: tramas falsas aleatorias (32-128 B cada 15-30 s) en el canal con ratchet",
|
||||
"desktop.sec.coverOff": "El generador de tráfico de cobertura no está en marcha",
|
||||
"desktop.sec.coverUnsupported": "El tráfico de cobertura requiere una sesión Double Ratchet (el par usa una versión anterior)",
|
||||
"desktop.tagline": "Libertad de extremo a extremo"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user