);
+ });
+
+ const summary = _t('%(senderName)s changed the addresses of this room.', {senderName});
+ return
+ {changes}
+ ;
+ }
+
+ // return ;
+ }
+}
diff --git a/src/components/views/rooms/EventTile.js b/src/components/views/rooms/EventTile.js
index 647b8a0f5d..10f0b85936 100644
--- a/src/components/views/rooms/EventTile.js
+++ b/src/components/views/rooms/EventTile.js
@@ -33,7 +33,7 @@ var ObjectUtils = require('../../../ObjectUtils');
var eventTileTypes = {
'm.room.message': 'messages.MessageEvent',
- 'm.room.aliases': 'messages.TextualEvent',
+ 'm.room.aliases': 'messages.RoomAliasesEvent',
'm.room.member' : 'messages.TextualEvent',
'm.call.invite' : 'messages.TextualEvent',
'm.call.answer' : 'messages.TextualEvent',
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index de0b8e9ebb..5ee29b6314 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -853,5 +853,10 @@
"%(widgetName)s widget added by %(senderName)s": "%(widgetName)s widget added by %(senderName)s",
"%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s widget removed by %(senderName)s",
"%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s widget modified by %(senderName)s",
- "Robot check is currently unavailable on desktop - please use a web browser": "Robot check is currently unavailable on desktop - please use a web browser"
+ "Robot check is currently unavailable on desktop - please use a web browser": "Robot check is currently unavailable on desktop - please use a web browser",
+ "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|one": "%(senderName)s added %(addedAddresses)s as an address for this room.",
+ "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|other": "%(senderName)s added %(addedAddresses)s as addresses for this room.",
+ "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|one": "%(senderName)s removed %(removedAddresses)s as an address for this room.",
+ "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|other": "%(senderName)s removed %(removedAddresses)s as addresses for this room.",
+ "%(senderName)s changed the addresses of this room.": "%(senderName)s changed the addresses of this room."
}
From 923de17b91affb2750f76d8e29c62472e2e58916 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Tue, 24 Jul 2018 16:10:46 +0100
Subject: [PATCH 03/98] allow passing initial is_url like hs_url in query
params
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
src/components/structures/MatrixChat.js | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js
index e0bbf50d5a..2a6de91c80 100644
--- a/src/components/structures/MatrixChat.js
+++ b/src/components/structures/MatrixChat.js
@@ -282,6 +282,14 @@ export default React.createClass({
register_hs_url: paramHs,
});
}
+ // Set a default IS with query param `is_url`
+ const paramIs = this.props.startingFragmentQueryParams.is_url;
+ if (paramIs) {
+ console.log('Setting register_is_url ', paramIs);
+ this.setState({
+ register_is_url: paramIs,
+ });
+ }
// a thing to call showScreen with once login completes. this is kept
// outside this.state because updating it should never trigger a
From 596bb5ffc7d8a102c33d048abc9b458a3ae90743 Mon Sep 17 00:00:00 2001
From: Milena Brum
Date: Fri, 7 Sep 2018 17:08:15 +0000
Subject: [PATCH 04/98] Translated using Weblate (Spanish)
Currently translated at 99.6% (1248 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/es/
---
src/i18n/strings/es.json | 122 +++++++++++++++++++--------------------
1 file changed, 61 insertions(+), 61 deletions(-)
diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json
index 24044b5c74..dbc139684c 100644
--- a/src/i18n/strings/es.json
+++ b/src/i18n/strings/es.json
@@ -12,8 +12,8 @@
"Always show message timestamps": "Siempre mostrar la hora del mensaje",
"Authentication": "Autenticación",
"%(items)s and %(lastItem)s": "%(items)s y %(lastItem)s",
- "and %(count)s others...|other": "y %(count)s otros...",
- "and %(count)s others...|one": "y otro...",
+ "and %(count)s others...|other": "y otros %(count)s...",
+ "and %(count)s others...|one": "y otro más...",
"%(names)s and %(lastPerson)s are typing": "%(names)s y %(lastPerson)s están escribiendo",
"A new password must be entered.": "Debes ingresar una nueva contraseña.",
"%(senderName)s answered the call.": "%(senderName)s contestó la llamada.",
@@ -32,24 +32,24 @@
"Bulk Options": "Opciones masivas",
"Call Timeout": "Tiempo de espera de la llamada",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "No se puede conectar al servidor via HTTP, cuando es necesario un enlace HTTPS en la barra de direcciones de tu navegador. Ya sea usando HTTPS o habilitando los scripts inseguros.",
- "Can't load user settings": "No se puede cargar las configuraciones del usuario",
+ "Can't load user settings": "No se puede cargar los ajustes de usuario",
"Change Password": "Cambiar Contraseña",
- "%(senderName)s changed their profile picture.": "%(senderName)s ha cambiado su foto de perfil.",
+ "%(senderName)s changed their profile picture.": "%(senderName)s cambió su imagen de perfil.",
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s ha cambiado el nivel de acceso de %(powerLevelDiffText)s.",
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s cambió el nombre de la sala a %(roomName)s.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s cambió el tema a \"%(topic)s\".",
"Changes to who can read history will only apply to future messages in this room": "Cambios para quien pueda leer el historial solo serán aplicados a futuros mensajes en la sala",
"Changes your display nickname": "Cambia la visualización de tu apodo",
"Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "El cambio de contraseña restablecerá actualmente todas las claves de cifrado de extremo a extremo de todos los dispositivos, haciendo que el historial de chat cifrado sea ilegible, a menos que primero exporte las claves de la habitación y vuelva a importarlas después. En el futuro esto será mejorado.",
- "Claimed Ed25519 fingerprint key": "Clave Ed25519 es necesaria",
+ "Claimed Ed25519 fingerprint key": "Clave de huella digital Ed25519 reclamada",
"Clear Cache and Reload": "Borrar Caché y Recargar",
"Clear Cache": "Borrar Caché",
"Click here to fix": "Haz clic aquí para arreglar",
- "Click to mute audio": "Haz clic para silenciar audio",
- "Click to mute video": "Haz clic para silenciar video",
+ "Click to mute audio": "Haz clic para silenciar el audio",
+ "Click to mute video": "Haz clic para silenciar el vídeo",
"click to reveal": "Haz clic para ver",
- "Click to unmute video": "Haz clic para activar sonido del video",
- "Click to unmute audio": "Haz clic para activar sonido de audio",
+ "Click to unmute video": "Haz clic para dejar de silenciar el vídeo",
+ "Click to unmute audio": "Haz clic para dejar de silenciar el audio",
"Command error": "Error de comando",
"Commands": "Comandos",
"Conference call failed.": "La llamada de conferencia falló.",
@@ -61,7 +61,7 @@
"Continue": "Continuar",
"Could not connect to the integration server": "No se pudo conectar al servidor de integración",
"Create an account": "Crear una cuenta",
- "Create Room": "Crear una sala",
+ "Create Room": "Crear Sala",
"Cryptography": "Criptografía",
"Current password": "Clave actual",
"Curve25519 identity key": "Clave de identidad Curve25519",
@@ -83,7 +83,7 @@
"Don't send typing notifications": "No enviar notificaciones cuando se escribe",
"Download %(text)s": "Descargar %(text)s",
"Drop here to tag %(section)s": "Suelta aquí para etiquetar %(section)s",
- "Ed25519 fingerprint": "Clave de cifrado Ed25519",
+ "Ed25519 fingerprint": "Huella digital Ed25519",
"Email": "Correo electrónico",
"Email address": "Dirección de correo electrónico",
"Email, name or matrix ID": "Correo electrónico, nombre o Matrix ID",
@@ -108,24 +108,24 @@
"Failed to kick": "Falló al expulsar",
"Failed to leave room": "No se pudo salir de la sala",
"Failed to load timeline position": "Falló al cargar el historico",
- "Failed to mute user": "Falló al silenciar el usuario",
+ "Failed to mute user": "No se pudo silenciar al usuario",
"Failed to reject invite": "Falló al rechazar invitación",
"Failed to reject invitation": "Falló al rechazar la invitación",
- "Failed to save settings": "Falló al guardar la configuración",
+ "Failed to save settings": "No se pudieron guardar los ajustes",
"Failed to send email": "Falló al enviar el correo",
"Failed to send request.": "Falló al enviar la solicitud.",
"Failed to set avatar.": "Falló al establecer el avatar.",
"Failed to set display name": "Falló al establecer el nombre a mostrar",
"Failed to set up conference call": "Falló al configurar la llamada en conferencia",
"Failed to toggle moderator status": "Falló al cambiar estatus de moderador",
- "Failed to unban": "Falló al desbloquear",
+ "Failed to unban": "No se pudo quitar veto",
"Failed to upload file": "Error en el envío del fichero",
"Failed to verify email address: make sure you clicked the link in the email": "No se pudo verificar la dirección de correo electrónico: asegúrate de hacer clic en el enlace del correo electrónico",
- "Failure to create room": "Fallo al crear la sala",
- "Favourite": "Favorito",
+ "Failure to create room": "No se pudo crear sala",
+ "Favourite": "Agregar a Favoritos",
"Favourites": "Favoritos",
"Fill screen": "Llenar pantalla",
- "Filter room members": "Filtrar los miembros de la sala",
+ "Filter room members": "Filtrar miembros de la sala",
"Forget room": "Olvidar sala",
"Forgot your password?": "¿Olvidaste tu clave?",
"For security, this session has been signed out. Please sign in again.": "Por seguridad, esta sesión ha sido cerrada. Por favor inicia sesión nuevamente.",
@@ -201,14 +201,14 @@
"Error: Problem communicating with the given homeserver.": "Error: No es posible comunicar con el servidor indicado.",
"Export": "Exportar",
"Failed to fetch avatar URL": "Fallo al obtener la URL del avatar",
- "Failed to upload profile picture!": "¡Fallo al enviar la foto de perfil!",
+ "Failed to upload profile picture!": "¡No se pudo subir la imagen de perfil!",
"Home": "Inicio",
"Import": "Importar",
"Incoming call from %(name)s": "Llamada entrante de %(name)s",
"Incoming video call from %(name)s": "Llamada de vídeo entrante de %(name)s",
"Incoming voice call from %(name)s": "Llamada de voz entrante de %(name)s",
"Incorrect username and/or password.": "Nombre de usuario y/o contraseña incorrectos.",
- "Invited": "Invitado",
+ "Invited": "Invitados",
"Jump to first unread message.": "Ir al primer mensaje no leído.",
"Last seen": "Visto por última vez",
"Level:": "Nivel:",
@@ -220,7 +220,7 @@
"Something went wrong!": "¡Algo ha fallado!",
"Please select the destination room for this message": "Por favor, seleccione la sala destino para este mensaje",
"Create new room": "Crear nueva sala",
- "Start chat": "Comenzar chat",
+ "Start chat": "Iniciar conversación",
"New Password": "Nueva Contraseña",
"Analytics": "Analíticas",
"Options": "Opciones",
@@ -230,7 +230,7 @@
"Confirm passphrase": "Confirmar contraseña",
"Import room keys": "Importar las claves de la sala",
"File to import": "Fichero a importar",
- "You must join the room to see its files": "Debe unirse a la sala para ver los ficheros",
+ "You must join the room to see its files": "Debes unirte a la sala para ver sus archivos",
"Reject all %(invitedRooms)s invites": "Rechazar todas las invitaciones a %(invitedRooms)s",
"Start new chat": "Iniciar nueva conversación",
"Failed to invite": "Fallo en la invitación",
@@ -270,7 +270,7 @@
"Server may be unavailable, overloaded, or you hit a bug.": "El servidor podría estar saturado o desconectado, o encontraste un fallo.",
"Server unavailable, overloaded, or something else went wrong.": "Servidor saturado, desconectado, o alguien ha roto algo.",
"Session ID": "ID de sesión",
- "%(senderName)s set a profile picture.": "%(senderName)s puso una foto de perfil.",
+ "%(senderName)s set a profile picture.": "%(senderName)s estableció una imagen de perfil.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s estableció %(displayName)s como su nombre público.",
"Settings": "Ajustes",
"Show panel": "Mostrar panel",
@@ -282,7 +282,7 @@
"Someone": "Alguien",
"Start a chat": "Iniciar una conversación",
"Start authentication": "Comenzar la identificación",
- "Start Chat": "Comenzar la conversación",
+ "Start Chat": "Iniciar Conversación",
"Submit": "Enviar",
"Success": "Éxito",
"Tagged as: ": "Etiquetado como: ",
@@ -363,16 +363,16 @@
"Remote addresses for this room:": "Dirección remota de esta sala:",
"Remove Contact Information?": "¿Eliminar información del contacto?",
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s eliminó su nombre público (%(oldDisplayName)s).",
- "%(senderName)s removed their profile picture.": "%(senderName)s ha eliminado su foto de perfil.",
+ "%(senderName)s removed their profile picture.": "%(senderName)s eliminó su imagen de perfil.",
"Remove": "Eliminar",
"Remove %(threePid)s?": "¿Eliminar %(threePid)s?",
"%(senderName)s requested a VoIP conference.": "%(senderName)s solicitó una conferencia de vozIP.",
"Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Reiniciar la contraseña también reiniciará las claves de cifrado extremo-a-extremo, haciendo ilegible el historial de las conversaciones, salvo que exporte previamente las claves de sala, y las importe posteriormente. Esto será mejorado en futuras versiones.",
"Results from DuckDuckGo": "Resultados desde DuckDuckGo",
"Return to login screen": "Regresar a la pantalla de inicio de sesión",
- "Riot does not have permission to send you notifications - please check your browser settings": "Riot no tiene permisos para enviarle notificaciones - por favor, revise la configuración del navegador",
+ "Riot does not have permission to send you notifications - please check your browser settings": "Riot no tiene permisos para enviarle notificaciones - por favor, revisa los ajustes de tu navegador",
"Riot was not given permission to send notifications - please try again": "Riot no pudo obtener permisos para enviar notificaciones - por favor, inténtelo de nuevo",
- "riot-web version:": "versión riot-web:",
+ "riot-web version:": "versión de riot-web:",
"Room %(roomId)s not visible": "La sala %(roomId)s no es visible",
"Searches DuckDuckGo for results": "Busca en DuckDuckGo",
"Server may be unavailable or overloaded": "El servidor podría estar saturado o desconectado",
@@ -448,11 +448,11 @@
"Unnamed Room": "Sala sin nombre",
"Unverified": "Sin verificar",
"Uploading %(filename)s and %(count)s others|zero": "Subiendo %(filename)s",
- "Uploading %(filename)s and %(count)s others|one": "Subiendo %(filename)s y %(count)s otros",
- "Uploading %(filename)s and %(count)s others|other": "Subiendo %(filename)s y %(count)s otros",
+ "Uploading %(filename)s and %(count)s others|one": "Subiendo %(filename)s y otros %(count)s",
+ "Uploading %(filename)s and %(count)s others|other": "Subiendo %(filename)s y otros %(count)s",
"Upload avatar": "Subir avatar",
"Upload Failed": "Error al subir",
- "Upload Files": "Subir archivos",
+ "Upload Files": "Subir Archivos",
"Upload file": "Subir archivo",
"Upload new:": "Subir nuevo:",
"Usage": "Uso",
@@ -504,14 +504,14 @@
"To use it, just wait for autocomplete results to load and tab through them.": "Para usar, solo espere a que carguen los resultados de auto-completar y navegue entre ellos.",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s le quitó el veto a %(targetName)s.",
"unencrypted": "no cifrado",
- "Unmute": "desactivar el silencio",
+ "Unmute": "Dejar de silenciar",
"Unrecognised command:": "comando no reconocido:",
"Unrecognised room alias:": "alias de sala no reconocido:",
"%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (nivel de permisos %(powerLevelNumber)s)",
"WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "ADVERTENCIA: VERIFICACIÓN DE CLAVE FALLO\" La clave de firma para %(userId)s y el dispositivo %(deviceId)s es \"%(fprint)s\" la cual no concuerda con la clave provista por \"%(fingerprint)s\". Esto puede significar que sus comunicaciones están siendo interceptadas!",
"You cannot place VoIP calls in this browser.": "No puede realizar llamadas VoIP en este navegador.",
- "You do not have permission to post to this room": "no tiene permiso para publicar en esta sala",
- "You have been banned from %(roomName)s by %(userName)s.": "Ha sido expulsado de %(roomName)s por %(userName)s.",
+ "You do not have permission to post to this room": "No tienes permiso para publicar en esta sala",
+ "You have been banned from %(roomName)s by %(userName)s.": "Has sido vetado de %(roomName)s por %(userName)s.",
"You have been invited to join this room by %(inviterName)s": "Ha sido invitado por %(inviterName)s a unirte a esta sala",
"You have been kicked from %(roomName)s by %(userName)s.": "Ha sido removido de %(roomName)s por %(userName)s.",
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Se ha cerrado sesión en todos tus dispositivos y ya no recibirás notificaciones push. Para volver a habilitar las notificaciones, vuelve a iniciar sesión en cada dispositivo",
@@ -529,7 +529,7 @@
"You seem to be in a call, are you sure you want to quit?": "Parece estar en medio de una llamada, ¿esta seguro que desea salir?",
"You seem to be uploading files, are you sure you want to quit?": "Parece estar cargando archivos, ¿esta seguro que desea salir?",
"You should not yet trust it to secure data": "Aún no deberías confiar en él para proteger tus datos",
- "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "No podrá revertir este cambio ya que esta promoviendo al usuario para tener el mismo nivel de autoridad que usted.",
+ "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "No podrás deshacer este cambio porque estás promoviendo al usuario para tener el mismo nivel de autoridad que tú.",
"Your home server does not support device management.": "Tu servidor doméstico no suporta la gestión de dispositivos.",
"Sun": "Dom",
"Mon": "Lun",
@@ -581,13 +581,13 @@
"I understand the risks and wish to continue": "Entiendo los riesgos y deseo continuar",
"Couldn't load home page": "No se puede cargar la página principal",
"Send Account Data": "Enviar Datos de la Cuenta",
- "Advanced notification settings": "Configuración avanzada de notificaciones",
+ "Advanced notification settings": "Ajustes avanzados de notificaciones",
"Uploading report": "Enviando informe",
"Sunday": "Domingo",
"Guests can join": "Los invitados se pueden unir",
"Failed to add tag %(tagName)s to room": "Error al añadir la etiqueta %(tagName)s a la sala",
"Notification targets": "Objetivos de notificación",
- "Failed to set direct chat tag": "Error al establecer la etiqueta de chat directo",
+ "Failed to set direct chat tag": "Error al establecer la etiqueta de conversación directa",
"Today": "Hoy",
"Files": "Archivos",
"You are not receiving desktop notifications": "No estás recibiendo notificaciones de escritorio",
@@ -660,8 +660,8 @@
"Explore Account Data": "Explorar Datos de la Cuenta",
"Remove from Directory": "Eliminar del Directorio",
"Saturday": "Sábado",
- "Remember, you can always set an email address in user settings if you change your mind.": "Recuerda que si es necesario puedes establecer una dirección de email en las preferencias de usuario.",
- "Direct Chat": "Conversación directa",
+ "Remember, you can always set an email address in user settings if you change your mind.": "Recuerda que si es necesario puedes establecer una dirección de email en los ajustes de usuario.",
+ "Direct Chat": "Conversación Directa",
"The server may be unavailable or overloaded": "El servidor puede estar no disponible o sobrecargado",
"Reject": "Rechazar",
"Failed to set Direct Message status of room": "No se pudo establecer el estado de Mensaje Directo de la sala",
@@ -688,8 +688,8 @@
"Failed to send custom event.": "Ha fallado el envio del evento personalizado.",
"What's new?": "¿Qué hay de nuevo?",
"Notify me for anything else": "Notificarme para cualquier otra cosa",
- "When I'm invited to a room": "Cuando estoy invitado a una sala",
- "Can't update user notification settings": "No se puede actualizar la configuración de notificaciones del usuario",
+ "When I'm invited to a room": "Cuando soy invitado a una sala",
+ "Can't update user notification settings": "No se puede actualizar los ajustes de notificaciones del usuario",
"Notify for all other messages/rooms": "Notificar para todos los demás mensajes/salas",
"Unable to look up room ID from server": "No se puede buscar el ID de la sala desde el servidor",
"Couldn't find a matching Matrix room": "No se encontró una sala Matrix que coincida",
@@ -716,7 +716,7 @@
"Enable audible notifications in web client": "Habilitar notificaciones audibles en el cliente web",
"Off": "Apagado",
"#example": "#ejemplo",
- "Mentions only": "Sólo menciones",
+ "Mentions only": "Solo menciones",
"Failed to remove tag %(tagName)s from room": "Error al eliminar la etiqueta %(tagName)s de la sala",
"Wednesday": "Miércoles",
"You can now return to your account after signing out, and sign in on other devices.": "Ahora puedes regresar a tu cuenta después de cerrar tu sesión, e iniciar sesión en otros dispositivos.",
@@ -725,7 +725,7 @@
"No rooms to show": "No hay salas para mostrar",
"Download this file": "Descargar este archivo",
"Pin Message": "Marcar Mensaje",
- "Failed to change settings": "Error al cambiar la configuración",
+ "Failed to change settings": "Error al cambiar los ajustes",
"View Community": "Ver la comunidad",
"%(count)s Members|one": "%(count)s miembro",
"Developer Tools": "Herramientas de Desarrollo",
@@ -779,7 +779,7 @@
"%(widgetName)s widget added by %(senderName)s": "el widget %(widgetName)s fue agregado por %(senderName)s",
"%(widgetName)s widget removed by %(senderName)s": "el %(widgetName)s fue eliminado por %(senderName)s",
"%(names)s and %(count)s others are typing|other": "%(names)s y otros %(count)s están escribiendo",
- "%(names)s and %(count)s others are typing|one": "%(names)s y uno más están escribiendo",
+ "%(names)s and %(count)s others are typing|one": "%(names)s y otro más están escribiendo",
"Your browser does not support the required cryptography extensions": "Su navegador no soporta las extensiones de criptografía requeridas",
"Not a valid Riot keyfile": "No es un archivo de claves de Riot válido",
"Message Pinning": "Mensajes con chincheta",
@@ -799,7 +799,7 @@
"Enable URL previews for this room (only affects you)": "Activar vista previa de URL en esta sala (sólo le afecta a ud.)",
"Enable URL previews by default for participants in this room": "Activar vista previa de URL por defecto para los participantes en esta sala",
"Enable widget screenshots on supported widgets": "Activar capturas de pantalla de widget en los widgets soportados",
- "Show empty room list headings": "Mostrar encabezados de listas de sala vacíos",
+ "Show empty room list headings": "Mostrar lista de títulos de salas vacías",
"Delete %(count)s devices|other": "Eliminar %(count)s dispositivos",
"Delete %(count)s devices|one": "Eliminar dispositivo",
"Select devices": "Seleccionar dispositivos",
@@ -819,7 +819,7 @@
"Encrypted, not sent": "Cifrado, no enviado",
"Disinvite this user?": "¿Dejar de invitar a este usuario?",
"Kick this user?": "¿Echar a este usuario?",
- "Unban this user?": "¿Dejar de bloquear a este usuario?",
+ "Unban this user?": "¿Quitarle el veto a este usuario?",
"Ban this user?": "¿Vetar a este usuario?",
"Demote yourself?": "¿Degradarse a ud mismo?",
"You will not be able to undo this change as you are demoting yourself, if you are the last privileged user in the room it will be impossible to regain privileges.": "No podrá deshacer este cambio ya que está degradándose a usted mismo, si es el usuario con menos privilegios de la sala le resultará imposible recuperarlos.",
@@ -827,11 +827,11 @@
"Unignore": "Dejar de ignorar",
"Ignore": "Ignorar",
"Jump to read receipt": "Saltar a recibo leído",
- "Mention": "Mención",
+ "Mention": "Mencionar",
"Invite": "Invitar",
"Share Link to User": "Compartir Enlace con Usuario",
"User Options": "Opciones de Usuario",
- "Make Moderator": "Convertir en Moderador",
+ "Make Moderator": "Convertir a Moderador",
"bold": "negrita",
"italic": "cursiva",
"deleted": "eliminado",
@@ -869,12 +869,12 @@
"Remove avatar": "Eliminar avatar",
"Share room": "Compartir sala",
"Drop here to favourite": "Soltar aquí para agregar a favoritos",
- "Drop here to tag direct chat": "Soltar aquí para etiquetar la conversación",
+ "Drop here to tag direct chat": "Soltar aquí para etiquetar la conversación directa",
"Drop here to restore": "Soltar aquí para restaurar",
"Community Invites": "Invitaciones a comunidades",
"You have no historical rooms": "No tienes salas históricas",
"You have been kicked from this room by %(userName)s.": "Ha sido echado de esta sala por %(userName)s.",
- "You have been banned from this room by %(userName)s.": "Ha sido proscrito de esta sala por %(userName)s.",
+ "You have been banned from this room by %(userName)s.": "Has sido vetado de esta sala por %(userName)s.",
"You are trying to access a room.": "Estás intentando acceder a una sala.",
"To change the room's avatar, you must be a": "Para cambiar el avatar de la sala, debe ser un",
"To change the room's name, you must be a": "Para cambiar el nombre de la sala, debe ser un",
@@ -888,7 +888,7 @@
"To invite users into the room, you must be a": "Para cambiar usuarios a la sala, debe ser un",
"To configure the room, you must be a": "Para configurar la sala, debe ser un",
"To kick users, you must be a": "Para echar a usuarios, debe ser un",
- "To ban users, you must be a": "Para proscribir a usuarios, debe ser un",
+ "To ban users, you must be a": "Para vetar usuarios, debes ser un",
"To remove other users' messages, you must be a": "Para eliminar los mensajes de otros usuarios, debe ser un",
"To notify everyone in the room, you must be a": "Para notificar a todos en la sala, debe ser un",
"%(user)s is a %(userRole)s": "%(user)s es un %(userRole)s",
@@ -957,7 +957,7 @@
"Failed to withdraw invitation": "Falló la retirada de la invitación",
"Failed to remove user from community": "Falló la eliminación de este usuario de la comunidad",
"Filter community members": "Filtrar miembros de la comunidad",
- "Flair will appear if enabled in room settings": "La insignia aparecerá si se activa en la configuración de la sala",
+ "Flair will appear if enabled in room settings": "La insignia aparecerá si se activa en los ajustes de sala",
"Flair will not appear": "La insignia no aparecerá",
"Are you sure you want to remove '%(roomName)s' from %(groupId)s?": "¿Seguro que quieres eliminar a '%(roomName)s' de %(groupId)s?",
"Removing a room from the community will also remove it from the community page.": "Al eliminar una sala de la comunidad también se eliminará de su página.",
@@ -1002,8 +1002,8 @@
"%(severalUsers)sjoined and left %(count)s times|one": "%(severalUsers)s se unieron y fueron",
"%(oneUser)sjoined and left %(count)s times|other": "%(oneUser)s se unió y fue %(count)s veces",
"%(oneUser)sjoined and left %(count)s times|one": "%(oneUser)s se unió y fue",
- "%(severalUsers)sleft and rejoined %(count)s times|other": "%(severalUsers)s se fue y volvió a unirse %(count)s veces",
- "%(severalUsers)sleft and rejoined %(count)s times|one": "%(severalUsers)s se fue y volvió a unirse",
+ "%(severalUsers)sleft and rejoined %(count)s times|other": "%(severalUsers)s se fueron y volvieron a unirse %(count)s veces",
+ "%(severalUsers)sleft and rejoined %(count)s times|one": "%(severalUsers)s se fueron y volvieron a unirse",
"%(oneUser)sleft and rejoined %(count)s times|other": "%(oneUser)s se fue y volvió a unirse %(count)s veces",
"%(oneUser)sleft and rejoined %(count)s times|one": "%(oneUser)s se fue y volvió a unirse",
"%(severalUsers)srejected their invitations %(count)s times|other": "%(severalUsers)s rechazó sus invitaciones %(count)s veces",
@@ -1014,11 +1014,11 @@
"%(severalUsers)shad their invitations withdrawn %(count)s times|one": "%(severalUsers)s se les retiraron sus invitaciones",
"%(oneUser)shad their invitation withdrawn %(count)s times|other": "%(oneUser)s se le retiró su invitación %(count)s veces",
"%(oneUser)shad their invitation withdrawn %(count)s times|one": "%(oneUser)s se les retiraron sus invitaciones",
- "were invited %(count)s times|other": "se les invitó %(count)s veces",
- "were invited %(count)s times|one": "se les invitó",
+ "were invited %(count)s times|other": "fueron invitados %(count)s veces",
+ "were invited %(count)s times|one": "fueron invitados",
"was invited %(count)s times|other": "fue invitado %(count)s veces",
"was invited %(count)s times|one": "fue invitado",
- "were banned %(count)s times|other": "fue proscrito %(count)s veces",
+ "were banned %(count)s times|other": "fueron vetados %(count)s veces",
"were banned %(count)s times|one": "fueron vetados",
"was banned %(count)s times|other": "fue vetado %(count)s veces",
"was banned %(count)s times|one": "fue vetado",
@@ -1054,9 +1054,9 @@
"You have entered an invalid address.": "No ha introducido una dirección correcta.",
"Try using one of the following valid address types: %(validTypesList)s.": "Intente usar uno de los tipos de direcciones válidos: %(validTypesList)s.",
"Riot bugs are tracked on GitHub: create a GitHub issue.": "Los fallos de Riot se rastrean en GitHun: crear un suceso en GitHub.",
- "Start chatting": "Comenzar conversación",
- "Click on the button below to start chatting!": "Pulsar en el botón inferior para comenzar a conversar",
- "Start Chatting": "Comenzar Conversación",
+ "Start chatting": "Iniciar conversación",
+ "Click on the button below to start chatting!": "¡Haz clic en el botón a continuación para iniciar una conversación!",
+ "Start Chatting": "Iniciar Conversación",
"Confirm Removal": "Confirmar Eliminación",
"Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "¿Está seguro de querer eliminar (borrar) este evento? Tenga en cuenta que si borra el nombre de una sala o cambia el tema, podría deshacer el cambio.",
"Community IDs cannot be empty.": "Los IDs de comunidad no pueden estar vacíos.",
@@ -1078,7 +1078,7 @@
"Please forget all messages I have sent when my account is deactivated (Warning: this will cause future users to see an incomplete view of conversations)": "Por favor, olvide todos los mensajes enviados cuando se desactive mi cuenta. (Advertencia: esto provocará que los usuarios futuros vean conversaciones incompletas)",
"To continue, please enter your password:": "Para continuar, por favor introduzca su contraseña:",
"password": "contraseña",
- "To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "Para verificar que este dispositivo es de confianza, por favor, contacte con su propietario usando otros medios (e.g. en persona o por llamada telefónica) y pregúnteles si la clave que ven su Configuración de Usuario para este dispositivo concuerda con la inferior:",
+ "To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "Para verificar que este dispositivo es de confianza, por favor, contacte con su propietario usando otros medios (e.g. en persona o por llamada telefónica) y pregúnteles si la clave que ven su Ajustes de Usuario para este dispositivo concuerda con la inferior:",
"If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Si son la misma, presione el botón inferior de verificar. Si no lo son, entonces alguien más está interceptando este dispositivo y probablemente quiera presionar el botón de lista negra en su lugar.",
"You added a new device '%(displayName)s', which is requesting encryption keys.": "Agregó un dispositivo nuevo '%(displayName)s', el cual está solicitando claves de cifrado.",
"Your unverified device '%(displayName)s' is requesting encryption keys.": "Su dispositivo sin verificar '%(displayName)s' está solicitando claves de cifrado.",
@@ -1172,7 +1172,7 @@
"Show devices, send anyway or cancel.": "Mostrar dispositivos, enviar de todos modos o cancelar.",
"You can't send any messages until you review and agree to our terms and conditions.": "No puede enviar ningún mensaje hasta que revise y esté de acuerdo con nuestros términos y condiciones.",
"%(count)s of your messages have not been sent.|one": "No se envió su mensaje.",
- "%(count)s Resend all or cancel all now. You can also select individual messages to resend or cancel.|other": "Reenviar todo o cancelar todo ahora. También puede seleccionar mensajes sueltos o reenviar o cancelar.",
+ "%(count)s Resend all or cancel all now. You can also select individual messages to resend or cancel.|other": "Reenviar todo o cancelar todo ahora. También puedes seleccionar mensajes individuales para reenviar o cancelar.",
"%(count)s Resend all or cancel all now. You can also select individual messages to resend or cancel.|one": "Reenviar mensaje o cancelar mensaje ahora.",
"Connectivity to the server has been lost.": "Se perdió la conexión con el servidor.",
"Sent messages will be stored until your connection has returned.": "Los mensajes enviados se almacenarán hasta que vuelva su conexión.",
@@ -1184,7 +1184,7 @@
"Dark theme": "Tema oscuro",
"Status.im theme": "Tema Status.im",
"Autocomplete Delay (ms):": "Retraso del completado automático (en ms):",
- "Ignored Users": "Usuarios ignorados",
+ "Ignored Users": "Usuarios Ignorados",
"Debug Logs Submission": "Envío de registros para depuración",
"If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "Si ha envíado un error a GitHub, estos registros pueden ayudar a localizar el problema. Contienen información de uso de la aplicación, incluido el nombre de usuario, IDs o alias de las salas o grupos visitados y los nombres de otros usuarios. No contienen mensajes.",
"Riot collects anonymous analytics to allow us to improve the application.": "El programa recopila estadísticas de forma anónima para mejorarlo.",
From d2e31ac95d5b3c50eac21c26752b3f988c7dd72f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?K=C3=A9vin=20C?=
Date: Thu, 6 Sep 2018 19:49:47 +0000
Subject: [PATCH 05/98] Translated using Weblate (French)
Currently translated at 100.0% (1252 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/
---
src/i18n/strings/fr.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json
index 9d950f2ef1..bead91e6dd 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -1269,5 +1269,6 @@
"Error Discarding Session": "Erreur lors du rejet de la session",
"Registration Required": "Enregistrement nécessaire",
"You need to register to do this. Would you like to register now?": "Vous devez vous enregistrer pour faire cela. Voulez-vous créer un compte maintenant ?",
- "Unable to query for supported registration methods": "Impossible de demander les méthodes d'enregistrement prises en charge"
+ "Unable to query for supported registration methods": "Impossible de demander les méthodes d'enregistrement prises en charge",
+ "Unable to connect to Homeserver. Retrying...": "Impossible de se connecter au serveur d'accueil. Reconnexion..."
}
From c5c43173523c67609809ce634f3ba368a7ee3cbd Mon Sep 17 00:00:00 2001
From: Szimszon
Date: Fri, 7 Sep 2018 06:48:22 +0000
Subject: [PATCH 06/98] Translated using Weblate (Hungarian)
Currently translated at 100.0% (1252 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/hu/
---
src/i18n/strings/hu.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json
index a88dc6cc28..1e9e96ffe8 100644
--- a/src/i18n/strings/hu.json
+++ b/src/i18n/strings/hu.json
@@ -1269,5 +1269,6 @@
"Forces the current outbound group session in an encrypted room to be discarded": "A jelenlegi csoport munkamenet törlését kikényszeríti a titkosított szobában",
"Registration Required": "Regisztrációt igényel",
"You need to register to do this. Would you like to register now?": "Hogy ezt megtedd regisztrálnod kell. Szeretnél regisztrálni?",
- "Unable to query for supported registration methods": "A támogatott regisztrációs folyamatok listáját nem sikerült lekérdezni"
+ "Unable to query for supported registration methods": "A támogatott regisztrációs folyamatok listáját nem sikerült lekérdezni",
+ "Unable to connect to Homeserver. Retrying...": "A matrix szerverrel nem lehet felvenni a kapcsolatot. Újrapróbálkozás..."
}
From faa6bd367a6021c2448bb6e8e1174aff556a6399 Mon Sep 17 00:00:00 2001
From: RainSlide
Date: Fri, 7 Sep 2018 19:09:54 +0000
Subject: [PATCH 07/98] Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (1252 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hans/
---
src/i18n/strings/zh_Hans.json | 202 ++++++++++++++++++++--------------
1 file changed, 122 insertions(+), 80 deletions(-)
diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json
index e4de33223a..ccf73c6841 100644
--- a/src/i18n/strings/zh_Hans.json
+++ b/src/i18n/strings/zh_Hans.json
@@ -65,7 +65,7 @@
"For security, this session has been signed out. Please sign in again.": "出于安全考虑,此会话已被注销。请重新登录。.",
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "出于安全考虑,用户注销时会清除浏览器里的端到端加密密钥。如果你想要下次登录 Riot 时能解密过去的聊天记录,请导出你的聊天室密钥。",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s 从 %(fromPowerLevel)s 变为 %(toPowerLevel)s",
- "Guests cannot join this room even if explicitly invited.": "游客不能加入此聊天室,即使有人主动邀请。.",
+ "Guests cannot join this room even if explicitly invited.": "即使有人主动邀请,游客也不能加入此聊天室。",
"Hangup": "挂断",
"Hide read receipts": "隐藏已读回执",
"Hide Text Formatting Toolbar": "隐藏格式工具栏",
@@ -76,7 +76,7 @@
"Import E2E room keys": "导入聊天室端到端加密密钥",
"Incorrect verification code": "验证码错误",
"Interface Language": "界面语言",
- "Invalid alias format": "别名格式错误",
+ "Invalid alias format": "别名格式无效",
"Invalid address format": "地址格式错误",
"Invalid Email Address": "邮箱地址格式错误",
"Invalid file%(extra)s": "非法文件%(extra)s",
@@ -84,7 +84,7 @@
"Return to login screen": "返回登录页面",
"Riot does not have permission to send you notifications - please check your browser settings": "Riot 没有通知发送权限 - 请检查您的浏览器设置",
"Riot was not given permission to send notifications - please try again": "Riot 没有通知发送权限 - 请重试",
- "riot-web version:": "riot-网页版:",
+ "riot-web version:": "riot-web 版本:",
"Room %(roomId)s not visible": "聊天室 %(roomId)s 已隐藏",
"Room Colour": "聊天室颜色",
"Room name (optional)": "聊天室名称 (可选)",
@@ -133,15 +133,15 @@
"Algorithm": "算法",
"Always show message timestamps": "总是显示消息时间戳",
"%(names)s and %(lastPerson)s are typing": "%(names)s 和 %(lastPerson)s 正在输入",
- "A new password must be entered.": "一个新的密码必须被输入。.",
+ "A new password must be entered.": "必须输入新密码。",
"%(senderName)s answered the call.": "%(senderName)s 接了通话。.",
- "An error has occurred.": "一个错误出现了。",
+ "An error has occurred.": "发生了一个错误。",
"Attachment": "附件",
"Autoplay GIFs and videos": "自动播放 GIF 与视频",
"%(senderName)s banned %(targetName)s.": "%(senderName)s 封禁了 %(targetName)s.",
"Ban": "封禁",
"Banned users": "被封禁的用户",
- "Click here to fix": "点击这里修复",
+ "Click here to fix": "点击这里以修复",
"Confirm password": "确认密码",
"Confirm your new password": "确认你的新密码",
"Continue": "继续",
@@ -153,7 +153,7 @@
"%(senderName)s kicked %(targetName)s.": "%(senderName)s 把 %(targetName)s 踢出了聊天室。.",
"Leave room": "退出聊天室",
"New password": "新密码",
- "Add a topic": "添加一个主题",
+ "Add a topic": "添加主题",
"Admin": "管理员",
"Admin Tools": "管理工具",
"VoIP": "IP 电话",
@@ -167,7 +167,7 @@
"Camera": "摄像头",
"Hide removed messages": "隐藏被删除的消息",
"Authentication": "认证",
- "Alias (optional)": "别名 (可选)",
+ "Alias (optional)": "别名(可选)",
"%(items)s and %(lastItem)s": "%(items)s 和 %(lastItem)s",
"and %(count)s others...|other": "和其它 %(count)s 个...",
"and %(count)s others...|one": "和其它一个...",
@@ -180,7 +180,7 @@
"Are you sure you want to upload the following files?": "你确定要上传这些文件吗?",
"Bans user with given id": "按照 ID 封禁指定的用户",
"Blacklisted": "已拉黑",
- "Bulk Options": "批量操作",
+ "Bulk Options": "批量选项",
"Call Timeout": "通话超时",
"Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "无法连接主服务器 - 请检查网络连接,确保你的主服务器 SSL 证书被信任,且没有浏览器插件拦截请求。",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "当浏览器地址栏里有 HTTPS 的 URL 时,不能使用 HTTP 连接主服务器。请使用 HTTPS 或者允许不安全的脚本。",
@@ -214,7 +214,7 @@
"Custom": "自定义",
"Custom level": "自定义级别",
"Decline": "拒绝",
- "Device already verified!": "设备已经验证!",
+ "Device already verified!": "设备已验证!",
"Device ID:": "设备 ID:",
"device id: ": "设备 ID: ",
"Device key:": "设备密钥 :",
@@ -231,7 +231,7 @@
"Export": "导出",
"Failed to fetch avatar URL": "获取 Avatar URL 失败",
"Failed to upload profile picture!": "头像上传失败!",
- "Guest access is disabled on this Home Server.": "此服务器禁用了游客访问。",
+ "Guest access is disabled on this Home Server.": "此服务器已禁止游客访问。",
"Home": "主页面",
"Import": "导入",
"Incoming call from %(name)s": "来自 %(name)s 的通话",
@@ -242,8 +242,8 @@
"Invited": "已邀请",
"Invites": "邀请",
"Invites user with given id to current room": "按照 ID 邀请指定用户加入当前聊天室",
- "'%(alias)s' is not a valid format for an address": "'%(alias)s' 不是一个合法的邮箱地址格式",
- "'%(alias)s' is not a valid format for an alias": "'%(alias)s' 不是一个合法的昵称格式",
+ "'%(alias)s' is not a valid format for an address": "'%(alias)s' 不符合电子邮箱地址的格式",
+ "'%(alias)s' is not a valid format for an alias": "'%(alias)s' 不符合别名的格式",
"%(displayName)s is typing": "%(displayName)s 正在输入",
"Sign in with": "第三方登录",
"Message not sent due to unknown devices being present": "消息未发送,因为有未知的设备存在",
@@ -289,7 +289,7 @@
"Could not connect to the integration server": "无法连接关联的服务器",
"Curve25519 identity key": "Curve25519 认证密钥",
"Edit": "编辑",
- "Joins room with given alias": "以指定的别名加入聊天室",
+ "Joins room with given alias": "通过指定的别名加入聊天室",
"Labs": "实验室",
"%(targetName)s left the room.": "%(targetName)s 退出了聊天室。",
"Logged in as:": "登录为:",
@@ -315,14 +315,14 @@
"Verified": "已验证",
"Verified key": "已验证的密钥",
"Video call": "视频通话",
- "Voice call": "音频通话",
+ "Voice call": "语音通话",
"VoIP conference finished.": "VoIP 会议结束。",
"VoIP conference started.": "VoIP 会议开始。",
"VoIP is unsupported": "不支持 VoIP",
"Warning!": "警告!",
"You must register to use this functionality": "你必须 注册 以使用此功能",
"You need to be logged in.": "你需要登录。",
- "You need to enter a user name.": "你需要输入一个用户名。",
+ "You need to enter a user name.": "必须输入用户名。",
"Your password has been reset": "你的密码已被重置",
"Topic": "主题",
"Make Moderator": "使成为主持人",
@@ -381,22 +381,22 @@
"Example": "例子",
"Create": "创建",
"Failed to upload image": "上传图像失败",
- "Add a widget": "添加一个小挂件",
+ "Add a widget": "添加小挂件",
"Accept": "接受",
"Access Token:": "访问令牌:",
"Cannot add any more widgets": "无法添加更多小挂件",
"Delete widget": "删除小挂件",
- "Define the power level of a user": "定义一个用户的特权级",
+ "Define the power level of a user": "定义一位用户的滥权等级",
"Drop here to tag %(section)s": "拖拽到这里标记 %(section)s",
"Enable automatic language detection for syntax highlighting": "为语法高亮启用自动检测编程语言",
- "Failed to change power level": "修改特权级别失败",
+ "Failed to change power level": "滥权等级修改失败",
"Kick": "移除",
"Kicks user with given id": "按照 ID 移除特定的用户",
"Last seen": "最近一次上线",
"Level:": "级别:",
"Local addresses for this room:": "此聊天室的本地地址:",
"New passwords must match each other.": "新密码必须互相匹配。",
- "Power level must be positive integer.": "权限级别必须是正整数。",
+ "Power level must be positive integer.": "滥权等级必须是正整数。",
"Reason: %(reasonText)s": "理由: %(reasonText)s",
"Revoke Moderator": "撤销主持人",
"Revoke widget access": "撤回小挂件的访问权",
@@ -409,9 +409,9 @@
"Save": "保存",
"Send anyway": "仍然发送",
"Sets the room topic": "设置聊天室主题",
- "Show Text Formatting Toolbar": "显示文字格式工具栏",
+ "Show Text Formatting Toolbar": "显示文本格式工具栏",
"This room has no local addresses": "此聊天室没有本地地址",
- "This doesn't appear to be a valid email address": "这看起来不是一个合法的邮箱地址",
+ "This doesn't appear to be a valid email address": "这似乎不是有效的邮箱地址",
"This is a preview of this room. Room interactions have been disabled": "这是此聊天室的预览。交互操作已被禁用",
"This phone number is already in use": "此手机号码已被使用",
"This room": "此聊天室",
@@ -439,12 +439,12 @@
"Usage": "用法",
"Who can read history?": "谁可以阅读历史消息?",
"You are not in this room.": "您不在此聊天室中。",
- "You have no visible notifications": "你没有可见的通知",
+ "You have no visible notifications": "没有可见的通知",
"Missing password.": "缺少密码。",
"Passwords don't match.": "密码不匹配。",
- "I already have an account": "我已经有一个帐号",
+ "I already have an account": "我已经有帐号了",
"Unblacklist": "移出黑名单",
- "Not a valid Riot keyfile": "不是一个有效的 Riot 密钥文件",
+ "Not a valid Riot keyfile": "不是有效的 Riot 密钥文件",
"%(targetName)s accepted an invitation.": "%(targetName)s 已接受邀请。",
"Do you want to load widget from URL:": "你是否要从此 URL 中加载小挂件:",
"Hide join/leave messages (invites/kicks/bans unaffected)": "隐藏加入/退出消息(邀请/踢出/封禁不受影响)",
@@ -452,7 +452,7 @@
"Publish this room to the public in %(domain)s's room directory?": "是否将此聊天室发布至 %(domain)s 的聊天室目录中?",
"Manage Integrations": "管理集成",
"No users have specific privileges in this room": "此聊天室中没有用户有特殊权限",
- "%(senderName)s placed a %(callType)s call.": "%(senderName)s 发起了一个 %(callType)s 通话。",
+ "%(senderName)s placed a %(callType)s call.": "%(senderName)s 发起了 %(callType)s 通话。",
"Please check your email and click on the link it contains. Once this is done, click continue.": "请检查你的电子邮箱并点击里面包含的链接。完成时请点击继续。",
"Press to start a chat with someone": "按下 来开始和某个人聊天",
"%(senderName)s removed their profile picture.": "%(senderName)s 移除了他们的头像。",
@@ -462,7 +462,7 @@
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "验证码将发送至 +%(msisdn)s,请输入收到的验证码",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s 接受了 %(displayName)s 的邀请。",
"Active call (%(roomName)s)": "当前通话 (来自聊天室 %(roomName)s)",
- "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s 将级别调整到%(powerLevelDiffText)s 。",
+ "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s 将级别调整至 %(powerLevelDiffText)s 。",
"Changes colour scheme of current room": "修改了样式",
"Deops user with given id": "按照 ID 取消特定用户的管理员权限",
"Join as voice or video.": "通过 语言 或者 视频加入.",
@@ -481,9 +481,9 @@
"%(roomName)s is not accessible at this time.": "%(roomName)s 此时无法访问。",
"Start authentication": "开始认证",
"The maximum permitted number of widgets have already been added to this room.": "此聊天室可拥有的小挂件数量已达到上限。",
- "The phone number entered looks invalid": "输入的手机号码看起来无效",
+ "The phone number entered looks invalid": "此手机号码似乎无效",
"The remote side failed to pick up": "对方未能接听",
- "This Home Server does not support login using email address.": "HS不支持使用邮箱地址登陆。",
+ "This Home Server does not support login using email address.": "此主服务器不支持使用邮箱地址登陆。",
"This invitation was sent to an email address which is not associated with this account:": "此邀请被发送到与此帐户不相关的邮箱地址:",
"This room is not recognised.": "无法识别此聊天室。",
"To get started, please pick a username!": "请点击用户名!",
@@ -500,7 +500,7 @@
"User name": "用户名",
"(no answer)": "(没有回答)",
"(warning: cannot be disabled again!)": "(警告:无法再被禁用!)",
- "WARNING: Device already verified, but keys do NOT MATCH!": "警告:设备已经验证,但密钥不匹配!",
+ "WARNING: Device already verified, but keys do NOT MATCH!": "警告:设备已验证,但密钥不匹配!",
"Who can access this room?": "谁有权访问此聊天室?",
"Who would you like to add to this room?": "你想把谁添加到此聊天室?",
"Who would you like to communicate with?": "你想和谁交流?",
@@ -513,12 +513,12 @@
"You seem to be in a call, are you sure you want to quit?": "您似乎正在进行通话,确定要退出吗?",
"You seem to be uploading files, are you sure you want to quit?": "您似乎正在上传文件,确定要退出吗?",
"You should not yet trust it to secure data": "你不应该相信它来保护你的数据",
- "Upload an avatar:": "上传一个头像:",
- "This doesn't look like a valid email address.": "这看起来不是一个合法的邮箱地址。",
- "This doesn't look like a valid phone number.": "这看起来不是一个合法的手机号码。",
+ "Upload an avatar:": "上传头像:",
+ "This doesn't look like a valid email address.": "这似乎不是有效的邮箱地址。",
+ "This doesn't look like a valid phone number.": "这似乎不是有效的手机号码。",
"User names may only contain letters, numbers, dots, hyphens and underscores.": "用户名只可以包含字母、数字、点、连字号和下划线。",
- "An unknown error occurred.": "一个未知错误出现了。",
- "An error occurred: %(error_string)s": "一个错误出现了: %(error_string)s",
+ "An unknown error occurred.": "发生了一个未知错误。",
+ "An error occurred: %(error_string)s": "发生了一个错误: %(error_string)s",
"Encrypt room": "加密聊天室",
"There are no visible files in this room": "此聊天室中没有可见的文件",
"Active call": "当前通话",
@@ -531,28 +531,28 @@
"Check for update": "检查更新",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s 移除了聊天室头像。",
"Something went wrong!": "出了点问题!",
- "If you already have a Matrix account you can log in instead.": "如果你已经有一个 Matrix 帐号,你可以登录。",
- "Do you want to set an email address?": "你要设置一个邮箱地址吗?",
+ "If you already have a Matrix account you can log in instead.": "若您已经拥有 Matrix 帐号,您也可以 登录。",
+ "Do you want to set an email address?": "您想要设置一个邮箱地址吗?",
"New address (e.g. #foo:%(localDomain)s)": "新的地址(例如 #foo:%(localDomain)s)",
"Upload new:": "上传新的:",
"User ID": "用户 ID",
"Username invalid: %(errMessage)s": "用户名无效: %(errMessage)s",
"Verification Pending": "验证等待中",
"(unknown failure: %(reason)s)": "(未知错误:%(reason)s)",
- "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "警告:密钥验证失败!%(userId)s 和 device %(deviceId)s 的签名密钥是 \"%(fprint)s\",和提供的咪呀 \"%(fingerprint)s\" 不匹配。这可能意味着你的通信正在被窃听!",
+ "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "警告:密钥验证失败!%(userId)s 和 device %(deviceId)s 的签名密钥为 \"%(fprint)s\",与提供的密钥 \"%(fingerprint)s\" 不匹配。这可能意味着你的通信正在被窃听!",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s 收回了 %(targetName)s 的邀请。",
"Would you like to accept or decline this invitation?": "你想要 接受 还是 拒绝 这个邀请?",
"You already have existing direct chats with this user:": "你已经有和此用户的直接聊天:",
- "You're not in any rooms yet! Press to make a room or to browse the directory": "你现在还不再任何聊天室!按下 来创建一个聊天室或者 来浏览目录",
+ "You're not in any rooms yet! Press to make a room or to browse the directory": "您尚未处于任何聊天室中!按下 创建一个聊天室或 来浏览目录",
"You cannot place a call with yourself.": "你怎么寂寞到要和自己打电话,不支持的啦。",
"You have been kicked from %(roomName)s by %(userName)s.": "您已被 %(userName)s 从聊天室 %(roomName)s 中移除。",
- "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "你已经登出了所有的设备并不再接收推送通知。要重新启用通知,请再在每个设备上登录",
+ "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "你已经登出了所有的设备并不再接收推送通知。要重新启用通知,请在每个设备上重新登录",
"You have disabled URL previews by default.": "你已经默认 禁用 链接预览。",
"You have enabled URL previews by default.": "你已经默认 启用 链接预览。",
"Your home server does not support device management.": "你的 home server 不支持设备管理。",
- "Set a display name:": "设置一个昵称:",
+ "Set a display name:": "设置昵称:",
"This server does not support authentication with a phone number.": "此服务器不支持使用手机号码认证。",
- "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "密码过短(最短为 %(MIN_PASSWORD_LENGTH)s)。",
+ "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "密码长度过短(至少应为 %(MIN_PASSWORD_LENGTH)s 位)。",
"Make this room private": "将此聊天室转为私密聊天室",
"Share message history with new users": "和新用户共享消息历史",
"Copied!": "已复制!",
@@ -563,7 +563,7 @@
"Please select the destination room for this message": "请选择此消息的目标聊天室",
"Start automatically after system login": "在系统登录后自动启动",
"Analytics": "统计分析服务",
- "Reject all %(invitedRooms)s invites": "拒绝所有 %(invitedRooms)s 邀请",
+ "Reject all %(invitedRooms)s invites": "拒绝所有 %(invitedRooms)s 的邀请",
"You may wish to login with a different account, or add this email to this account.": "您可能是想要用另一个账户登录,或是将此电子邮件关联至当前账户。",
"Sun": "周日",
"Mon": "周一",
@@ -584,11 +584,11 @@
"Oct": "十月",
"Nov": "十一月",
"Dec": "十二月",
- "Desktop specific": "桌面特有的",
+ "Desktop specific": "桌面版特有功能",
"You must join the room to see its files": "你必须加入聊天室以看到它的文件",
"Failed to invite the following users to the %(roomName)s room:": "邀请以下用户到 %(roomName)s 聊天室失败:",
"Confirm Removal": "确认移除",
- "Verifies a user, device, and pubkey tuple": "验证一个用户、设备和密钥元组",
+ "Verifies a user, device, and pubkey tuple": "验证用户、设备与公钥元组",
"Unknown devices": "未知设备",
"Unknown Address": "未知地址",
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s 删除了他们的昵称 (%(oldDisplayName)s).",
@@ -599,14 +599,14 @@
"Unable to remove contact information": "无法移除联系人信息",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot 收集匿名的分析数据以允许我们改善它。",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" 包含你以前没见过的设备。",
- "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "你可以使用自定义的服务器选项来通过指定一个不同的主服务器 URL 来登录其他 Matrix 服务器。",
+ "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "你可以使用自定义服务器选项并指定一个不同的主服务器 URL 来登录其他的 Matrix 服务器。",
"This allows you to use this app with an existing Matrix account on a different home server.": "这允许你使用其他主服务器上的 Matrix 帐号。",
"Please check your email to continue registration.": "请查看你的电子邮件以继续注册。",
- "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "如果你不指定一个邮箱地址,你将不能重置你的密码。你确定吗?",
+ "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "如果不指定一个邮箱地址,您将无法重置你的密码。你确定吗?",
"Home server URL": "主服务器 URL",
"Identity server URL": "身份认证服务器 URL",
"What does this mean?": "这是什么意思?",
- "Add an Integration": "添加一个集成",
+ "Add an Integration": "添加集成",
"Removed or unknown message type": "被移除或未知的消息类型",
"Ongoing conference call%(supportedText)s.": "正在进行的会议通话 %(supportedText)s.",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s 修改了 %(roomName)s 的头像",
@@ -615,7 +615,7 @@
"Authentication check failed: incorrect password?": "身份验证失败:密码错误?",
"This will allow you to reset your password and receive notifications.": "这将允许你重置你的密码和接收通知。",
"Share without verifying": "不验证就分享",
- "You added a new device '%(displayName)s', which is requesting encryption keys.": "你添加了一个新的设备 '%(displayName)s',它正在请求加密密钥。",
+ "You added a new device '%(displayName)s', which is requesting encryption keys.": "您添加了一个新的设备 '%(displayName)s',它正在请求加密密钥。",
"Your unverified device '%(displayName)s' is requesting encryption keys.": "你的未经验证的设备 '%(displayName)s' 正在请求加密密钥。",
"Encryption key request": "加密密钥请求",
"Autocomplete Delay (ms):": "自动补全延迟(毫秒):",
@@ -634,15 +634,15 @@
"Invite new community members": "邀请新社区成员",
"Invite to Community": "邀请到社区",
"Room name or alias": "聊天室名称或别名",
- "Ignored user": "忽视用户",
+ "Ignored user": "已忽略的用户",
"You are now ignoring %(userId)s": "你正在忽视 %(userId)s",
- "Unignored user": "接触忽视用户",
+ "Unignored user": "未忽略的用户",
"You are no longer ignoring %(userId)s": "你不再忽视 %(userId)s",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s 解除了 %(targetName)s 的封禁。",
"(could not connect media)": "(无法连接媒体)",
"%(senderName)s changed the pinned messages for the room.": "%(senderName)s 更改了聊天室的置顶消息。",
"%(names)s and %(count)s others are typing|other": "%(names)s 和另外 %(count)s 个人正在输入",
- "%(names)s and %(count)s others are typing|one": "%(names)s 和另一个人正在输入",
+ "%(names)s and %(count)s others are typing|one": "%(names)s 与另一个人正在输入",
"Send": "发送",
"Message Pinning": "消息置顶",
"Disable Emoji suggestions while typing": "输入时禁用 Emoji 建议",
@@ -659,8 +659,8 @@
"%(senderName)s sent an image": "%(senderName)s 发送了一张图片",
"%(senderName)s sent a video": "%(senderName)s 发送了一个视频",
"%(senderName)s uploaded a file": "%(senderName)s 上传了一个文件",
- "Unignore": "取消忽视",
- "Ignore": "忽视",
+ "Unignore": "取消忽略",
+ "Ignore": "忽略",
"Jump to read receipt": "跳到阅读回执",
"Mention": "提及",
"Invite": "邀请",
@@ -706,11 +706,11 @@
"%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)s 更换了他们的头像 %(count)s 次",
"%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)s 更换了他们的头像",
"%(items)s and %(count)s others|other": "%(items)s 和其他 %(count)s 人",
- "%(items)s and %(count)s others|one": "%(items)s 和另一个人",
+ "%(items)s and %(count)s others|one": "%(items)s 与另一个",
"collapse": "折叠",
"expand": "展开",
"email address": "邮箱地址",
- "You have entered an invalid address.": "你输入了一个无效地址。",
+ "You have entered an invalid address.": "您输入了无效的地址。",
"Advanced options": "高级选项",
"Leave": "退出",
"Description": "描述",
@@ -718,7 +718,7 @@
"Light theme": "浅色主题",
"Dark theme": "深色主题",
"Status.im theme": "Status.im 主题",
- "Ignored Users": "忽视用户",
+ "Ignored Users": "已忽略的用户",
"Room Notification": "聊天室通知",
"The platform you're on": "您使用的平台是",
"The version of Riot.im": "Riot.im 的版本是",
@@ -734,10 +734,10 @@
"%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(monthName)s %(day)s %(time)s, %(weekDayName)s",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s": "%(fullYear)s %(monthName)s %(day)s, %(weekDayName)s",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(fullYear)s %(monthName)s %(day)s %(time)s, %(weekDayName)s",
- "Who would you like to add to this community?": "你想把谁添加到此社区中?",
+ "Who would you like to add to this community?": "您想把谁添加至此社区中?",
"Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "警告:您添加的一切用户都将会对一切知道此社区的 ID 的人公开",
"Name or matrix ID": "名称或 Matrix ID",
- "Which rooms would you like to add to this community?": "您想把哪个聊天室添加到此社区中?",
+ "Which rooms would you like to add to this community?": "您想把哪个聊天室添加至此社区中?",
"Add rooms to the community": "添加聊天室到社区",
"Add to community": "添加到社区",
"Failed to invite users to community": "邀请用户到社区失败",
@@ -747,7 +747,7 @@
"Kick this user?": "是否移除此用户?",
"Unban this user?": "是否解封此用户?",
"Ban this user?": "是否封禁此用户?",
- "Send an encrypted reply…": "发送加密的回复…",
+ "Send an encrypted reply…": "发送加密回复…",
"Send a reply (unencrypted)…": "发送回复(未加密)…",
"Send an encrypted message…": "发送加密消息…",
"Send a message (unencrypted)…": "发送消息 (未加密)…",
@@ -763,9 +763,9 @@
"To kick users, you must be a": "若要移除用户,您至少要是",
"To ban users, you must be a": "若要封禁用户,您至少要是",
"To remove other users' messages, you must be a": "若要删除其他用户的消息,您至少要是",
- "%(user)s is a %(userRole)s": "%(user)s 是一个 %(userRole)s",
- "To link to a room it must have an address.": "要链接一个聊天室,它必须有一个地址。",
- "To send events of type , you must be a": "要发送类型为 的事件,你必须是",
+ "%(user)s is a %(userRole)s": "%(user)s 是一位 %(userRole)s",
+ "To link to a room it must have an address.": "若要链接聊天室,它必须有一个 地址。",
+ "To send events of type , you must be a": "要发送类型为 的事件,您的级别至少为",
"Members only (since the point in time of selecting this option)": "仅成员(从选中此选项时开始)",
"Members only (since they were invited)": "只有成员(从他们被邀请开始)",
"Members only (since they joined)": "只有成员(从他们加入开始)",
@@ -775,14 +775,14 @@
"Community ID": "社区 ID",
"example": "例子",
"This setting cannot be changed later!": "未来此设置将无法修改!",
- "Add a Room": "添加一个聊天室",
- "Add a User": "添加一个用户",
+ "Add a Room": "添加聊天室",
+ "Add a User": "添加用户",
"Unable to accept invite": "无法接受邀请",
"Unable to reject invite": "无法拒绝邀请",
"Leave Community": "退出社区",
"Community Settings": "社区设置",
"Community %(groupId)s not found": "找不到社区 %(groupId)s",
- "Your Communities": "你的社区",
+ "Your Communities": "我的社区",
"Failed to set direct chat tag": "无法设定私聊标签",
"Failed to remove tag %(tagName)s from room": "移除聊天室标签 %(tagName)s 失败",
"Failed to add tag %(tagName)s to room": "无法为聊天室新增标签 %(tagName)s",
@@ -806,10 +806,10 @@
"Key request sent.": "已发送密钥共享请求。",
"Re-request encryption keys from your other devices.": "从其他设备上 重新请求密钥。",
"You will not be able to undo this change as you are demoting yourself, if you are the last privileged user in the room it will be impossible to regain privileges.": "如果您是房间中最后一位有权限的用户,在您降低自己的权限等级后将无法撤回此修改,因为你将无法重新获得权限。",
- "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "你将无法撤回此修改,因为您正在将此用户的权限提升至和你相同的级别。",
+ "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "您将无法撤回此修改,因为您正在将此用户的滥权等级提升至与你相同。",
"No devices with registered encryption keys": "没有设备有已注册的加密密钥",
"Unmute": "取消静音",
- "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s(权限级别 %(powerLevelNumber)s)",
+ "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s(滥权等级 %(powerLevelNumber)s)",
"Hide Stickers": "隐藏贴图",
"Show Stickers": "显示贴图",
"%(duration)ss": "%(duration)s 秒",
@@ -875,7 +875,7 @@
"%(severalUsers)shad their invitations withdrawn %(count)s times|one": "%(severalUsers)s 撤回了他们的邀请",
"%(oneUser)shad their invitation withdrawn %(count)s times|other": "%(oneUser)s 撤回了他们的邀请共 %(count)s 次",
"%(oneUser)shad their invitation withdrawn %(count)s times|one": "%(oneUser)s 撤回了他们的邀请",
- "Custom of %(powerLevel)s": "",
+ "Custom of %(powerLevel)s": "%(powerLevel)s 的自定义",
"In reply to": "回复给",
"Community IDs cannot be empty.": "社区 ID 不能为空。",
"Community IDs may only contain characters a-z, 0-9, or '=_-./'": "社区 ID 只能包含 a-z、0-9 或 “=_-./” 等字符",
@@ -904,7 +904,7 @@
"In future this verification process will be more sophisticated.": "未来,此验证过程将更为精致、巧妙一些。",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "我们建议您对每台设备进行验证以保证它们属于其合法所有者,但是您可以在不验证它们的情况下重新发送消息。",
"
HTML for your community's page
\n
\n Use the long description to introduce new members to the community, or distribute\n some important links\n
\n",
- "Add rooms to the community summary": "将聊天室添加到社区简介",
+ "Add rooms to the community summary": "将聊天室添加到社区简介中",
"Which rooms would you like to add to this summary?": "您想要将哪个聊天室添加到社区简介?",
"Add to summary": "添加到简介",
"Failed to add the following rooms to the summary of %(groupId)s:": "添加以下聊天室到 %(groupId)s 的简介时失败:",
@@ -917,7 +917,7 @@
"Featured Users:": "核心用户:",
"Join this community": "加入此社区",
"%(inviter)s has invited you to join this community": "%(inviter)s 邀请您加入此社区",
- "Failed to add the following users to the summary of %(groupId)s:": "将下列用户添加到 %(groupId)s 的简介中时失败",
+ "Failed to add the following users to the summary of %(groupId)s:": "将下列用户添加至 %(groupId)s 的简介中时失败:",
"Failed to remove a user from the summary of %(groupId)s": "从 %(groupId)s 的简介中移除用户时失败",
"You are an administrator of this community": "你是此社区的管理员",
"You are a member of this community": "你是此社区的成员",
@@ -931,7 +931,7 @@
"Did you know: you can use communities to filter your Riot.im experience!": "你知道吗:你可以将社区用作过滤器以增强你的 Riot.im 使用体验!",
"Create a new community": "创建新社区",
"Error whilst fetching joined communities": "获取已加入社区列表时出现错误",
- "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "创建社区,将用户与聊天室整合在一起!搭建自定义社区主页以在 Matrix 宇宙之中标记出您的私人空间。",
+ "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "创建社区,将用户与聊天室整合在一起!搭建自定义社区主页以在 Matrix 宇宙之中标出您的私人空间。",
"Show devices, send anyway or cancel.": "显示未信任的设备 、 不经信任直接发送 或 取消发送。",
"%(count)s of your messages have not been sent.|one": "您的消息尚未发送。",
"Uploading %(filename)s and %(count)s others|other": "正在上传 %(filename)s 与其他 %(count)s 个文件",
@@ -939,7 +939,7 @@
"Uploading %(filename)s and %(count)s others|one": "正在上传 %(filename)s 与其他 %(count)s 个文件",
"Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.": "隐私对我们而言重要至极,所以我们不会在分析统计服务中收集任何个人信息或者可用于识别身份的数据。",
"Learn more about how we use analytics.": "进一步了解我们如何使用分析统计服务。",
- "Please note you are logging into the %(hs)s server, not matrix.org.": "请注意,您正在登录的服务器是 %(hs)s,不是 matrix.org。",
+ "Please note you are logging into the %(hs)s server, not matrix.org.": "请注意,您正在登录 %(hs)s,而非 matrix.org。",
"This homeserver doesn't offer any login flows which are supported by this client.": "此主服务器不兼容本客户端支持的任何登录方式。",
"Sign in to get started": "登录以开始使用",
"Unbans user with given id": "按照 ID 解封特定的用户",
@@ -949,10 +949,10 @@
"The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "导出的文件将允许任何可以读取它的人解密任何他们可以看到的加密消息,因此您应该小心以确保其安全。为解决此问题,您应该在下面输入密码以加密导出的数据。只有输入相同的密码才能导入数据。",
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "导出文件有密码保护。你需要在此输入密码以解密此文件。",
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "此操作允许您导入之前从另一个 Matrix 客户端中导出的加密密钥文件。导入完成后,您将能够解密那个客户端可以解密的加密消息。",
- "Ignores a user, hiding their messages from you": "忽略用户,隐藏他们的消息",
+ "Ignores a user, hiding their messages from you": "忽略用户,隐藏他们发送的消息",
"Stops ignoring a user, showing their messages going forward": "解除忽略用户,显示他们的消息",
- "To return to your account in future you need to set a password": "如果你想再次使用账号,您得为它设置一个密码",
- "If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "如果你在 GitHub 提交了一个 bug,调试日志可以帮助我们追踪这个问题。 调试日志包含应用程序使用数据,也就包括您的用户名、您访问的房间或社区的 ID 或名称,以及其他用户的用户名,但不包括聊天记录。",
+ "To return to your account in future you need to set a password": "如果您想再次使用此账号,就必须它设置一个密码",
+ "If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "如果你在 GitHub 提交了一个 bug,调试日志可以帮助我们追踪这个问题。 调试日志包含应用程序使用数据,也就包括您的用户名、您访问的房间或社区的 ID 或别名,以及其他用户的用户名,但不包括聊天记录。",
"Debug Logs Submission": "发送调试日志",
"Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "密码修改成功。在您在其他设备上重新登录之前,其他设备不会收到推送通知",
"Tried to load a specific point in this room's timeline, but was unable to find it.": "尝试加载此房间的时间线的特定时间点,但是无法找到。",
@@ -1118,7 +1118,7 @@
"Missing roomId.": "找不到此聊天室 ID 所对应的聊天室。",
"You have been banned from %(roomName)s by %(userName)s.": "您已被 %(userName)s 从聊天室 %(roomName)s 中封禁。",
"You have been banned from this room by %(userName)s.": "您已被 %(userName)s 从此聊天室中封禁。",
- "Every page you use in the app": "您在 Riot 中使用的每一个页面",
+ "Every page you use in the app": "您在 Riot 中使用的所有页面",
"e.g. ": "例如:",
"Your User Agent": "您的 User Agent",
"Your device resolution": "您设备的分辨率",
@@ -1126,7 +1126,7 @@
"At this time it is not possible to reply with a file so this will be sent without being a reply.": "目前无法以文件作为回复的内容,所以此文件将不作为回复,独立发送。",
"Unable to reply": "无法回复",
"At this time it is not possible to reply with an emote.": "目前无法使用表情符号作为回复内容。",
- "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "您将被带到一个第三方网站以便验证您的账号以使用 %(integrationsUrl)s 提供的集成。您希望继续吗?",
+ "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "您将被带到一个第三方网站以便验证您的账号来使用 %(integrationsUrl)s 提供的集成。您希望继续吗?",
"Robot check is currently unavailable on desktop - please use a web browser": "目前机器人检查(CAPTCHA)在桌面端不可用——请使用 浏览器",
"The visibility of '%(roomName)s' in %(groupId)s could not be updated.": "无法更新聊天室 %(roomName)s 在社区 “%(groupId)s” 中的可见性。",
"Minimize apps": "最小化小部件",
@@ -1178,7 +1178,7 @@
"This homeserver has hit its Monthly Active User limit so some users will not be able to log in. Please contact your service administrator to get this limit increased.": "此主服务器已达到其每月活跃用户数量限制,所以,一些用户将无法登录。若要提高此数量限制,请 联系您的服务提供者 。",
"Warning: This widget might use cookies.": "警告:此小挂件可能会使用 cookies。",
"Failed to remove widget": "移除小挂件失败",
- "An error ocurred whilst trying to remove the widget from the room": "尝试从聊天室中移除小部件时发生了一个错误",
+ "An error ocurred whilst trying to remove the widget from the room": "尝试从聊天室中移除小部件时发生了错误",
"Reload widget": "刷新小挂件",
"Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "您确定要移除(删除)此事件吗?注意,如果删除了聊天室名称或话题的变化,就会撤销此更改。",
"This will make your account permanently unusable. You will not be able to log in, and no one will be able to re-register the same user ID. This will cause your account to leave all rooms it is participating in, and it will remove your account details from your identity server. This action is irreversible.": "这将使您的账户永远不再可用。您将不能登录,或使用相同的用户 ID 重新注册。您的账户将退出所有已加入的聊天室,身份服务器上的账户信息也会被删除。此操作是不可逆的。",
@@ -1226,5 +1226,47 @@
"An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "已向 %(emailAddress)s 发送了一封电子邮件。点开邮件中的链接后,请点击下面。",
"This homeserver has hit its Monthly Active User limit": "此主服务器已达到其每月活跃用户数量上限",
"Please contact your service administrator to continue using this service.": "请联系您的服务提供者以继续使用此服务。",
- "Try the app first": "先试试 Riot.im 应用吧"
+ "Try the app first": "先试试 Riot.im 应用吧",
+ "Registration Required": "需要注册",
+ "You need to register to do this. Would you like to register now?": "您必须注册以继续。您想现在就注册吗?",
+ "Forces the current outbound group session in an encrypted room to be discarded": "强制丢弃加密聊天室中的当前出站群组会话",
+ "Unable to connect to Homeserver. Retrying...": "无法连接至主服务器。正在重试…",
+ "Sorry, your homeserver is too old to participate in this room.": "对不起,您的主服务器的程序版本过旧以至于无法加入此聊天室。",
+ "Increase performance by only loading room members on first view": "仅在首次查看时加载聊天室成员以改善性能",
+ "Mirror local video feed": "镜像本地视频源",
+ "This room has been replaced and is no longer active.": "此聊天室已被取代,且不再活跃。",
+ "The conversation continues here.": "对话在这里继续。",
+ "Upgrade room to version %(ver)s": "将聊天室升级为版本 %(ver)s",
+ "Internal room ID: ": "内部聊天室 ID: ",
+ "Room version number: ": "聊天室版本号: ",
+ "There is a known vulnerability affecting this room.": "一个已知的威胁正在影响此聊天室。",
+ "This room version is vulnerable to malicious modification of room state.": "此版本的聊天室难以抵御对聊天室状态的恶意篡改。",
+ "Click here to upgrade to the latest room version and ensure room integrity is protected.": "点击这里以升级至最新版本的聊天室,并保证聊天室能受到完整的保护。",
+ "Only room administrators will see this warning": "此警告仅聊天室管理员可见",
+ "This room is a continuation of another conversation.": "此聊天室是另一个对话的延续之处。",
+ "Click here to see older messages.": "点击这里以查看更早的消息。",
+ "Failed to indicate account erasure": "无法指示帐户删除",
+ "Failed to upgrade room": "聊天室升级失败",
+ "The room upgrade could not be completed": "聊天室可能没有完整地升级",
+ "Upgrade this room to version %(version)s": "升级此聊天室至版本 %(version)s",
+ "Upgrade Room Version": "更新聊天室版本",
+ "Upgrading this room requires closing down the current instance of the room and creating a new room it its place. To give room members the best possible experience, we will:": "升级此聊天室需要关闭当前聊天室并创建一个新的聊天室。为了给聊天室成员提供最佳切换体验,我们将:",
+ "Create a new room with the same name, description and avatar": "创建一个拥有相同的名称,描述与头像的新聊天室",
+ "Update any local room aliases to point to the new room": "更新所有本地聊天室别名以使其指向新聊天室",
+ "Stop users from speaking in the old version of the room, and post a message advising users to move to the new room": "阻止用户在旧聊天室中发言,并发送消息建议用户迁移至新聊天室",
+ "Put a link back to the old room at the start of the new room so people can see old messages": "在新聊天室的消息开始处发送一条旧聊天室的链接,以便用户查看旧消息",
+ "Lazy loading members not supported": "不支持延迟加载成员",
+ "Lazy loading is not supported by your current homeserver.": "您当前使用的主服务器尚不支持延迟加载。",
+ "Legal": "法律信息",
+ "Unable to query for supported registration methods": "无法请求支持的注册方式",
+ "This homeserver has hit its Monthly Active User limit.": "此主服务器已达到其每月活跃用户限制。",
+ "This homeserver has exceeded one of its resource limits.": "本服务器已达到其使用量限制之一。",
+ "This homeserver has hit its Monthly Active User limit so some users will not be able to log in.": "本服务器已达到其每月活跃用户限制,部分用户将无法登录。",
+ "This homeserver has exceeded one of its resource limits so some users will not be able to log in.": "本主服务器已达到其使用量限制之一,部分用户将无法登录。",
+ "Please contact your service administrator to continue using this service.": "请 联系您的服务管理员 以继续使用本服务。",
+ "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "您的消息未被发送,因为本主服务器已达到其使用量限制之一。请 联系您的服务管理员 以继续使用本服务。",
+ "Your message wasn't sent because this homeserver has hit its Monthly Active User Limit. Please contact your service administrator to continue using the service.": "您的消息未被发送,因为本主服务器已达到其每月活跃用户限制。请 联系您的服务管理员 以继续使用本服务。",
+ "Please contact your service administrator to continue using the service.": "请 联系您的服务管理员 以继续使用本服务。",
+ "Please contact your homeserver administrator.": "请 联系您主服务器的管理员。",
+ "Please contact your service administrator to get this limit increased.": "请 联系您的服务管理员 以。"
}
From d1a173bd55a90073589eecbefab4d22e0d82541d Mon Sep 17 00:00:00 2001
From: Slavi Pantaleev
Date: Sat, 8 Sep 2018 07:06:31 +0000
Subject: [PATCH 08/98] Translated using Weblate (Bulgarian)
Currently translated at 100.0% (1252 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/bg/
---
src/i18n/strings/bg.json | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/bg.json b/src/i18n/strings/bg.json
index 8d340c3e6d..b367513d5a 100644
--- a/src/i18n/strings/bg.json
+++ b/src/i18n/strings/bg.json
@@ -1256,5 +1256,18 @@
"Lazy loading is not supported by your current homeserver.": "Отложеното зареждане не се поддържа от текущия сървър.",
"Sorry, your homeserver is too old to participate in this room.": "Съжаляваме, вашият сървър е прекалено стар за да участва в тази стая.",
"Please contact your homeserver administrator.": "Моля, свържете се се със сървърния администратор.",
- "Legal": "Юридически"
+ "Legal": "Юридически",
+ "Registration Required": "Нужна е регистрация",
+ "You need to register to do this. Would you like to register now?": "За да направите това е нужно да се регистрирате. Искате ли да се регистрирате сега?",
+ "Unable to connect to Homeserver. Retrying...": "Неуспешно свързване със сървъра. Опитване отново...",
+ "This room has been replaced and is no longer active.": "Тази стая е била заменена и вече не е активна.",
+ "The conversation continues here.": "Разговора продължава тук.",
+ "Upgrade room to version %(ver)s": "Обновете стаята до версия %(ver)s",
+ "This room is a continuation of another conversation.": "Тази стая е продължение на предишен разговор.",
+ "Click here to see older messages.": "Кликнете тук за да видите предишните съобщения.",
+ "Failed to upgrade room": "Неуспешно обновяване на стаята",
+ "The room upgrade could not be completed": "Обновяването на тази стая не можа да бъде завършено",
+ "Upgrade this room to version %(version)s": "Обновете тази стая до версия %(version)s",
+ "Unable to query for supported registration methods": "Неуспешно запитване за поддържани методи за регистрация",
+ "Forces the current outbound group session in an encrypted room to be discarded": "Принудително прекратява текущата изходяща групова сесия в шифрована стая"
}
From 09f5f02611cd7b90dfaf9c037959de576ad27a94 Mon Sep 17 00:00:00 2001
From: Osoitz
Date: Sun, 9 Sep 2018 08:03:03 +0000
Subject: [PATCH 09/98] Translated using Weblate (Basque)
Currently translated at 100.0% (1252 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/eu/
---
src/i18n/strings/eu.json | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/eu.json b/src/i18n/strings/eu.json
index 888cf66e62..7e190350dd 100644
--- a/src/i18n/strings/eu.json
+++ b/src/i18n/strings/eu.json
@@ -1266,5 +1266,9 @@
"Legal": "Legezkoa",
"Please contact your service administrator to continue using this service.": "Jarri kontaktuan zerbitzuaren administratzailearekin zerbitzu hau erabiltzen jarraitzeko.",
"Forces the current outbound group session in an encrypted room to be discarded": "Uneko irteerako talde saioa zifratutako gela batean baztertzera behartzen du",
- "Error Discarding Session": "Errorea saioa baztertzean"
+ "Error Discarding Session": "Errorea saioa baztertzean",
+ "Registration Required": "Erregistratzea ezinbestekoa da",
+ "You need to register to do this. Would you like to register now?": "Hau egiteko erregistratu egin behar zara. Orain erregistratu nahi duzu?",
+ "Unable to connect to Homeserver. Retrying...": "Ezin izan da hasiera zerbitzarira konektatu. Berriro saiatzen...",
+ "Unable to query for supported registration methods": "Ezin izan da onartutako erregistratze metodoei buruz itaundu"
}
From 5e755b38da31f650338377fe2a7678c898cdb40d Mon Sep 17 00:00:00 2001
From: Osoitz
Date: Sun, 9 Sep 2018 08:04:51 +0000
Subject: [PATCH 10/98] Translated using Weblate (Basque)
Currently translated at 100.0% (1252 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/eu/
---
src/i18n/strings/eu.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/i18n/strings/eu.json b/src/i18n/strings/eu.json
index 7e190350dd..1c77431c54 100644
--- a/src/i18n/strings/eu.json
+++ b/src/i18n/strings/eu.json
@@ -566,7 +566,7 @@
"To continue, please enter your password.": "Jarraitzeko sartu zure pasahitza.",
"To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "Gailu hau fidagarria dela egiaztatzeko, kontaktatu bere jabea beste medio bat erabiliz (adib. aurrez aurre edo telefonoz deituz) eta galdetu beraien erabiltzaile-ezarpenetan bere gailurako ikusten duen gakoa hemen beheko bera den:",
"If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Bat badator sakatu egiaztatu botoia. Bat ez badator, beste inor gailu hau atzematen dago eta blokeatu beharko zenuke.",
- "In future this verification process will be more sophisticated.": "etorkizunean egiaztaketa metodoa hobetuko da.",
+ "In future this verification process will be more sophisticated.": "Etorkizunean egiaztaketa metodo hau hobetuko da.",
"Unable to restore session": "Ezin izan da saioa berreskuratu",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Aurretik Riot bertsio berriago bat erabili baduzu, zure saioa bertsio honekin bateraezina izan daiteke. Itxi leiho hau eta itzuli bertsio berriagora.",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Gailu bakoitzaren egiaztaketa prozesua jarraitzea aholkatzen dizugu, benetako jabeari dagozkiela baieztatzeko, baina mezua egiaztatu gabe birbidali dezakezu ere.",
From 54519a6da4c548207a818203bf10683ffdbeddc1 Mon Sep 17 00:00:00 2001
From: RainSlide
Date: Fri, 7 Sep 2018 19:11:04 +0000
Subject: [PATCH 11/98] Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (1252 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hans/
---
src/i18n/strings/zh_Hans.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json
index ccf73c6841..6931e8883a 100644
--- a/src/i18n/strings/zh_Hans.json
+++ b/src/i18n/strings/zh_Hans.json
@@ -1268,5 +1268,5 @@
"Your message wasn't sent because this homeserver has hit its Monthly Active User Limit. Please contact your service administrator to continue using the service.": "您的消息未被发送,因为本主服务器已达到其每月活跃用户限制。请 联系您的服务管理员 以继续使用本服务。",
"Please contact your service administrator to continue using the service.": "请 联系您的服务管理员 以继续使用本服务。",
"Please contact your homeserver administrator.": "请 联系您主服务器的管理员。",
- "Please contact your service administrator to get this limit increased.": "请 联系您的服务管理员 以。"
+ "Please contact your service administrator to get this limit increased.": "请 联系您的服务管理员 以增加此限制的额度。"
}
From 85df81b2201bbeaa3ed7ded67ec2cf4017f8f70b Mon Sep 17 00:00:00 2001
From: Milena Brum
Date: Fri, 7 Sep 2018 17:16:34 +0000
Subject: [PATCH 12/98] Translated using Weblate (Spanish)
Currently translated at 99.6% (1248 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/es/
---
src/i18n/strings/es.json | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json
index dbc139684c..29924735be 100644
--- a/src/i18n/strings/es.json
+++ b/src/i18n/strings/es.json
@@ -5,7 +5,7 @@
"Account": "Cuenta",
"Access Token:": "Token de Acceso:",
"Add email address": "Añadir dirección de correo electrónico",
- "Add phone number": "Agregar número telefónico",
+ "Add phone number": "Añadir número telefónico",
"Admin": "Administrador",
"Advanced": "Avanzado",
"Algorithm": "Algoritmo",
@@ -78,7 +78,7 @@
"Devices will not yet be able to decrypt history from before they joined the room": "Los dispositivos todavía no podrán descifrar el historial desde antes de unirse a la sala",
"Direct chats": "Conversaciones directas",
"Disinvite": "Deshacer invitación",
- "Display name": "Nombre para mostrar",
+ "Display name": "Nombre público",
"Displays action": "Mostrar acción",
"Don't send typing notifications": "No enviar notificaciones cuando se escribe",
"Download %(text)s": "Descargar %(text)s",
@@ -115,7 +115,7 @@
"Failed to send email": "Falló al enviar el correo",
"Failed to send request.": "Falló al enviar la solicitud.",
"Failed to set avatar.": "Falló al establecer el avatar.",
- "Failed to set display name": "Falló al establecer el nombre a mostrar",
+ "Failed to set display name": "No se pudo establecer el nombre público",
"Failed to set up conference call": "Falló al configurar la llamada en conferencia",
"Failed to toggle moderator status": "Falló al cambiar estatus de moderador",
"Failed to unban": "No se pudo quitar veto",
@@ -288,7 +288,7 @@
"Tagged as: ": "Etiquetado como: ",
"The default role for new room members is": "El nivel por defecto para los nuevos miembros de esta sala es",
"The main address for this room is": "La dirección principal de esta sala es",
- "The phone number entered looks invalid": "El número de teléfono indicado parece erróneo",
+ "The phone number entered looks invalid": "El número telefónico indicado parece erróneo",
"Active call (%(roomName)s)": "Llamada activa (%(roomName)s)",
"Add a topic": "Añadir un tema",
"Missing Media Permissions, click here to request.": "Faltan permisos para el medio, pulse aquí para solicitarlos.",
@@ -329,7 +329,7 @@
"": "",
"NOT verified": "NO verificado",
"No devices with registered encryption keys": "No hay dispositivos con claves de cifrado registradas",
- "No display name": "Sin nombre para mostrar",
+ "No display name": "Sin nombre público",
"No more results": "No hay más resultados",
"No results": "No hay resultados",
"No users have specific privileges in this room": "Ningún usuario tiene permisos específicos en esta sala",
@@ -392,7 +392,7 @@
"The visibility of existing history will be unchanged": "La visibilidad del historial previo no se verá afectada",
"This doesn't appear to be a valid email address": "Esto no parece un e-mail váido",
"This is a preview of this room. Room interactions have been disabled": "Esta es una vista previa de esta sala. Las interacciones dentro de la sala se han deshabilitado",
- "This phone number is already in use": "Este número de teléfono ya se está usando",
+ "This phone number is already in use": "Este número telefónico ya está en uso",
"This room": "Esta sala",
"This room is not accessible by remote Matrix servers": "Esta sala no es accesible por otros servidores Matrix",
"This room's internal ID is": "El ID interno de la sala es",
@@ -617,7 +617,7 @@
"The Home Server may be too old to support third party networks": "El Servidor Doméstico puede ser demasiado antiguo para soportar redes de terceros",
"Resend": "Reenviar",
"Room not found": "Sala no encontrada",
- "Messages containing my display name": "Mensajes que contienen mi nombre",
+ "Messages containing my display name": "Mensajes que contienen mi nombre público",
"Messages in one-to-one chats": "Mensajes en chats uno a uno",
"Unavailable": "No disponible",
"View Decrypted Source": "Ver Fuente Descifrada",
@@ -786,7 +786,7 @@
"Jitsi Conference Calling": "Llamadas de conferencia Jitsi",
"Disable Emoji suggestions while typing": "Deshabilitar sugerencias de Emoji mientras escribe",
"Hide avatar changes": "Ocultar cambios del avatar",
- "Hide display name changes": "Ocultar cambios del nombre visible",
+ "Hide display name changes": "Ocultar cambios de nombre público",
"Always show encryption icons": "Mostrar siempre iconos de cifrado",
"Hide avatars in user and room mentions": "Ocultar avatares en las menciones de usuarios y salas",
"Disable big emoji in chat": "Deshabilitar emoji grande en la conversación",
@@ -941,7 +941,7 @@
"Code": "Código",
"The email field must not be blank.": "El campo de correo electrónico no debe estar en blanco.",
"The user name field must not be blank.": "El campo de nombre de usuario no debe estar en blanco.",
- "The phone number field must not be blank.": "El campo de número de teléfono no debe estar en blanco.",
+ "The phone number field must not be blank.": "El campo de número telefónico no debe estar en blanco.",
"The password field must not be blank.": "El campo de contraseña no debe estar en blanco.",
"Username on %(hs)s": "Nombre de usuario en %(hs)s",
"If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Si no indica una dirección de correo electrónico, no podrá reiniciar su contraseña. ¿Está seguro?",
@@ -1201,9 +1201,9 @@
"This homeserver doesn't offer any login flows which are supported by this client.": "Este homeserver no ofrece flujos de ingreso soportados por este cliente.",
"Try the app first": "Probar primero la app",
"Sign in to get started": "Ingresar para comenzar",
- "Set a display name:": "Ajuste un nombre en pantalla:",
+ "Set a display name:": "Establece un nombre público:",
"Upload an avatar:": "Subir un avatar:",
- "This server does not support authentication with a phone number.": "Este servidor no soporta autenticación mediante número de teléfono.",
+ "This server does not support authentication with a phone number.": "Este servidor no soporta autenticación mediante número telefónico.",
"Missing password.": "Falta la contraseña.",
"Passwords don't match.": "Las contraseñas no coinciden.",
"Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Contraseña demasiado corta (mínimo %(MIN_PASSWORD_LENGTH)s).",
From 39f56af21fadb3a8f65326f0461d2aff97d01b0b Mon Sep 17 00:00:00 2001
From: Victor Grousset
Date: Sun, 9 Sep 2018 20:06:31 +0000
Subject: [PATCH 13/98] Translated using Weblate (Esperanto)
Currently translated at 87.8% (1100 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/eo/
---
src/i18n/strings/eo.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json
index 754751b0fd..0816c639ea 100644
--- a/src/i18n/strings/eo.json
+++ b/src/i18n/strings/eo.json
@@ -1047,7 +1047,7 @@
"When I'm invited to a room": "Kiam mi estas invitita al ĉambro",
"Keywords": "Ŝlosilvortoj",
"Can't update user notification settings": "Agordoj de sciigoj al uzanto ne ĝisdatigeblas",
- "Notify for all other messages/rooms": "Sciigu min por ĉiu alia babilejo",
+ "Notify for all other messages/rooms": "Sciigu min por ĉiuj aliaj mesaĝoj/babilejoj",
"Unable to look up room ID from server": "Ĉambra identigaĵo ne akireblas de la servilo",
"Couldn't find a matching Matrix room": "Malsukcesis trovi kongruan ĉambron en Matrix",
"All Rooms": "Ĉiuj babilejoj",
From d3f86aad103177f82b252edb1a7513142d436f2b Mon Sep 17 00:00:00 2001
From: Moo
Date: Sun, 9 Sep 2018 21:01:37 +0000
Subject: [PATCH 14/98] Translated using Weblate (Lithuanian)
Currently translated at 68.0% (852 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/lt/
---
src/i18n/strings/lt.json | 78 +++++++++++++++++++++++++++++++++++++---
1 file changed, 74 insertions(+), 4 deletions(-)
diff --git a/src/i18n/strings/lt.json b/src/i18n/strings/lt.json
index b911458438..ef9281b5aa 100644
--- a/src/i18n/strings/lt.json
+++ b/src/i18n/strings/lt.json
@@ -738,9 +738,9 @@
"No results": "Jokių rezultatų",
"Delete": "Ištrinti",
"%(nameList)s %(transitionList)s": "%(nameList)s %(transitionList)s",
- "%(oneUser)schanged their name %(count)s times|one": "%(oneUser)s pasikeitė savo vardą",
- "%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)s pasikeitė savo avatarą",
- "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)s pasikeitė savo avatarą",
+ "%(oneUser)schanged their name %(count)s times|one": "%(oneUser)s pasikeitė vardą",
+ "%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)s pasikeitė avatarą",
+ "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)s pasikeitė avatarą",
"collapse": "suskleisti",
"expand": "išskleisti",
"Room directory": "Kambarių katalogas",
@@ -782,5 +782,75 @@
"Send Logs": "Siųsti žurnalus",
"Refresh": "Įkelti iš naujo",
"Unable to restore session": "Nepavyko atkurti seanso",
- "Invalid Email Address": "Neteisingas el. pašto adresas"
+ "Invalid Email Address": "Neteisingas el. pašto adresas",
+ "You cannot place VoIP calls in this browser.": "Negalite inicijuoti VoIP skambučių šioje naršyklėje.",
+ "You cannot place a call with yourself.": "Negalite skambinti patys sau.",
+ "Registration Required": "Reikalinga registracija",
+ "You need to register to do this. Would you like to register now?": "Norėdami tai atlikti, turite užsiregistruoti. Ar norėtumėte užsiregistruoti dabar?",
+ "Missing roomId.": "Trūksta kambario ID (roomId).",
+ "Leave room": "Išeiti iš kambario",
+ "(could not connect media)": "(nepavyko prijungti medijos)",
+ "This homeserver has hit its Monthly Active User limit.": "Šis namų serveris pasiekė savo mėnesinį aktyvių naudotojų limitą.",
+ "This homeserver has exceeded one of its resource limits.": "Šis namų serveris viršijo vieno iš savo išteklių limitą.",
+ "Unable to connect to Homeserver. Retrying...": "Nepavyksta prisijungti prie namų serverio. Bandoma iš naujo...",
+ "Hide avatar changes": "Slėpti avatarų pasikeitimus",
+ "Disable Community Filter Panel": "Išjungti bendruomenės filtro skydelį",
+ "Enable widget screenshots on supported widgets": "Palaikomuose valdikliuose įjungti valdiklių ekrano kopijas",
+ "Export E2E room keys": "Eksportuoti E2E kambario raktus",
+ "Select devices": "Pasirinkti įrenginius",
+ "Last seen": "Paskutinį kartą matytas",
+ "Unignore": "Nustoti nepaisyti",
+ "and %(count)s others...|other": "ir %(count)s kitų...",
+ "and %(count)s others...|one": "ir dar vienas...",
+ "Mention": "Paminėti",
+ "At this time it is not possible to reply with a file so this will be sent without being a reply.": "Šiuo metu neįmanoma atsakyti failu, taigi, šis failas bus išsiųstas ne atsakymo pavidalu.",
+ "This room has been replaced and is no longer active.": "Šis kambarys buvo pakeistas ir daugiau nebėra aktyvus.",
+ "You do not have permission to post to this room": "Jūs neturite leidimų rašyti šiame kambaryje",
+ "Turn Markdown on": "Įjungti Markdown",
+ "Turn Markdown off": "Išjungti Markdown",
+ "Markdown is disabled": "Markdown yra išjungta",
+ "Markdown is enabled": "Markdown yra įjungta",
+ "Drop here to favourite": "Vilkite čia, norėdami pridėti į mėgstamus",
+ "Drop here to restore": "Vilkite čia, norėdami atkurti",
+ "System Alerts": "Sistemos įspėjimai",
+ "Would you like to accept or decline this invitation?": "Norėtumėte priimti ar atmesti šį pakvietimą?",
+ "This is a preview of this room. Room interactions have been disabled": "Tai yra kambario peržiūra. Kambario sąveikos yra išjungtos",
+ "To change the room's avatar, you must be a": "Norėdami pakeisti kambario avatarą, privalote būti",
+ "Failed to unban": "Nepavyko atblokuoti",
+ "Privacy warning": "Privatumo įspėjimas",
+ "Encrypted messages will not be visible on clients that do not yet implement encryption": "Šifruotos žinutės nebus matomos kliento programose, kurios kol kas neįgyvendino šifravimo",
+ "Tagged as: ": "Pažymėtas kaip: ",
+ "To link to a room it must have an address.": "Norint susieti kambarį, jis privalo turėti adresą.",
+ "Internal room ID: ": "Vidinis kambario ID: ",
+ "not specified": "nenurodyta",
+ "not set": "nenustatyta",
+ "In encrypted rooms, like this one, URL previews are disabled by default to ensure that your homeserver (where the previews are generated) cannot gather information about links you see in this room.": "Šifruotuose kambariuose, tokiuose kaip šis, URL nuorodų peržiūra pagal numatymą yra išjungta, kad būtų užtikrinta, jog jūsų namų serveris (kuriame yra generuojamos peržiūros) negalės rinkti informacijos apie šiame kambaryje matomas nuorodas.",
+ "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s pakeitė %(roomName)s avatarą",
+ "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s pašalino kambario avatarą.",
+ "%(senderDisplayName)s changed the room avatar to ": "%(senderDisplayName)s pakeitė kambario avatarą į ",
+ "Removed or unknown message type": "Žinutė pašalinta arba yra nežinomo tipo",
+ "Username on %(hs)s": "Naudotojo vardas ties %(hs)s",
+ "Filter community members": "Filtruoti bendruomenės dalyvius",
+ "Removing a room from the community will also remove it from the community page.": "Pašalinus kambarį iš bendruomenės, taip pat pašalins jį iš bendruomenės puslapio.",
+ "Filter community rooms": "Filtruoti bendruomenės kambarius",
+ "Please help improve Riot.im by sending anonymous usage data. This will use a cookie (please see our Cookie Policy).": "Padėkite patobulinti Riot.im, siųsdami anoniminius naudojimosi duomenis. Tai panaudos slapuką (žiūrėkite mūsų Slapukų politiką).",
+ "Please help improve Riot.im by sending anonymous usage data. This will use a cookie.": "Padėkite patobulinti Riot.im, siųsdami anoniminius naudojimosi duomenis. Tai panaudos slapuką.",
+ "Please contact your service administrator to get this limit increased.": "Norėdami padidinti šį limitą, susisiekite su savo paslaugų administratoriumi.",
+ "This homeserver has hit its Monthly Active User limit so some users will not be able to log in.": "Šis namų serveris pasiekė savo mėnesinį aktyvių naudotojų limitą, taigi, kai kurie naudotojai negalės prisijungti.",
+ "This homeserver has exceeded one of its resource limits so some users will not be able to log in.": "Šis namų serveris viršijo vieno iš savo išteklių limitą, taigi, kai kurie naudotojai negalės prisijungti.",
+ "An error ocurred whilst trying to remove the widget from the room": "Įvyko klaida, bandant pašalinti valdiklį iš kambario",
+ "Blacklist": "Įtraukti į juodąjį sąrašą",
+ "Unblacklist": "Pašalinti iš juodojo sąrašo",
+ "Verify...": "Patvirtinti...",
+ "Communities": "Bendruomenės",
+ "Home": "Pradžia",
+ "%(severalUsers)sleft %(count)s times|other": "%(severalUsers)s išėjo %(count)s kartų(-us)",
+ "%(severalUsers)sleft %(count)s times|one": "%(severalUsers)s išėjo",
+ "%(oneUser)sleft %(count)s times|other": "%(oneUser)s išėjo %(count)s kartų(-us)",
+ "%(oneUser)sleft %(count)s times|one": "%(oneUser)s išėjo",
+ "%(severalUsers)schanged their name %(count)s times|one": "%(severalUsers)s pasikeitė vardus",
+ "%(oneUser)schanged their name %(count)s times|other": "%(oneUser)s pasikeitė vardą %(count)s kartų(-us)",
+ "%(severalUsers)schanged their avatar %(count)s times|other": "%(severalUsers)s pasikeitė avatarą %(count)s kartų(-us)",
+ "%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)s pasikeitė avatarą %(count)s kartų(-us)",
+ "And %(count)s more...|other": "Ir dar %(count)s..."
}
From 78e258eb8d4b876dbfedb4ffae0e68e7bf23d915 Mon Sep 17 00:00:00 2001
From: Kenneth Larsson
Date: Mon, 10 Sep 2018 12:13:54 +0000
Subject: [PATCH 15/98] Translated using Weblate (Swedish)
Currently translated at 100.0% (1252 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/sv/
---
src/i18n/strings/sv.json | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json
index 032a50cec6..6d40197006 100644
--- a/src/i18n/strings/sv.json
+++ b/src/i18n/strings/sv.json
@@ -1262,5 +1262,10 @@
"Create a new room with the same name, description and avatar": "Skapa ett nytt rum med samma namn, beskrivning och avatar",
"Update any local room aliases to point to the new room": "Uppdatera lokala rumsalias att peka på det nya rummet",
"Stop users from speaking in the old version of the room, and post a message advising users to move to the new room": "Hindra användare från att prata i den gamla rumsversionen och posta ett meddelande som rekommenderar användare att flytta till det nya rummet",
- "Put a link back to the old room at the start of the new room so people can see old messages": "Sätta en länk tillbaka till det gamla rummet i början av det nya rummet så att folk kan se gamla meddelanden"
+ "Put a link back to the old room at the start of the new room so people can see old messages": "Sätta en länk tillbaka till det gamla rummet i början av det nya rummet så att folk kan se gamla meddelanden",
+ "Registration Required": "Registrering krävs",
+ "You need to register to do this. Would you like to register now?": "Du måste registrera dig för att göra detta. Vill du registrera dig nu?",
+ "Forces the current outbound group session in an encrypted room to be discarded": "Tvingar den aktuella utgående gruppsessionen i ett krypterat rum att överges",
+ "Unable to connect to Homeserver. Retrying...": "Det gick inte att ansluta till hemserver. Försöker igen ...",
+ "Unable to query for supported registration methods": "Det gick inte att hämta stödda registreringsmetoder"
}
From 1a4a22d13c63dd7de2f2af94e5d8f6cb64567f2b Mon Sep 17 00:00:00 2001
From: Victor Grousset
Date: Mon, 10 Sep 2018 11:58:26 +0000
Subject: [PATCH 16/98] Translated using Weblate (Esperanto)
Currently translated at 87.8% (1100 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/eo/
---
src/i18n/strings/eo.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json
index 0816c639ea..10171f9ee3 100644
--- a/src/i18n/strings/eo.json
+++ b/src/i18n/strings/eo.json
@@ -174,7 +174,7 @@
"Always show message timestamps": "Ĉiam montri mesaĝajn tempindikojn",
"Autoplay GIFs and videos": "Aŭtomate ludi GIF-bildojn kaj videojn",
"Call Failed": "Voko malsukcesis",
- "There are unknown devices in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "En la ĉambro estas nekonataj aparatoj. Se vi daŭrigos ne kontrolinte ilin, iu povos subaŭskulti vian vokon.",
+ "There are unknown devices in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "En la babilejo estas nekonataj aparatoj: se vi daŭrigos ne kontrolante ilin, iu povos subaŭskulti vian vokon.",
"Review Devices": "Kontroli aparatojn",
"Call Anyway": "Tamen voki",
"Answer Anyway": "Tamen respondi",
@@ -938,7 +938,7 @@
"The platform you're on": "Via sistemtipo",
"Which officially provided instance you are using, if any": "Kiun oficiale disponeblan aperon vi uzas, se iun ajn",
"Whether or not you're using the Richtext mode of the Rich Text Editor": "Ĉu vi uzas la riĉtekstan reĝimon de la riĉteksta redaktilo aŭ ne",
- "Where this page includes identifiable information, such as a room, user or group ID, that data is removed before being sent to the server.": "Kiam ĉi tiu paĝo enhavas identigeblajn informojn, ekzemple ĉambron, uzantan aŭ grupan identigilon, ĝi sendiĝas al la servilo sen tiuj.",
+ "Where this page includes identifiable information, such as a room, user or group ID, that data is removed before being sent to the server.": "Kiam ĉi tiu paĝo enhavas identigeblajn informojn, ekzemple babilejon, uzantan aŭ grupan identigilon, ili estas formetataj antaŭ sendado al la servilo.",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s": "%(weekDayName)s, %(day)s %(monthName)s %(fullYear)s",
"Disable Community Filter Panel": "Malŝalti komunuman filtran breton",
"Failed to add tag %(tagName)s to room": "Malsukcesis aldoni etikedon %(tagName)s al ĉambro",
From 2f6b529eb340e3508fed92b57467f198751027e4 Mon Sep 17 00:00:00 2001
From: Kenneth Larsson
Date: Mon, 10 Sep 2018 12:30:54 +0000
Subject: [PATCH 17/98] Translated using Weblate (Swedish)
Currently translated at 100.0% (1252 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/sv/
---
src/i18n/strings/sv.json | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json
index 6d40197006..4a3c81774a 100644
--- a/src/i18n/strings/sv.json
+++ b/src/i18n/strings/sv.json
@@ -52,7 +52,7 @@
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s tog bort rummets namn.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s bytte rummets ämne till \"%(topic)s\".",
"Changes to who can read history will only apply to future messages in this room": "Ändringar till vem som kan läsa meddelandehistorik tillämpas endast till framtida meddelanden i det här rummet",
- "Changes your display nickname": "Byter ditt synliga namn",
+ "Changes your display nickname": "Ändrar ditt visningsnamn",
"Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Om du byter lösenord kommer för tillfället alla krypteringsnycklar på alla enheter att nollställas, vilket gör all krypterad meddelandehistorik omöjligt att läsa, om du inte först exporterar rumsnycklarna och sedan importerar dem efteråt. I framtiden kommer det här att förbättras.",
"Claimed Ed25519 fingerprint key": "Påstådd Ed25519-fingeravtrycksnyckel",
"Clear Cache and Reload": "Töm cache och ladda om",
@@ -96,7 +96,7 @@
"Devices will not yet be able to decrypt history from before they joined the room": "Enheter kan inte ännu dekryptera meddelandehistorik från före de gick med i rummet",
"Direct chats": "Direkt-chattar",
"Disinvite": "Häv inbjudan",
- "Display name": "Namn",
+ "Display name": "Visningsnamn",
"Displays action": "Visar åtgärd",
"Don't send typing notifications": "Skicka inte \"skriver\"-status",
"Download %(text)s": "Ladda ner %(text)s",
@@ -135,7 +135,7 @@
"Failed to send email": "Det gick inte att skicka epost",
"Failed to send request.": "Det gick inte att sända begäran.",
"Failed to set avatar.": "Misslyckades med att ange avatar.",
- "Failed to set display name": "Det gick inte att sätta namnet",
+ "Failed to set display name": "Det gick inte att ange visningsnamn",
"Failed to set up conference call": "Det gick inte att starta konferenssamtalet",
"Failed to toggle moderator status": "Det gick inte att växla moderator-status",
"Failed to unban": "Det gick inte att avbanna",
@@ -462,7 +462,7 @@
"The Home Server may be too old to support third party networks": "Hemservern kan vara för gammal för stöda tredje parters nätverk",
"Noisy": "Högljudd",
"Room not found": "Rummet hittades inte",
- "Messages containing my display name": "Meddelanden som innehåller mitt namn",
+ "Messages containing my display name": "Meddelanden som innehåller mitt visningsnamn",
"Messages in one-to-one chats": "Meddelanden i privata chattar",
"Unavailable": "Otillgänglig",
"View Decrypted Source": "Visa dekrypterad källa",
From cf591244e6282843330d1c0a50c22c7cdbed7f4c Mon Sep 17 00:00:00 2001
From: Milena Brum
Date: Mon, 10 Sep 2018 19:44:59 +0000
Subject: [PATCH 18/98] Translated using Weblate (Spanish)
Currently translated at 99.6% (1248 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/es/
---
src/i18n/strings/es.json | 46 ++++++++++++++++++++--------------------
1 file changed, 23 insertions(+), 23 deletions(-)
diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json
index 29924735be..9a1a67c883 100644
--- a/src/i18n/strings/es.json
+++ b/src/i18n/strings/es.json
@@ -9,7 +9,7 @@
"Admin": "Administrador",
"Advanced": "Avanzado",
"Algorithm": "Algoritmo",
- "Always show message timestamps": "Siempre mostrar la hora del mensaje",
+ "Always show message timestamps": "Siempre mostrar las marcas temporales de mensajes",
"Authentication": "Autenticación",
"%(items)s and %(lastItem)s": "%(items)s y %(lastItem)s",
"and %(count)s others...|other": "y otros %(count)s...",
@@ -63,7 +63,7 @@
"Create an account": "Crear una cuenta",
"Create Room": "Crear Sala",
"Cryptography": "Criptografía",
- "Current password": "Clave actual",
+ "Current password": "Contraseña actual",
"Curve25519 identity key": "Clave de identidad Curve25519",
"/ddg is not a command": "/ddg no es un comando",
"Deactivate Account": "Desactivar Cuenta",
@@ -80,7 +80,7 @@
"Disinvite": "Deshacer invitación",
"Display name": "Nombre público",
"Displays action": "Mostrar acción",
- "Don't send typing notifications": "No enviar notificaciones cuando se escribe",
+ "Don't send typing notifications": "No enviar notificaciones de estar escribiendo",
"Download %(text)s": "Descargar %(text)s",
"Drop here to tag %(section)s": "Suelta aquí para etiquetar %(section)s",
"Ed25519 fingerprint": "Huella digital Ed25519",
@@ -127,13 +127,13 @@
"Fill screen": "Llenar pantalla",
"Filter room members": "Filtrar miembros de la sala",
"Forget room": "Olvidar sala",
- "Forgot your password?": "¿Olvidaste tu clave?",
+ "Forgot your password?": "¿Olvidaste tu contraseña?",
"For security, this session has been signed out. Please sign in again.": "Por seguridad, esta sesión ha sido cerrada. Por favor inicia sesión nuevamente.",
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "Por seguridad, al cerrar la sesión borrará cualquier clave de encriptación de extremo a extremo en este navegador. Si quieres ser capaz de descifrar tu historial de conversación, para las futuras sesiones en Riot, por favor exporta las claves de la sala para protegerlas.",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s a %(toPowerLevel)s",
"Guests cannot join this room even if explicitly invited.": "Invitados no pueden unirse a esta sala aun cuando han sido invitados explícitamente.",
"Hangup": "Colgar",
- "Hide read receipts": "Ocultar mensajes leídos",
+ "Hide read receipts": "Ocultar recibos de lectura",
"Hide Text Formatting Toolbar": "Ocultar barra de herramientas de formato de texto",
"Historical": "Histórico",
"Homeserver is": "El servidor es",
@@ -222,7 +222,7 @@
"Create new room": "Crear nueva sala",
"Start chat": "Iniciar conversación",
"New Password": "Nueva Contraseña",
- "Analytics": "Analíticas",
+ "Analytics": "Análisis de Estadísticas",
"Options": "Opciones",
"Passphrases must match": "Las contraseñas deben coincidir",
"Passphrase must not be empty": "La contraseña no puede estar en blanco",
@@ -239,9 +239,9 @@
"Unknown error": "Error desconocido",
"Incorrect password": "Contraseña incorrecta",
"To continue, please enter your password.": "Para continuar, introduzca su contraseña.",
- "Device name": "Nombre del dispositivo",
- "Device Name": "Nombre del dispositivo",
- "Device key": "Clave del dispositivo",
+ "Device name": "Nombre de dispositivo",
+ "Device Name": "Nombre de Dispositivo",
+ "Device key": "Clave de dispositivo",
"In future this verification process will be more sophisticated.": "En el futuro este proceso de verificación será mejorado.",
"Verify device": "Verifique el dispositivo",
"I verify that the keys match": "Confirmo que las claves coinciden",
@@ -281,7 +281,7 @@
"%(count)s of your messages have not been sent.|other": "Algunos de sus mensajes no han sido enviados.",
"Someone": "Alguien",
"Start a chat": "Iniciar una conversación",
- "Start authentication": "Comenzar la identificación",
+ "Start authentication": "Iniciar autenticación",
"Start Chat": "Iniciar Conversación",
"Submit": "Enviar",
"Success": "Éxito",
@@ -376,7 +376,7 @@
"Room %(roomId)s not visible": "La sala %(roomId)s no es visible",
"Searches DuckDuckGo for results": "Busca en DuckDuckGo",
"Server may be unavailable or overloaded": "El servidor podría estar saturado o desconectado",
- "Show timestamps in 12 hour format (e.g. 2:30pm)": "Mostrar el tiempo en formato 12h (am/pm)",
+ "Show timestamps in 12 hour format (e.g. 2:30pm)": "Mostrar marcas temporales en formato de 12 horas (ej. 2:30pm)",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "La clave de firma que usted ha proporcionado coincide con la recibida del dispositivo %(deviceId)s de %(userId)s. Dispositivo verificado.",
"This email address is already in use": "Esta dirección de correo electrónico ya está en uso",
"This email address was not found": "Esta dirección de correo electrónico no se encontró",
@@ -411,7 +411,7 @@
"Ignore request": "Ignorar la solicitud",
"Do you want to set an email address?": "¿Quieres poner una dirección de correo electrónico?",
"This will allow you to reset your password and receive notifications.": "Esto te permitirá reiniciar tu contraseña y recibir notificaciones.",
- "Authentication check failed: incorrect password?": "La verificación de la autentificación ha fallado: ¿El password es el correcto?",
+ "Authentication check failed: incorrect password?": "La verificación de autenticación falló: ¿contraseña incorrecta?",
"Press to start a chat with someone": "Pulsa para empezar a charlar con alguien",
"Add a widget": "Añadir widget",
"Allow": "Permitir",
@@ -420,7 +420,7 @@
"Define the power level of a user": "Definir el nivel de poder de los usuarios",
"Edit": "Editar",
"Enable automatic language detection for syntax highlighting": "Activar la detección automática del lenguaje para resaltar la sintaxis",
- "Hide join/leave messages (invites/kicks/bans unaffected)": "Ocultar mensajes de entrada/salida (no afecta invitaciones/kicks/bans)",
+ "Hide join/leave messages (invites/kicks/bans unaffected)": "Ocultar mensajes de unirse/salir (no afecta a invitaciones/expulsiones/vetos)",
"Sets the room topic": "Configura el tema de la sala",
"To get started, please pick a username!": "Para empezar, ¡por favor elija un nombre de usuario!",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Se ha intentado cargar cierto punto en la cronología de esta sala, pero no tiene permiso para ver el mensaje solicitado.",
@@ -618,7 +618,7 @@
"Resend": "Reenviar",
"Room not found": "Sala no encontrada",
"Messages containing my display name": "Mensajes que contienen mi nombre público",
- "Messages in one-to-one chats": "Mensajes en chats uno a uno",
+ "Messages in one-to-one chats": "Mensajes en conversaciones uno a uno",
"Unavailable": "No disponible",
"View Decrypted Source": "Ver Fuente Descifrada",
"Failed to update keywords": "Error al actualizar las palabras clave",
@@ -706,7 +706,7 @@
"Unable to join network": "No se puede unir a la red",
"You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Es posible que los hayas configurado en un cliente que no sea Riot. No puedes ajustarlos en Riot, pero todavía se aplican",
"Sorry, your browser is not able to run Riot.": "¡Lo sentimos! Su navegador no puede ejecutar Riot.",
- "Messages in group chats": "Mensajes en chats de grupo",
+ "Messages in group chats": "Mensajes en conversaciones en grupo",
"Yesterday": "Ayer",
"Error encountered (%(errorDetail)s).": "Error encontrado (%(errorDetail)s).",
"Login": "Iniciar sesión",
@@ -794,8 +794,8 @@
"Mirror local video feed": "Clonar transmisión de video local",
"Disable Community Filter Panel": "Deshabilitar Panel de Filtro de la Comunidad",
"Disable Peer-to-Peer for 1:1 calls": "Deshabilitar pares para llamadas 1:1",
- "Send analytics data": "Enviar información de estadísticas",
- "Enable inline URL previews by default": "Activar vistas previas de las URLs por defecto",
+ "Send analytics data": "Enviar datos de análisis de estadísticas",
+ "Enable inline URL previews by default": "Habilitar vistas previas de URL en línea por defecto",
"Enable URL previews for this room (only affects you)": "Activar vista previa de URL en esta sala (sólo le afecta a ud.)",
"Enable URL previews by default for participants in this room": "Activar vista previa de URL por defecto para los participantes en esta sala",
"Enable widget screenshots on supported widgets": "Activar capturas de pantalla de widget en los widgets soportados",
@@ -973,7 +973,7 @@
"You're not currently a member of any communities.": "Actualmente no es miembro de una comunidad.",
"Please help improve Riot.im by sending anonymous usage data. This will use a cookie (please see our Cookie Policy).": "Por favor, ayude a mejorar Riot.im enviando información anónima de uso. Esto usará una cookie (por favor, vea nuestra Política de cookies).",
"Please help improve Riot.im by sending anonymous usage data. This will use a cookie.": "Por favor, ayude a mejorar Riot.im enviando información anónima de uso. Esto usará una cookie.",
- "Yes, I want to help!": "¡Sí, quiero ayudar!",
+ "Yes, I want to help!": "Sí, ¡quiero ayudar!",
"Unknown Address": "Dirección desconocida",
"Warning: This widget might use cookies.": "Advertencia: Este widget puede usar cookies.",
"Delete Widget": "Eliminar Componente",
@@ -1161,7 +1161,7 @@
"Terms and Conditions": "Términos y condiciones",
"To continue using the %(homeserverDomain)s homeserver you must review and agree to our terms and conditions.": "Para continuar usando el homeserver %(homeserverDomain)s debe revisar y estar de acuerdo con nuestros términos y condiciones.",
"Review terms and conditions": "Revisar términos y condiciones",
- "Old cryptography data detected": "Se detectó información criptográfica antigua",
+ "Old cryptography data detected": "Se detectó información de criptografía antigua",
"Data from an older version of Riot has been detected. This will have caused end-to-end cryptography to malfunction in the older version. End-to-end encrypted messages exchanged recently whilst using the older version may not be decryptable in this version. This may also cause messages exchanged with this version to fail. If you experience problems, log out and back in again. To retain message history, export and re-import your keys.": "Se detectó una versión más antigua de Riot. Esto habrá provocado que la criptografía de extremo a extremo funcione incorrectamente en la versión más antigua. Los mensajes cifrados de extremo a extremo intercambiados recientemente mientras usaba la versión más antigua puede que no sean descifrables con esta versión. Esto también puede hacer que fallen con la más reciente. Si experimenta problemas, desconecte y vuelva a ingresar. Para conservar el historial de mensajes, exporte y vuelva a importar sus claves.",
"Your Communities": "Sus Comunidades",
"Did you know: you can use communities to filter your Riot.im experience!": "Sabía que: puede usar comunidades para filtrar su experiencia con Riot.im",
@@ -1186,10 +1186,10 @@
"Autocomplete Delay (ms):": "Retraso del completado automático (en ms):",
"Ignored Users": "Usuarios Ignorados",
"Debug Logs Submission": "Envío de registros para depuración",
- "If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "Si ha envíado un error a GitHub, estos registros pueden ayudar a localizar el problema. Contienen información de uso de la aplicación, incluido el nombre de usuario, IDs o alias de las salas o grupos visitados y los nombres de otros usuarios. No contienen mensajes.",
- "Riot collects anonymous analytics to allow us to improve the application.": "El programa recopila estadísticas de forma anónima para mejorarlo.",
- "Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.": "La privacidad es importante, por lo que no se recopila información personal o identificable en las estadísticas.",
- "Learn more about how we use analytics.": "Más información sobre el uso de las estadísticas.",
+ "If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "Si has enviado un error a GitHub, estos registros pueden ayudar a localizar el problema. Contienen información de uso de la aplicación, incluido el nombre de usuario, IDs o alias de las salas o grupos visitados y los nombres de otros usuarios. No contienen mensajes.",
+ "Riot collects anonymous analytics to allow us to improve the application.": "Riot recopila análisis de estadísticas anónimas para permitirnos mejorar la aplicación.",
+ "Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.": "La privacidad es importante, por lo que no se recopila información personal o identificable en los análisis de estadísticas.",
+ "Learn more about how we use analytics.": "Más información sobre el uso de los análisis de estadísticas.",
"Updates": "Actualizaciones",
"Check for update": "Comprobar actualizaciones",
"Desktop specific": "Específico del escritorio",
From f194f323f4c0ae98dfb8fc9e558516d92e132ada Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Thu, 13 Sep 2018 18:43:24 +0200
Subject: [PATCH 19/98] postpone loading the members until the user joined the
room
when peeking, the members weren't being loaded at all because
the room wasn't available yet,
and the need for loading the members was never re-evaluated after that.
This only loads the members once the user has joined the room,
which also helps to avoid load all the members before an invite
is accepted.
---
src/components/structures/RoomView.js | 28 +++++++-----
src/components/views/rooms/MemberList.js | 56 ++++++++++++++++--------
2 files changed, 56 insertions(+), 28 deletions(-)
diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js
index 88c1d153eb..3a2a80f06a 100644
--- a/src/components/structures/RoomView.js
+++ b/src/components/structures/RoomView.js
@@ -314,16 +314,6 @@ module.exports = React.createClass({
// Stop peeking because we have joined this room previously
MatrixClientPeg.get().stopPeeking();
this.setState({isPeeking: false});
-
- // lazy load members if enabled
- if (SettingsStore.isFeatureEnabled('feature_lazyloading')) {
- room.loadMembersIfNeeded().catch((err) => {
- const errorMessage = `Fetching room members for ${room.roomId} failed.` +
- " Room members will appear incomplete.";
- console.error(errorMessage);
- console.error(err);
- });
- }
}
}
},
@@ -592,6 +582,23 @@ module.exports = React.createClass({
this._warnAboutEncryption(room);
this._calculatePeekRules(room);
this._updatePreviewUrlVisibility(room);
+ this._loadMembersIfJoined();
+ },
+
+ _loadMembersIfJoined: function() {
+ // lazy load members if enabled
+ if (SettingsStore.isFeatureEnabled('feature_lazyloading')) {
+ const cli = MatrixClientPeg.get();
+ const room = cli.getRoom(this.state.roomId);
+ if (room && room.getMyMembership() === 'join') {
+ room.loadMembersIfNeeded().catch((err) => {
+ const errorMessage = `Fetching room members for ${room.roomId} failed.` +
+ " Room members will appear incomplete.";
+ console.error(errorMessage);
+ console.error(err);
+ });
+ }
+ }
},
_warnAboutEncryption: function(room) {
@@ -705,6 +712,7 @@ module.exports = React.createClass({
onRoomMemberMembership: function(ev, member, oldMembership) {
if (member.userId == MatrixClientPeg.get().credentials.userId) {
+ this._loadMembersIfJoined();
this.forceUpdate();
}
},
diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js
index 8d12a8187e..d1eacf5396 100644
--- a/src/components/views/rooms/MemberList.js
+++ b/src/components/views/rooms/MemberList.js
@@ -46,6 +46,8 @@ module.exports = React.createClass({
if (!cli.hasLazyLoadMembersEnabled()) {
this._listenForMembersChanges();
}
+ cli.on("Room", this.onRoom); // invites & joining after peek
+ cli.on("RoomMember.membership", this.onRoomMembership); // update when accepting an invite
const enablePresenceByHsUrl = SdkConfig.get()["enable_presence_by_hs_url"];
const hsUrl = MatrixClientPeg.get().baseUrl;
this._showPresence = true;
@@ -59,7 +61,6 @@ module.exports = React.createClass({
cli.on("RoomState.members", this.onRoomStateMember);
cli.on("RoomMember.name", this.onRoomMemberName);
cli.on("RoomState.events", this.onRoomStateEvent);
- cli.on("Room", this.onRoom); // invites
// We listen for changes to the lastPresenceTs which is essentially
// listening for all presence events (we display most of not all of
// the information contained in presence events).
@@ -69,14 +70,7 @@ module.exports = React.createClass({
componentDidMount: async function() {
this._mounted = true;
- const cli = MatrixClientPeg.get();
- if (cli.hasLazyLoadMembersEnabled()) {
- await this._waitForMembersToLoad();
- if (this._mounted) {
- this.setState(this._getMembersState());
- this._listenForMembersChanges();
- }
- }
+ this._loadMembersIfNeeded(true);
},
componentWillUnmount: function() {
@@ -85,6 +79,7 @@ module.exports = React.createClass({
if (cli) {
cli.removeListener("RoomState.members", this.onRoomStateMember);
cli.removeListener("RoomMember.name", this.onRoomMemberName);
+ cli.removeListener("RoomMember.membership", this.onRoomMembership);
cli.removeListener("RoomState.events", this.onRoomStateEvent);
cli.removeListener("Room", this.onRoom);
cli.removeListener("User.lastPresenceTs", this.onUserLastPresenceTs);
@@ -95,14 +90,24 @@ module.exports = React.createClass({
this._updateList.cancelPendingCall();
},
- _waitForMembersToLoad: async function() {
- if (!this.props.roomId) return {};
+ _loadMembersIfNeeded: async function(initial) {
const cli = MatrixClientPeg.get();
- const room = cli.getRoom(this.props.roomId);
- if (room) {
- try {
- await room.loadMembersIfNeeded();
- } catch(ex) {/* already logged in RoomView */}
+ if (cli.hasLazyLoadMembersEnabled()) {
+ const cli = MatrixClientPeg.get();
+ const room = cli.getRoom(this.props.roomId);
+ if (room && room.getMyMembership() === 'join') {
+ this.setState({loading: true});
+ try {
+ await room.loadMembersIfNeeded();
+ } catch(ex) {/* already logged in RoomView */}
+ if (this._mounted) {
+ this.setState(this._getMembersState());
+ this._listenForMembersChanges();
+ }
+ } else if(initial) {
+ // show the members we've got
+ this.setState(this._getMembersState());
+ }
}
},
@@ -163,14 +168,28 @@ module.exports = React.createClass({
}
},
- onRoom: function(room) {
+ onRoom: async function(room) {
if (room.roomId !== this.props.roomId) {
return;
}
// We listen for room events because when we accept an invite
// we need to wait till the room is fully populated with state
// before refreshing the member list else we get a stale list.
- this._updateList();
+
+ // also when peeking, we need to await the members being loaded
+ // before showing them.
+
+ this._loadMembersIfNeeded();
+ },
+
+ onRoomMembership: async function(ev, member, oldMembership) {
+ const cli = MatrixClientPeg.get();
+ const myId = cli.getUserId();
+ if (member.userId === myId && oldMembership !== "join" && member.membership === "join") {
+ // once we've joined, no need to listen for membership anymore
+ cli.removeListener("RoomMember.membership", this.onRoomMembership);
+ this._loadMembersIfNeeded();
+ }
},
onRoomStateMember: function(ev, state, member) {
@@ -197,6 +216,7 @@ module.exports = React.createClass({
_updateList: new rate_limited_func(function() {
// console.log("Updating memberlist");
const newState = {
+ loading: false,
members: this.roomMembers(),
};
newState.filteredJoinedMembers = this._filterMembers(newState.members, 'join', this.state.searchQuery);
From fe734b944e6b94804db58a82f91a3ff45f9e2431 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Thu, 13 Sep 2018 18:45:38 +0200
Subject: [PATCH 20/98] remove obsolete warning as peeking will cause the
membership to be null
---
src/stores/RoomListStore.js | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/stores/RoomListStore.js b/src/stores/RoomListStore.js
index 02d728ff2e..5a041f52ac 100644
--- a/src/stores/RoomListStore.js
+++ b/src/stores/RoomListStore.js
@@ -214,8 +214,6 @@ class RoomListStore extends Store {
}
} else if (membership === "leave") {
lists["im.vector.fake.archived"].push(room);
- } else {
- console.error("unrecognised membership: " + membership + " - this should never happen");
}
});
From 27c496aecb87ce28654e0d0a4a2936e449049885 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Fri, 14 Sep 2018 13:55:47 +0200
Subject: [PATCH 21/98] remove unneeded async keywords
---
src/components/views/rooms/MemberList.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js
index d1eacf5396..6a00c88d37 100644
--- a/src/components/views/rooms/MemberList.js
+++ b/src/components/views/rooms/MemberList.js
@@ -168,7 +168,7 @@ module.exports = React.createClass({
}
},
- onRoom: async function(room) {
+ onRoom: function(room) {
if (room.roomId !== this.props.roomId) {
return;
}
@@ -182,7 +182,7 @@ module.exports = React.createClass({
this._loadMembersIfNeeded();
},
- onRoomMembership: async function(ev, member, oldMembership) {
+ onRoomMembership: function(ev, member, oldMembership) {
const cli = MatrixClientPeg.get();
const myId = cli.getUserId();
if (member.userId === myId && oldMembership !== "join" && member.membership === "join") {
From 62c763da600de4c9ef64aed328115dfe8920a0ef Mon Sep 17 00:00:00 2001
From: Victor Grousset
Date: Fri, 14 Sep 2018 11:52:01 +0000
Subject: [PATCH 22/98] Translated using Weblate (Esperanto)
Currently translated at 87.8% (1100 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/eo/
---
src/i18n/strings/eo.json | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json
index 10171f9ee3..9caecebc90 100644
--- a/src/i18n/strings/eo.json
+++ b/src/i18n/strings/eo.json
@@ -53,9 +53,9 @@
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "La dosiero «%(fileName)s» estas tro granda por la hejma servilo",
"Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Averto: ajna persono aldonita al komunumo estos publike videbla al iu ajn, kiu konas la identigilon de tiu komunumo",
"Which rooms would you like to add to this community?": "Kiujn ĉambrojn vi volas aldoni al ĉi tiu komunumo?",
- "Show these rooms to non-members on the community page and room list?": "Ĉu la ĉambroj montriĝu al malanoj en la komunuma paĝo kaj listo de ĉambroj?",
+ "Show these rooms to non-members on the community page and room list?": "Montri tiujn babilejojn al malanoj en la komunuma paĝo kaj listo de babilejoj?",
"Add rooms to the community": "Aldoni ĉambrojn al la komunumo",
- "Room name or alias": "Nomo aŭ kromnomo de ĉambro",
+ "Room name or alias": "Nomo aŭ kromnomo de babilejo",
"Add to community": "Aldoni al komunumo",
"Failed to invite the following users to %(groupId)s:": "Malsukcesis inviti jenajn uzantojn al %(groupId)s:",
"Failed to invite users to community": "Malsukcesis inviti novajn uzantojn al komunumo",
@@ -74,28 +74,28 @@
"Who would you like to communicate with?": "Kun kiu vi volas komuniki?",
"Email, name or matrix ID": "Retpoŝtadreso, nomo, aŭ Matrix-identigaĵo",
"Start Chat": "Komenci babilon",
- "Invite new room members": "Inviti novajn ĉambranojn",
- "Who would you like to add to this room?": "Kiun vi ŝatus aldoni al tiu ĉi ĉambro?",
+ "Invite new room members": "Inviti novajn babilejanojn",
+ "Who would you like to add to this room?": "Kiun vi ŝatus aldoni al tiu ĉi babilejo?",
"Send Invites": "Sendi invitojn",
"Failed to invite user": "Malsukcesis inviti uzanton",
"Operation failed": "Ago malsukcesis",
"Failed to invite": "Invito malsukcesis",
- "Failed to invite the following users to the %(roomName)s room:": "Malsukcesis inviti la jenajn uzantojn al la ĉambro %(roomName)s:",
+ "Failed to invite the following users to the %(roomName)s room:": "Malsukcesis inviti la jenajn uzantojn al la babilejo %(roomName)s:",
"You need to be logged in.": "Vi devas saluti.",
"You need to be able to invite users to do that.": "Vi bezonas permeson inviti uzantojn por tio.",
"Unable to create widget.": "Fenestraĵo ne kreeblas.",
"Failed to send request.": "Malsukcesis sendi peton.",
- "This room is not recognised.": "Ĉi tiu ĉambro ne estas rekonita.",
+ "This room is not recognised.": "Ĉi tiu babilejo ne estas rekonita.",
"Power level must be positive integer.": "Nivelo de potenco devas esti entjero pozitiva.",
- "You are not in this room.": "Vi ne estas en tiu ĉi ĉambro.",
- "You do not have permission to do that in this room.": "Vi ne havas permeson fari tion en tiu ĉi ĉambro.",
+ "You are not in this room.": "Vi ne estas en tiu ĉi babilejo.",
+ "You do not have permission to do that in this room.": "Vi ne havas permeson fari tion en tiu babilejo.",
"Missing room_id in request": "En peto mankas «room_id»",
- "Room %(roomId)s not visible": "Ĉambro %(roomId)s ne videblas",
+ "Room %(roomId)s not visible": "babilejo %(roomId)s ne videblas",
"Missing user_id in request": "En peto mankas «user_id»",
"Usage": "Uzo",
"/ddg is not a command": "/ddg ne estas komando",
"To use it, just wait for autocomplete results to load and tab through them.": "Por uzi ĝin, atendu aperon de sugestaj rezultoj, kaj tabu tra ili.",
- "Unrecognised room alias:": "Nerekonita ĉambra alinomo:",
+ "Unrecognised room alias:": "Nerekonita babileja kromnomo:",
"Ignored user": "Malatentata uzanto",
"You are now ignoring %(userId)s": "Vi nun malatentas uzanton %(userId)s",
"Unignored user": "Reatentata uzanto",
@@ -413,7 +413,7 @@
"No users have specific privileges in this room": "Neniuj uzantoj havas specialajn privilegiojn en tiu ĉi ĉambro",
"Banned users": "Forbaritaj uzantoj",
"This room is not accessible by remote Matrix servers": "Ĉi tiu ĉambro ne atingeblas por foraj serviloj de Matrix",
- "Leave room": "Eliri el ĉambro",
+ "Leave room": "Eliri babilejon",
"Favourite": "Ŝatata",
"Tagged as: ": "Etikedita kiel: ",
"To link to a room it must have an address.": "Por esti ligebla, ĉambro devas havi adreson.",
@@ -874,13 +874,13 @@
"Unbans user with given id": "Malforbaras uzanton kun la donita identigaĵo",
"Define the power level of a user": "Difini la potencan nivelon de uzanto",
"Deops user with given id": "Senestrigas uzanton kun donita identigaĵo",
- "Invites user with given id to current room": "Invitas uzanton kun donita identigaĵo al la nuna ĉambro",
- "Joins room with given alias": "Aliĝigas al ĉambro kun la donita kromnomo",
- "Sets the room topic": "Agordas la ĉambran temon",
+ "Invites user with given id to current room": "Invitas uzanton per identigilo al la nuna babilejo",
+ "Joins room with given alias": "Aliĝas al babilejo per kromnomo",
+ "Sets the room topic": "Agordas la babilejan temon",
"Kicks user with given id": "Forpelas uzanton kun la donita identigaĵo",
"Changes your display nickname": "Ŝanĝas vian vidigan nomon",
"Searches DuckDuckGo for results": "Serĉas rezultojn per DuckDuckGo",
- "Changes colour scheme of current room": "Ŝanĝas kolorsĥemon de la nuna ĉambro",
+ "Changes colour scheme of current room": "Ŝanĝas kolorskemon de la nuna babilejo",
"Verifies a user, device, and pubkey tuple": "Kontrolas opon de uzanto, aparato, kaj publika ŝlosilo",
"Ignores a user, hiding their messages from you": "Malatentas uzanton, kaŝante ĝiajn mesaĝojn de vi",
"Stops ignoring a user, showing their messages going forward": "Ĉesas malatenti uzanton, montronte ĝiajn pluajn mesaĝojn",
From 8ed411cd439dc0c1956b2b89e96a372be9ccaa16 Mon Sep 17 00:00:00 2001
From: Milena Brum
Date: Thu, 13 Sep 2018 15:59:15 +0000
Subject: [PATCH 23/98] Translated using Weblate (Spanish)
Currently translated at 99.7% (1249 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/es/
---
src/i18n/strings/es.json | 263 ++++++++++++++++++++-------------------
1 file changed, 132 insertions(+), 131 deletions(-)
diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json
index 9a1a67c883..bdbe9232c3 100644
--- a/src/i18n/strings/es.json
+++ b/src/i18n/strings/es.json
@@ -15,11 +15,11 @@
"and %(count)s others...|other": "y otros %(count)s...",
"and %(count)s others...|one": "y otro más...",
"%(names)s and %(lastPerson)s are typing": "%(names)s y %(lastPerson)s están escribiendo",
- "A new password must be entered.": "Debes ingresar una nueva contraseña.",
+ "A new password must be entered.": "Debes ingresar una contraseña nueva.",
"%(senderName)s answered the call.": "%(senderName)s contestó la llamada.",
"An error has occurred.": "Un error ha ocurrido.",
- "Anyone who knows the room's link, apart from guests": "Cualquiera que sepa el enlace de la sala, salvo invitados",
- "Anyone who knows the room's link, including guests": "Cualquiera que sepa del enlace de la sala, incluyendo los invitados",
+ "Anyone who knows the room's link, apart from guests": "Cualquier persona que conozca el enlace a esta sala, excepto huéspedes",
+ "Anyone who knows the room's link, including guests": "Cualquier persona que conozca el enlace a esta sala, incluyendo huéspedes",
"Are you sure?": "¿Estás seguro?",
"Are you sure you want to reject the invitation?": "¿Estás seguro que quieres rechazar la invitación?",
"Attachment": "Adjunto",
@@ -28,10 +28,10 @@
"Ban": "Vetar",
"Banned users": "Usuarios vetados",
"Bans user with given id": "Veta al usuario con la ID dada",
- "Blacklisted": "En lista negra",
+ "Blacklisted": "Prohibido",
"Bulk Options": "Opciones masivas",
"Call Timeout": "Tiempo de espera de la llamada",
- "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "No se puede conectar al servidor via HTTP, cuando es necesario un enlace HTTPS en la barra de direcciones de tu navegador. Ya sea usando HTTPS o habilitando los scripts inseguros.",
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "No se puede conectar al servidor doméstico via HTTP, cuando es necesario un enlace HTTPS en la barra de direcciones de tu navegador. Ya sea usando HTTPS o habilitando los scripts inseguros.",
"Can't load user settings": "No se puede cargar los ajustes de usuario",
"Change Password": "Cambiar Contraseña",
"%(senderName)s changed their profile picture.": "%(senderName)s cambió su imagen de perfil.",
@@ -39,7 +39,7 @@
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s cambió el nombre de la sala a %(roomName)s.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s cambió el tema a \"%(topic)s\".",
"Changes to who can read history will only apply to future messages in this room": "Cambios para quien pueda leer el historial solo serán aplicados a futuros mensajes en la sala",
- "Changes your display nickname": "Cambia la visualización de tu apodo",
+ "Changes your display nickname": "Cambia tu apodo público",
"Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "El cambio de contraseña restablecerá actualmente todas las claves de cifrado de extremo a extremo de todos los dispositivos, haciendo que el historial de chat cifrado sea ilegible, a menos que primero exporte las claves de la habitación y vuelva a importarlas después. En el futuro esto será mejorado.",
"Claimed Ed25519 fingerprint key": "Clave de huella digital Ed25519 reclamada",
"Clear Cache and Reload": "Borrar Caché y Recargar",
@@ -69,17 +69,17 @@
"Deactivate Account": "Desactivar Cuenta",
"Deactivate my account": "Desactivar mi cuenta",
"Decrypt %(text)s": "Descifrar %(text)s",
- "Decryption error": "Error al decifrar",
+ "Decryption error": "Error de descifrado",
"Delete": "Eliminar",
- "Deops user with given id": "Deops usuario con ID dado",
+ "Deops user with given id": "Degrada al usuario con la ID dada",
"Default": "Por defecto",
- "Device ID": "ID del dispositivo",
+ "Device ID": "ID de Dispositivo",
"Devices": "Dispositivos",
"Devices will not yet be able to decrypt history from before they joined the room": "Los dispositivos todavía no podrán descifrar el historial desde antes de unirse a la sala",
"Direct chats": "Conversaciones directas",
"Disinvite": "Deshacer invitación",
"Display name": "Nombre público",
- "Displays action": "Mostrar acción",
+ "Displays action": "Muestra la acción",
"Don't send typing notifications": "No enviar notificaciones de estar escribiendo",
"Download %(text)s": "Descargar %(text)s",
"Drop here to tag %(section)s": "Suelta aquí para etiquetar %(section)s",
@@ -89,21 +89,21 @@
"Email, name or matrix ID": "Correo electrónico, nombre o Matrix ID",
"Emoji": "Emoticones",
"Enable encryption": "Habilitar cifrado",
- "Encrypted messages will not be visible on clients that do not yet implement encryption": "Los mensajes cifrados no serán visibles en los clientes que aún no implementen el cifrado",
+ "Encrypted messages will not be visible on clients that do not yet implement encryption": "Los mensajes cifrados no serán visibles en clientes que aún no implementen el cifrado",
"Encrypted room": "Sala encriptada",
"%(senderName)s ended the call.": "%(senderName)s finalizó la llamada.",
- "End-to-end encryption information": "Información de encriptación de extremo a extremo",
+ "End-to-end encryption information": "Información de cifrado de extremo a extremo",
"End-to-end encryption is in beta and may not be reliable": "El cifrado de extremo a extremo está en beta y puede no ser confiable",
"Enter Code": "Ingresar Código",
"Error": "Error",
"Error decrypting attachment": "Error al descifrar adjunto",
- "Event information": "Información del evento",
+ "Event information": "Información de eventos",
"Existing Call": "Llamada existente",
- "Export E2E room keys": "Exportar claves E2E de la sala",
+ "Export E2E room keys": "Exportar claves de salas con Cifrado de Extremo a Extremo",
"Failed to ban user": "Bloqueo del usuario falló",
"Failed to change password. Is your password correct?": "No se pudo cambiar la contraseña. ¿Está usando la correcta?",
"Failed to change power level": "Falló al cambiar de nivel de acceso",
- "Failed to forget room %(errCode)s": "Falló al olvidar la sala %(errCode)s",
+ "Failed to forget room %(errCode)s": "No se pudo olvidar la sala %(errCode)s",
"Failed to join room": "No se pudo unir a la sala",
"Failed to kick": "Falló al expulsar",
"Failed to leave room": "No se pudo salir de la sala",
@@ -112,9 +112,9 @@
"Failed to reject invite": "Falló al rechazar invitación",
"Failed to reject invitation": "Falló al rechazar la invitación",
"Failed to save settings": "No se pudieron guardar los ajustes",
- "Failed to send email": "Falló al enviar el correo",
- "Failed to send request.": "Falló al enviar la solicitud.",
- "Failed to set avatar.": "Falló al establecer el avatar.",
+ "Failed to send email": "No se pudo enviar el correo electrónico",
+ "Failed to send request.": "El envío de la solicitud falló.",
+ "Failed to set avatar.": "Falló al establecer avatar.",
"Failed to set display name": "No se pudo establecer el nombre público",
"Failed to set up conference call": "Falló al configurar la llamada en conferencia",
"Failed to toggle moderator status": "Falló al cambiar estatus de moderador",
@@ -129,19 +129,19 @@
"Forget room": "Olvidar sala",
"Forgot your password?": "¿Olvidaste tu contraseña?",
"For security, this session has been signed out. Please sign in again.": "Por seguridad, esta sesión ha sido cerrada. Por favor inicia sesión nuevamente.",
- "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "Por seguridad, al cerrar la sesión borrará cualquier clave de encriptación de extremo a extremo en este navegador. Si quieres ser capaz de descifrar tu historial de conversación, para las futuras sesiones en Riot, por favor exporta las claves de la sala para protegerlas.",
+ "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "Por seguridad, al cerrar la sesión borrará cualquier clave de cifrado de extremo a extremo en este navegador. Si quieres ser capaz de descifrar tu historial de conversación, para las futuras sesiones en Riot, por favor exporta las claves de la sala para protegerlas.",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s a %(toPowerLevel)s",
"Guests cannot join this room even if explicitly invited.": "Invitados no pueden unirse a esta sala aun cuando han sido invitados explícitamente.",
"Hangup": "Colgar",
"Hide read receipts": "Ocultar recibos de lectura",
"Hide Text Formatting Toolbar": "Ocultar barra de herramientas de formato de texto",
"Historical": "Histórico",
- "Homeserver is": "El servidor es",
+ "Homeserver is": "El Servidor Doméstico es",
"Identity Server is": "El Servidor de Identidad es",
"I have verified my email address": "He verificado mi dirección de correo electrónico",
- "Import E2E room keys": "Importar claves E2E de la sala",
+ "Import E2E room keys": "Importar claves de salas con Cifrado de Extremo a Extremo",
"Incorrect verification code": "Verificación de código incorrecta",
- "Interface Language": "Idioma de la interfaz",
+ "Interface Language": "Idioma de la Interfaz",
"Invalid alias format": "Formato de alias inválido",
"Invalid address format": "Formato de dirección inválida",
"Invalid Email Address": "Dirección de Correo Electrónico Inválida",
@@ -149,17 +149,17 @@
"%(senderName)s invited %(targetName)s.": "%(senderName)s invitó a %(targetName)s.",
"Invite new room members": "Invitar nuevos miembros a la sala",
"Invites": "Invitaciones",
- "Invites user with given id to current room": "Invitar a usuario con ID dado a esta sala",
+ "Invites user with given id to current room": "Invita al usuario con la ID dada a la sala actual",
"'%(alias)s' is not a valid format for an address": "'%(alias)s' no es un formato válido para una dirección",
- "'%(alias)s' is not a valid format for an alias": "'%(alias)s' no es un formato válido para un alias",
+ "'%(alias)s' is not a valid format for an alias": "'%(alias)s' no es un formato de alias válido",
"%(displayName)s is typing": "%(displayName)s está escribiendo",
"Sign in with": "Quiero iniciar sesión con",
"Join Room": "Unirse a la Sala",
"%(targetName)s joined the room.": "%(targetName)s se unió a la sala.",
- "Joins room with given alias": "Unirse a la sala con el alias dado",
+ "Joins room with given alias": "Se une a la sala con el alias dado",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s expulsó a %(targetName)s.",
"Kick": "Expulsar",
- "Kicks user with given id": "Expulsar usuario con ID dado",
+ "Kicks user with given id": "Expulsa al usuario con la ID dada",
"Labs": "Laboratorios",
"Leave room": "Salir de la sala",
"%(targetName)s left the room.": "%(targetName)s salió de la sala.",
@@ -178,7 +178,7 @@
"Camera": "Cámara",
"Hide removed messages": "Ocultar mensajes eliminados",
"Alias (optional)": "Alias (opcional)",
- "Anyone": "Cualquiera",
+ "Anyone": "Todos",
"Click here to join the discussion!": "¡Haz clic aquí para unirte a la discusión!",
"Close": "Cerrar",
"%(count)s new messages|one": "%(count)s mensaje nuevo",
@@ -188,17 +188,17 @@
"Custom level": "Nivel personalizado",
"Decline": "Rechazar",
"Device already verified!": "¡El dispositivo ya ha sido verificado!",
- "Device ID:": "ID del dispositivo:",
- "device id: ": "id del dispositvo: ",
+ "Device ID:": "ID de Dispositivo:",
+ "device id: ": "ID de dispositivo: ",
"Disable Notifications": "Deshabilitar Notificaciones",
"Email address (optional)": "Dirección de correo electrónico (opcional)",
- "Enable Notifications": "Activar notificaciones",
+ "Enable Notifications": "Habilitar Notificaciones",
"Encrypted by a verified device": "Cifrado por un dispositivo verificado",
"Encrypted by an unverified device": "Cifrado por un dispositivo sin verificar",
"Encryption is enabled in this room": "El cifrado está habilitado en esta sala",
"Encryption is not enabled in this room": "El cifrado no está habilitado en esta sala",
- "Enter passphrase": "Introduzca contraseña",
- "Error: Problem communicating with the given homeserver.": "Error: No es posible comunicar con el servidor indicado.",
+ "Enter passphrase": "Ingresar frase de contraseña",
+ "Error: Problem communicating with the given homeserver.": "Error: No es posible comunicar con el servidor doméstico indicado.",
"Export": "Exportar",
"Failed to fetch avatar URL": "Fallo al obtener la URL del avatar",
"Failed to upload profile picture!": "¡No se pudo subir la imagen de perfil!",
@@ -208,7 +208,7 @@
"Incoming video call from %(name)s": "Llamada de vídeo entrante de %(name)s",
"Incoming voice call from %(name)s": "Llamada de voz entrante de %(name)s",
"Incorrect username and/or password.": "Nombre de usuario y/o contraseña incorrectos.",
- "Invited": "Invitados",
+ "Invited": "Invitado",
"Jump to first unread message.": "Ir al primer mensaje no leído.",
"Last seen": "Visto por última vez",
"Level:": "Nivel:",
@@ -221,14 +221,14 @@
"Please select the destination room for this message": "Por favor, seleccione la sala destino para este mensaje",
"Create new room": "Crear nueva sala",
"Start chat": "Iniciar conversación",
- "New Password": "Nueva Contraseña",
+ "New Password": "Contraseña Nueva",
"Analytics": "Análisis de Estadísticas",
"Options": "Opciones",
"Passphrases must match": "Las contraseñas deben coincidir",
"Passphrase must not be empty": "La contraseña no puede estar en blanco",
- "Export room keys": "Exportar las claves de la sala",
- "Confirm passphrase": "Confirmar contraseña",
- "Import room keys": "Importar las claves de la sala",
+ "Export room keys": "Exportar claves de sala",
+ "Confirm passphrase": "Confirmar frase de contraseña",
+ "Import room keys": "Importar claves de sala",
"File to import": "Fichero a importar",
"You must join the room to see its files": "Debes unirte a la sala para ver sus archivos",
"Reject all %(invitedRooms)s invites": "Rechazar todas las invitaciones a %(invitedRooms)s",
@@ -238,17 +238,17 @@
"Failed to invite the following users to the %(roomName)s room:": "No se pudo invitar a los siguientes usuarios a la sala %(roomName)s:",
"Unknown error": "Error desconocido",
"Incorrect password": "Contraseña incorrecta",
- "To continue, please enter your password.": "Para continuar, introduzca su contraseña.",
+ "To continue, please enter your password.": "Para continuar, ingresa tu contraseña por favor.",
"Device name": "Nombre de dispositivo",
"Device Name": "Nombre de Dispositivo",
"Device key": "Clave de dispositivo",
- "In future this verification process will be more sophisticated.": "En el futuro este proceso de verificación será mejorado.",
- "Verify device": "Verifique el dispositivo",
- "I verify that the keys match": "Confirmo que las claves coinciden",
+ "In future this verification process will be more sophisticated.": "En el futuro, este proceso de verificación será más sofisticado.",
+ "Verify device": "Verificar dispositivo",
+ "I verify that the keys match": "Verifico que las claves coinciden",
"Unable to restore session": "No se puede recuperar la sesión",
"Room Colour": "Color de la sala",
"Room contains unknown devices": "La sala contiene dispositivos desconocidos",
- "Room name (optional)": "Nombre de la sala (opcional)",
+ "Room name (optional)": "Nombre de sala (opcional)",
"%(roomName)s does not exist.": "%(roomName)s no existe.",
"%(roomName)s is not accessible at this time.": "%(roomName)s no es accesible en este momento.",
"Rooms": "Salas",
@@ -269,7 +269,7 @@
"Server may be unavailable, overloaded, or the file too big": "El servidor podría estar saturado o desconectado, o el fichero ser demasiado grande",
"Server may be unavailable, overloaded, or you hit a bug.": "El servidor podría estar saturado o desconectado, o encontraste un fallo.",
"Server unavailable, overloaded, or something else went wrong.": "Servidor saturado, desconectado, o alguien ha roto algo.",
- "Session ID": "ID de sesión",
+ "Session ID": "ID de Sesión",
"%(senderName)s set a profile picture.": "%(senderName)s estableció una imagen de perfil.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s estableció %(displayName)s como su nombre público.",
"Settings": "Ajustes",
@@ -296,9 +296,9 @@
"You may need to manually permit Riot to access your microphone/webcam": "Probablemente necesite dar permisos manualmente a Riot para su micrófono/cámara",
"Are you sure you want to leave the room '%(roomName)s'?": "¿Está seguro de que desea abandonar la sala '%(roomName)s'?",
"Are you sure you want to upload the following files?": "¿Está seguro que desea enviar los siguientes archivos?",
- "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "No se puede conectar al servidor - compruebe su conexión, asegúrese de que el certificado SSL del servidor es de confiaza, y compruebe que no hay extensiones del navegador bloqueando las peticiones.",
+ "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "No se puede conectar al servidor doméstico - compruebe su conexión, asegúrese de que el certificado SSL del servidor es de confiaza, y compruebe que no hay extensiones del navegador bloqueando las peticiones.",
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s eliminó el nombre de la sala.",
- "Device key:": "Clave del dispositivo:",
+ "Device key:": "Clave de dispositivo:",
"Drop File Here": "Deje el fichero aquí",
"Guest access is disabled on this Home Server.": "El acceso de invitados está desactivado en este Servidor Doméstico.",
"Join as voice or video.": "Unirse con voz o vídeo.",
@@ -307,27 +307,27 @@
"Markdown is enabled": "Markdown está activado",
"matrix-react-sdk version:": "Versión de matrix-react-sdk:",
"Message not sent due to unknown devices being present": "Mensaje no enviado debido a la presencia de dispositivos desconocidos",
- "Missing room_id in request": "Falta el ID de sala en la petición",
- "Missing user_id in request": "Falta el ID de usuario en la petición",
+ "Missing room_id in request": "Falta el room_id en la solicitud",
+ "Missing user_id in request": "Falta el user_id en la solicitud",
"Mobile phone number": "Número telefónico de móvil",
"Mobile phone number (optional)": "Número telefónico de móvil (opcional)",
"Moderator": "Moderador",
"Mute": "Silenciar",
"%(serverName)s Matrix ID": "%(serverName)s ID de Matrix",
"Name": "Nombre",
- "Never send encrypted messages to unverified devices from this device": "No enviar nunca mensajes cifrados, desde este dispositivo, a dispositivos sin verificar",
- "Never send encrypted messages to unverified devices in this room from this device": "No enviar nunca mensajes cifrados a dispositivos no verificados, en esta sala, desde este dispositivo",
- "New address (e.g. #foo:%(localDomain)s)": "Nueva dirección (ej: #foo:%(localDomain)s)",
- "New password": "Nueva contraseña",
- "New passwords don't match": "Las nuevas contraseñas no coinciden",
- "New passwords must match each other.": "Las nuevas contraseñas deben coincidir.",
+ "Never send encrypted messages to unverified devices from this device": "Nunca enviar mensajes cifrados a dispositivos sin verificar desde este dispositivo",
+ "Never send encrypted messages to unverified devices in this room from this device": "Nunca enviar mensajes cifrados a dispositivos sin verificar en esta sala desde este dispositivo",
+ "New address (e.g. #foo:%(localDomain)s)": "Dirección nueva (ej. #foo:%(localDomain)s)",
+ "New password": "Contraseña nueva",
+ "New passwords don't match": "Las contraseñas nuevas no coinciden",
+ "New passwords must match each other.": "Las contraseñas nuevas deben coincidir.",
"none": "ninguno",
"not set": "sin configurar",
"not specified": "sin especificar",
"Notifications": "Notificaciones",
"(not supported by this browser)": "(no soportado por este navegador)",
"": "",
- "NOT verified": "NO verificado",
+ "NOT verified": "SIN verificar",
"No devices with registered encryption keys": "No hay dispositivos con claves de cifrado registradas",
"No display name": "Sin nombre público",
"No more results": "No hay más resultados",
@@ -345,29 +345,29 @@
"Permissions": "Permisos",
"Phone": "Teléfono",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s ha hecho una llamada de tipo %(callType)s.",
- "Please check your email and click on the link it contains. Once this is done, click continue.": "Por favor, compruebe su e-mail y pulse el enlace que contiene. Una vez esté hecho, pulse continuar.",
- "Power level must be positive integer.": "El nivel debe ser un entero positivo.",
+ "Please check your email and click on the link it contains. Once this is done, click continue.": "Por favor, consulta tu correo electrónico y haz clic en el enlace que contiene. Una vez hecho esto, haz clic en continuar.",
+ "Power level must be positive integer.": "El nivel de autoridad debe ser un número entero positivo.",
"Privacy warning": "Advertencia de privacidad",
"Private Chat": "Conversación privada",
"Privileged Users": "Usuarios con privilegios",
"Profile": "Perfil",
"Public Chat": "Sala pública",
- "Reason": "Razón",
- "Reason: %(reasonText)s": "Razón: %(reasonText)s",
+ "Reason": "Motivo",
+ "Reason: %(reasonText)s": "Motivo: %(reasonText)s",
"Revoke Moderator": "Eliminar Moderador",
"Refer a friend to Riot:": "Informar a un amigo sobre Riot:",
"Register": "Registrar",
"%(targetName)s rejected the invitation.": "%(targetName)s rechazó la invitación.",
"Reject invitation": "Rechazar invitación",
"Rejoin": "Volver a unirse",
- "Remote addresses for this room:": "Dirección remota de esta sala:",
+ "Remote addresses for this room:": "Direcciones remotas para esta sala:",
"Remove Contact Information?": "¿Eliminar información del contacto?",
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s eliminó su nombre público (%(oldDisplayName)s).",
"%(senderName)s removed their profile picture.": "%(senderName)s eliminó su imagen de perfil.",
"Remove": "Eliminar",
"Remove %(threePid)s?": "¿Eliminar %(threePid)s?",
"%(senderName)s requested a VoIP conference.": "%(senderName)s solicitó una conferencia de vozIP.",
- "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Reiniciar la contraseña también reiniciará las claves de cifrado extremo-a-extremo, haciendo ilegible el historial de las conversaciones, salvo que exporte previamente las claves de sala, y las importe posteriormente. Esto será mejorado en futuras versiones.",
+ "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Reiniciar la contraseña también reiniciará las claves de cifrado de extremo a extremo, haciendo ilegible el historial de las conversaciones, salvo que exporte previamente las claves de sala, y las importe posteriormente. Esto será mejorado en futuras versiones.",
"Results from DuckDuckGo": "Resultados desde DuckDuckGo",
"Return to login screen": "Regresar a la pantalla de inicio de sesión",
"Riot does not have permission to send you notifications - please check your browser settings": "Riot no tiene permisos para enviarle notificaciones - por favor, revisa los ajustes de tu navegador",
@@ -379,7 +379,7 @@
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Mostrar marcas temporales en formato de 12 horas (ej. 2:30pm)",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "La clave de firma que usted ha proporcionado coincide con la recibida del dispositivo %(deviceId)s de %(userId)s. Dispositivo verificado.",
"This email address is already in use": "Esta dirección de correo electrónico ya está en uso",
- "This email address was not found": "Esta dirección de correo electrónico no se encontró",
+ "This email address was not found": "No se encontró esta dirección de correo electrónico",
"The email address linked to your account must be entered.": "Debes ingresar la dirección de correo electrónico vinculada a tu cuenta.",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "El fichero '%(fileName)s' supera el tamaño máximo permitido en este servidor doméstico",
"The file '%(fileName)s' failed to upload": "No se pudo subir '%(fileName)s'",
@@ -388,7 +388,7 @@
"This invitation was sent to an email address which is not associated with this account:": "Esta invitación fue enviada a una dirección de correo electrónico que no está asociada a esta cuenta:",
"This room has no local addresses": "Esta sala no tiene direcciones locales",
"This room is not recognised.": "Esta sala no se reconoce.",
- "These are experimental features that may break in unexpected ways": "Estas son funcionalidades experimentales, podrían fallar de formas imprevistas",
+ "These are experimental features that may break in unexpected ways": "Estas son funcionalidades experimentales que pueden romperse de maneras inesperadas",
"The visibility of existing history will be unchanged": "La visibilidad del historial previo no se verá afectada",
"This doesn't appear to be a valid email address": "Esto no parece un e-mail váido",
"This is a preview of this room. Room interactions have been disabled": "Esta es una vista previa de esta sala. Las interacciones dentro de la sala se han deshabilitado",
@@ -404,11 +404,11 @@
"Room directory": "Directorio de salas",
"Custom Server Options": "Opciones de Servidor Personalizado",
"unknown error code": "Código de error desconocido",
- "Start verification": "Comenzar la verificación",
+ "Start verification": "Iniciar verificación",
"Skip": "Omitir",
"To return to your account in future you need to set a password": "Para volver a usar su cuenta en el futuro es necesario que establezca una contraseña",
"Share without verifying": "Compartir sin verificar",
- "Ignore request": "Ignorar la solicitud",
+ "Ignore request": "Ignorar solicitud",
"Do you want to set an email address?": "¿Quieres poner una dirección de correo electrónico?",
"This will allow you to reset your password and receive notifications.": "Esto te permitirá reiniciar tu contraseña y recibir notificaciones.",
"Authentication check failed: incorrect password?": "La verificación de autenticación falló: ¿contraseña incorrecta?",
@@ -417,7 +417,7 @@
"Allow": "Permitir",
"Changes colour scheme of current room": "Cambia el esquema de colores de esta sala",
"Delete widget": "Eliminar widget",
- "Define the power level of a user": "Definir el nivel de poder de los usuarios",
+ "Define the power level of a user": "Define el nivel de autoridad de un usuario",
"Edit": "Editar",
"Enable automatic language detection for syntax highlighting": "Activar la detección automática del lenguaje para resaltar la sintaxis",
"Hide join/leave messages (invites/kicks/bans unaffected)": "Ocultar mensajes de unirse/salir (no afecta a invitaciones/expulsiones/vetos)",
@@ -429,7 +429,7 @@
"Turn Markdown on": "Activar markdown",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s activó el cifrado de extremo a extremo (algoritmo %(algorithm)s).",
"Unable to add email address": "No es posible añadir la dirección de correo electrónico",
- "Unable to create widget.": "No se ha podido crear el widget.",
+ "Unable to create widget.": "No es posible crear el componente.",
"Unable to remove contact information": "No se ha podido eliminar la información de contacto",
"Unable to verify email address.": "No es posible verificar la dirección de correo electrónico.",
"Unban": "Quitar Veto",
@@ -440,7 +440,7 @@
"Unable to load device list": "No se ha podido cargar la lista de dispositivos",
"Undecryptable": "No se puede descifrar",
"Unencrypted room": "Sala sin cifrado",
- "Unencrypted message": "Mensaje no cifrado",
+ "Unencrypted message": "Mensaje sin cifrar",
"unknown caller": "Persona que llama desconocida",
"unknown device": "dispositivo desconocido",
"Unknown room %(roomId)s": "Sala desconocida %(roomId)s",
@@ -457,13 +457,13 @@
"Upload new:": "Subir nuevo:",
"Usage": "Uso",
"Use compact timeline layout": "Usar diseño de cronología compacto",
- "Use with caution": "Usar con precaución",
- "User ID": "Identificación de usuario",
- "User Interface": "Interfaz de usuario",
+ "Use with caution": "Utilizar con precaución",
+ "User ID": "ID de Usuario",
+ "User Interface": "Interfaz de Usuario",
"User name": "Nombre de usuario",
"Username invalid: %(errMessage)s": "Nombre de usuario no válido: %(errMessage)s",
"Users": "Usuarios",
- "Verification Pending": "Verificación pendiente",
+ "Verification Pending": "Verificación Pendiente",
"Verification": "Verificación",
"verified": "verificado",
"Verified": "Verificado",
@@ -487,8 +487,8 @@
"Would you like to accept or decline this invitation?": "¿Quiere aceptar o rechazar esta invitación?",
"You already have existing direct chats with this user:": "Ya tiene conversaciones directas con este usuario:",
"You are already in a call.": "Ya está participando en una llamada.",
- "You are not in this room.": "Usted no está en esta sala.",
- "You do not have permission to do that in this room.": "No tiene permiso para hacer esto en esta sala.",
+ "You are not in this room.": "No estás en esta sala.",
+ "You do not have permission to do that in this room.": "No tienes permiso para realizar esa acción en esta sala.",
"You're not in any rooms yet! Press to make a room or to browse the directory": "¡Todavía no participa en ninguna sala! Pulsa para crear una sala o para explorar el directorio",
"You are trying to access %(roomName)s.": "Estás intentando acceder a %(roomName)s.",
"You cannot place a call with yourself.": "No puede iniciar una llamada con usted mismo.",
@@ -513,7 +513,7 @@
"You do not have permission to post to this room": "No tienes permiso para publicar en esta sala",
"You have been banned from %(roomName)s by %(userName)s.": "Has sido vetado de %(roomName)s por %(userName)s.",
"You have been invited to join this room by %(inviterName)s": "Ha sido invitado por %(inviterName)s a unirte a esta sala",
- "You have been kicked from %(roomName)s by %(userName)s.": "Ha sido removido de %(roomName)s por %(userName)s.",
+ "You have been kicked from %(roomName)s by %(userName)s.": "Has sido expulsado de %(roomName)s por %(userName)s.",
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Se ha cerrado sesión en todos tus dispositivos y ya no recibirás notificaciones push. Para volver a habilitar las notificaciones, vuelve a iniciar sesión en cada dispositivo",
"You have disabled URL previews by default.": "Ha deshabilitado la vista previa de URL por defecto.",
"You have enabled URL previews by default.": "Ha habilitado vista previa de URL por defecto.",
@@ -523,7 +523,7 @@
"You need to be able to invite users to do that.": "Usted debe ser capaz de invitar usuarios para hacer eso.",
"You need to be logged in.": "Necesita estar autenticado.",
"You need to enter a user name.": "Tiene que ingresar un nombre de usuario.",
- "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Su correo electrónico parece no estar asociado con una ID de Matrix en este Homeserver.",
+ "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Su correo electrónico parece no estar asociado con una ID de Matrix en este Servidor Doméstico.",
"Your password has been reset": "Tu contraseña fue restablecida",
"Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Su contraseña a sido cambiada exitosamente. No recibirá notificaciones en otros dispositivos hasta que ingrese de nuevo en ellos",
"You seem to be in a call, are you sure you want to quit?": "Parece estar en medio de una llamada, ¿esta seguro que desea salir?",
@@ -565,13 +565,13 @@
"The version of Riot.im": "La versión de Riot.im",
"Whether or not you're logged in (we don't record your user name)": "Estés identificado o no (no almacenamos tu nombre de usuario)",
"Your language of choice": "El idioma que has elegido",
- "Your homeserver's URL": "La URL de tu servidor",
+ "Your homeserver's URL": "La URL de tu servidor doméstico",
"Your identity server's URL": "La URL de tu servidor de identidad",
"The information being sent to us to help make Riot.im better includes:": "La información remitida a nosotros para ayudar a mejorar Riot.im incluye:",
"Drop here to demote": "Suelta aquí para degradar",
"Whether or not you're using the Richtext mode of the Rich Text Editor": "Estés o no usando el modo Richtext del Editor de Texto Enriquecido",
"Who would you like to add to this community?": "¿A quién deseas añadir a esta comunidad?",
- "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Advertencia: cualquier persona que añadas a una comunidad será públicamente visible a cualquiera que conozca el ID de la comunidad",
+ "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Advertencia: cualquier persona que añadas a una comunidad será públicamente visible a cualquier persona que conozca la ID de la comunidad",
"Invite new community members": "Invita nuevos miembros a la comunidad",
"Name or matrix ID": "Nombre o ID de matrix",
"Invite to Community": "Invitar a la comunidad",
@@ -579,7 +579,7 @@
"Fetching third party location failed": "Falló la obtención de la ubicación de un tercero",
"A new version of Riot is available.": "Una nueva versión de Riot está disponible.",
"I understand the risks and wish to continue": "Entiendo los riesgos y deseo continuar",
- "Couldn't load home page": "No se puede cargar la página principal",
+ "Couldn't load home page": "No se puede cargar la página de inicio",
"Send Account Data": "Enviar Datos de la Cuenta",
"Advanced notification settings": "Ajustes avanzados de notificaciones",
"Uploading report": "Enviando informe",
@@ -598,7 +598,7 @@
"Expand panel": "Expandir panel",
"On": "Encendido",
"%(count)s Members|other": "%(count)s miembros",
- "Filter room names": "Filtrar los nombres de las salas",
+ "Filter room names": "Filtrar los nombres de salas",
"Changelog": "Registro de cambios",
"Waiting for response from server": "Esperando una respuesta del servidor",
"Leave": "Salir",
@@ -714,7 +714,7 @@
"Riot does not know how to join a room on this network": "Riot no sabe cómo unirse a una sala en esta red",
"Set Password": "Establecer contraseña",
"Enable audible notifications in web client": "Habilitar notificaciones audibles en el cliente web",
- "Off": "Apagado",
+ "Off": "Desactivado",
"#example": "#ejemplo",
"Mentions only": "Solo menciones",
"Failed to remove tag %(tagName)s from room": "Error al eliminar la etiqueta %(tagName)s de la sala",
@@ -742,7 +742,7 @@
"Your device resolution": "La resolución de tu dispositivo",
"There are unknown devices in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "Hay dispositivos desconocidos en esta sala: si procede sin verificarlos, será posible que alguien escuche su llamada.",
"Which officially provided instance you are using, if any": "Cuál instancia ofrecida oficialmente está usando, si existe",
- "e.g. %(exampleValue)s": "e.g %(exampleValue)s",
+ "e.g. %(exampleValue)s": "ej. %(exampleValue)s",
"e.g. ": "e.g. ",
"Where this page includes identifiable information, such as a room, user or group ID, that data is removed before being sent to the server.": "Donde esta página incluye información identificable, como sala, usuario o ID del grupo, esa información se elimina antes de enviarla al servidor.",
"A conference call could not be started because the intgrations server is not available": "No se pudo iniciar una llamada de conferencia porque el servidor de integraciones no está disponible",
@@ -757,7 +757,7 @@
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s",
"Show these rooms to non-members on the community page and room list?": "¿Mostrar estas salas a personas no registradas en la página de la comunidad y la lista de salas?",
"Add rooms to the community": "Agregar salas a la comunidad",
- "Room name or alias": "Nombre o alias de la sala",
+ "Room name or alias": "Nombre o alias de sala",
"Add to community": "Agregar a comunidad",
"Failed to invite the following users to %(groupId)s:": "No se pudo invitar a los usuarios siguientes a %(groupId)s:",
"Failed to invite users to community": "Falló la invitación de usuarios a la comunidad",
@@ -776,8 +776,8 @@
"%(oldDisplayName)s changed their display name to %(displayName)s.": "%(oldDisplayName)s cambió su nombre público a %(displayName)s.",
"%(senderName)s changed the pinned messages for the room.": "%(senderName)s cambió los mensajes con chincheta en la sala.",
"%(widgetName)s widget modified by %(senderName)s": "el widget %(widgetName)s fue modificado por %(senderName)s",
- "%(widgetName)s widget added by %(senderName)s": "el widget %(widgetName)s fue agregado por %(senderName)s",
- "%(widgetName)s widget removed by %(senderName)s": "el %(widgetName)s fue eliminado por %(senderName)s",
+ "%(widgetName)s widget added by %(senderName)s": "componente %(widgetName)s añadido por %(senderName)s",
+ "%(widgetName)s widget removed by %(senderName)s": "componente %(widgetName)s eliminado por %(senderName)s",
"%(names)s and %(count)s others are typing|other": "%(names)s y otros %(count)s están escribiendo",
"%(names)s and %(count)s others are typing|one": "%(names)s y otro más están escribiendo",
"Your browser does not support the required cryptography extensions": "Su navegador no soporta las extensiones de criptografía requeridas",
@@ -785,7 +785,7 @@
"Message Pinning": "Mensajes con chincheta",
"Jitsi Conference Calling": "Llamadas de conferencia Jitsi",
"Disable Emoji suggestions while typing": "Deshabilitar sugerencias de Emoji mientras escribe",
- "Hide avatar changes": "Ocultar cambios del avatar",
+ "Hide avatar changes": "Ocultar cambios de avatar",
"Hide display name changes": "Ocultar cambios de nombre público",
"Always show encryption icons": "Mostrar siempre iconos de cifrado",
"Hide avatars in user and room mentions": "Ocultar avatares en las menciones de usuarios y salas",
@@ -873,7 +873,7 @@
"Drop here to restore": "Soltar aquí para restaurar",
"Community Invites": "Invitaciones a comunidades",
"You have no historical rooms": "No tienes salas históricas",
- "You have been kicked from this room by %(userName)s.": "Ha sido echado de esta sala por %(userName)s.",
+ "You have been kicked from this room by %(userName)s.": "Has sido expulsado de esta sala por %(userName)s.",
"You have been banned from this room by %(userName)s.": "Has sido vetado de esta sala por %(userName)s.",
"You are trying to access a room.": "Estás intentando acceder a una sala.",
"To change the room's avatar, you must be a": "Para cambiar el avatar de la sala, debe ser un",
@@ -894,24 +894,24 @@
"%(user)s is a %(userRole)s": "%(user)s es un %(userRole)s",
"Muted Users": "Usuarios Silenciados",
"To send events of type , you must be a": "Para enviar eventos del tipo , debe ser un",
- "Members only (since the point in time of selecting this option)": "Sólo miembros (desde el instante desde que se selecciona esta opción)",
- "Members only (since they were invited)": "Sólo miembros (desde que fueron invitados)",
- "Members only (since they joined)": "Sólo miembros (desde que se unieron)",
+ "Members only (since the point in time of selecting this option)": "Solo miembros (desde el momento en que se selecciona esta opción)",
+ "Members only (since they were invited)": "Solo miembros (desde que fueron invitados)",
+ "Members only (since they joined)": "Solo miembros (desde que se unieron)",
"You don't currently have any stickerpacks enabled": "Actualmente no tienes ningún paquete de pegatinas habilitado",
"Add a stickerpack": "Añadir un paquete de pegatinas",
"Stickerpack": "Paquete de pegatinas",
"Hide Stickers": "Ocultar Pegatinas",
"Show Stickers": "Mostrar Pegatinas",
"Addresses": "Direcciones",
- "Invalid community ID": "ID de comunidad no válido",
- "'%(groupId)s' is not a valid community ID": "'%(groupId)s' no es un ID de comunidad válido",
+ "Invalid community ID": "ID de comunidad inválida",
+ "'%(groupId)s' is not a valid community ID": "'%(groupId)s' no es una ID de comunidad válida",
"Flair": "Insignia",
"Showing flair for these communities:": "Mostrar insignias de estas comunidades:",
- "This room is not showing flair for any communities": "Esta sala no está mostrando las insignias de las comunidades",
- "New community ID (e.g. +foo:%(localDomain)s)": "Nuevo ID de comunidad (e.g. +foo:%(localDomain)s)",
+ "This room is not showing flair for any communities": "Esta sala no está mostrando insignias para ninguna comunidad",
+ "New community ID (e.g. +foo:%(localDomain)s)": "Nueva ID de comunidad (ej. +foo:%(localDomain)s)",
"URL previews are enabled by default for participants in this room.": "La vista previa de URL se activa por defecto en los participantes de esta sala.",
"URL previews are disabled by default for participants in this room.": "La vista previa se desactiva por defecto para los participantes de esta sala.",
- "In encrypted rooms, like this one, URL previews are disabled by default to ensure that your homeserver (where the previews are generated) cannot gather information about links you see in this room.": "En salas cifradas, como ésta, la vista previa de la URL se desactivan por defecto para asegurar que el homeserver (donde se generan) no puede recopilar información de los enlaces que vea en esta sala.",
+ "In encrypted rooms, like this one, URL previews are disabled by default to ensure that your homeserver (where the previews are generated) cannot gather information about links you see in this room.": "En salas cifradas, como ésta, la vista previa de la URL se desactivan por defecto para asegurar que el servidor doméstico (donde se generan) no puede recopilar información de los enlaces que vea en esta sala.",
"URL Previews": "Vista previa de URL",
"When someone puts a URL in their message, a URL preview can be shown to give more information about that link such as the title, description, and an image from the website.": "Cuando alguien pone una URL en su mensaje, una vista previa se mostrará para ofrecer información sobre el enlace, tal como título, descripción, y una imagen del sitio Web.",
"Error decrypting audio": "Error al descifrar el sonido",
@@ -984,9 +984,9 @@
"Reload widget": "Recargar widget",
"Popout widget": "Widget en ventana externa",
"Picture": "Fotografía",
- "Unblacklist": "Lista de no bloqueados",
- "Blacklist": "Lista negra",
- "Unverify": "No verificar",
+ "Unblacklist": "Dejar de Prohibir",
+ "Blacklist": "Prohibir",
+ "Unverify": "Anular Verificación",
"Verify...": "Verificar...",
"Communities": "Comunidades",
"%(nameList)s %(transitionList)s": "%(nameList)s %(transitionList)s",
@@ -1034,7 +1034,7 @@
"%(severalUsers)schanged their name %(count)s times|one": "%(severalUsers)s cambiaron su nombre",
"%(oneUser)schanged their name %(count)s times|other": "%(oneUser)s cambió su nombre %(count)s veces",
"%(oneUser)schanged their name %(count)s times|one": "%(oneUser)s cambió su nombre",
- "%(severalUsers)schanged their avatar %(count)s times|other": "%(severalUsers)s cambió su avatar %(count)s veces",
+ "%(severalUsers)schanged their avatar %(count)s times|other": "%(severalUsers)s cambiaron su avatar %(count)s veces",
"%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)s cambiaron su avatar",
"%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)s cambió su avatar %(count)s veces",
"%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)s cambió su avatar",
@@ -1059,29 +1059,29 @@
"Start Chatting": "Iniciar Conversación",
"Confirm Removal": "Confirmar Eliminación",
"Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "¿Está seguro de querer eliminar (borrar) este evento? Tenga en cuenta que si borra el nombre de una sala o cambia el tema, podría deshacer el cambio.",
- "Community IDs cannot be empty.": "Los IDs de comunidad no pueden estar vacíos.",
- "Community IDs may only contain characters a-z, 0-9, or '=_-./'": "Los IDs de comunidad sólo pueden contener caracteres a-z, 0-9, ó '=_-./'",
+ "Community IDs cannot be empty.": "Las IDs de comunidad no pueden estar vacías.",
+ "Community IDs may only contain characters a-z, 0-9, or '=_-./'": "Las IDs de comunidad sólo pueden contener caracteres a-z, 0-9, ó '=_-./'",
"Something went wrong whilst creating your community": "Algo fue mal mientras se creaba la comunidad",
"Create Community": "Crear Comunidad",
- "Community Name": "Nombre de la Comunidad",
+ "Community Name": "Nombre de Comunidad",
"Example": "Ejemplo",
- "Community ID": "ID de la Comunidad",
+ "Community ID": "ID de Comunidad",
"example": "ejemplo",
"Create": "Crear",
"Advanced options": "Opciones avanzadas",
- "Block users on other matrix homeservers from joining this room": "Impedir que usuarios de otros homeservers se unan a esta sala",
+ "Block users on other matrix homeservers from joining this room": "Impedir que usuarios de otros servidores domésticos se unan a esta sala",
"This setting cannot be changed later!": "¡Este ajuste no se puede cambiar más tarde!",
"Failed to indicate account erasure": "Falló la indicación de eliminado de la cuenta",
- "This will make your account permanently unusable. You will not be able to log in, and no one will be able to re-register the same user ID. This will cause your account to leave all rooms it is participating in, and it will remove your account details from your identity server. This action is irreversible.": "Una vez realizada esta acción, la cuenta no será posible utilizarla de forma permanente. No podrá ingresar con ella, y nadie será capaz de volver a registrar el mismo ID de usuario. También abandonará todas las salas en las que participaba,y eliminará los detalles del servidor de identidad. Esta acción es irreversible.",
- "Deactivating your account does not by default cause us to forget messages you have sent. If you would like us to forget your messages, please tick the box below.": "La desactivación de su cuenta no supone por defecto que los mensajes enviados se olviden. Si así lo desea, por favor, active la caja de selección inferior.",
- "Message visibility in Matrix is similar to email. Our forgetting your messages means that messages you have sent will not be shared with any new or unregistered users, but registered users who already have access to these messages will still have access to their copy.": "La visibilidad de los mensajes en la red es similar al correo electrónico. El olvido de los mismos implica que los mensajes que haya enviado no se compartirán con ningún usuario nuevo o no registrado, pero aquellos usuarios registrados que ya tenían acceso a los mensajes seguirán teniendo acceso a su copia.",
- "Please forget all messages I have sent when my account is deactivated (Warning: this will cause future users to see an incomplete view of conversations)": "Por favor, olvide todos los mensajes enviados cuando se desactive mi cuenta. (Advertencia: esto provocará que los usuarios futuros vean conversaciones incompletas)",
- "To continue, please enter your password:": "Para continuar, por favor introduzca su contraseña:",
+ "This will make your account permanently unusable. You will not be able to log in, and no one will be able to re-register the same user ID. This will cause your account to leave all rooms it is participating in, and it will remove your account details from your identity server. This action is irreversible.": "Esto hará que tu cuenta quede permanentemente inutilizable. No podrás iniciar sesión, y nadie podrá volver a registrar la misma ID de usuario. Esto hará que tu cuenta salga de todas las salas en las cuales participa, y eliminará los datos de tu cuenta de tu servidor de identidad. Esta acción es irreversible.",
+ "Deactivating your account does not by default cause us to forget messages you have sent. If you would like us to forget your messages, please tick the box below.": "Desactivar tu cuenta no hace que por defecto olvidemos los mensajes que has enviado. Si quieres que olvidemos tus mensajes, por favor marca la casilla a continuación.",
+ "Message visibility in Matrix is similar to email. Our forgetting your messages means that messages you have sent will not be shared with any new or unregistered users, but registered users who already have access to these messages will still have access to their copy.": "La visibilidad de mensajes en Matrix es similar a la del correo electrónico. Que olvidemos tus mensajes implica que los mensajes que hayas enviado no se compartirán con ningún usuario nuevo o no registrado, pero aquellos usuarios registrados que ya tengan acceso a estos mensajes seguirán teniendo acceso a su copia.",
+ "Please forget all messages I have sent when my account is deactivated (Warning: this will cause future users to see an incomplete view of conversations)": "Por favor, olvida todos los mensajes enviados al desactivar mi cuenta. (Advertencia: esto provocará que los usuarios futuros vean conversaciones incompletas)",
+ "To continue, please enter your password:": "Para continuar, ingresa tu contraseña por favor:",
"password": "contraseña",
- "To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "Para verificar que este dispositivo es de confianza, por favor, contacte con su propietario usando otros medios (e.g. en persona o por llamada telefónica) y pregúnteles si la clave que ven su Ajustes de Usuario para este dispositivo concuerda con la inferior:",
- "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Si son la misma, presione el botón inferior de verificar. Si no lo son, entonces alguien más está interceptando este dispositivo y probablemente quiera presionar el botón de lista negra en su lugar.",
- "You added a new device '%(displayName)s', which is requesting encryption keys.": "Agregó un dispositivo nuevo '%(displayName)s', el cual está solicitando claves de cifrado.",
- "Your unverified device '%(displayName)s' is requesting encryption keys.": "Su dispositivo sin verificar '%(displayName)s' está solicitando claves de cifrado.",
+ "To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "Para verificar que este dispositivo es confiable, por favor contacta a su dueño por algún otro medio (ej. cara a cara o por teléfono) y pregúntale si la clave que ve en sus Ajustes de Usuario para este dispositivo coincide con la clave a continuación:",
+ "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Si coincide, oprime el botón de verificar a continuación. Si no coincide, entonces alguien más está interceptando este dispositivo y probablemente prefieras oprimir el botón de prohibir.",
+ "You added a new device '%(displayName)s', which is requesting encryption keys.": "Añadiste un nuevo dispositivo '%(displayName)s', que está solicitando claves de cifrado.",
+ "Your unverified device '%(displayName)s' is requesting encryption keys.": "Tu dispositivo sin verificar '%(displayName)s' está solicitando claves de cifrado.",
"Loading device info...": "Cargando información del dispositivo...",
"Encryption key request": "Solicitud de clave de cifrado",
"Log out and remove encryption keys?": "¿Cerrar sesión y eliminar claves de cifrado?",
@@ -1095,7 +1095,7 @@
"Username not available": "Nombre de usuario no disponible",
"An error occurred: %(error_string)s": "Ocurrió un error: %(error_string)s",
"Username available": "Nombre de usuario disponible",
- "This will be your account name on the homeserver, or you can pick a different server.": "Este será el nombre de su cuenta en el homeserver, o puede elegir un servidor diferente.",
+ "This will be your account name on the homeserver, or you can pick a different server.": "Este será el nombre de su cuenta en el servidor doméstico, o puede elegir un servidor diferente.",
"If you already have a Matrix account you can log in instead.": "Si ya tiene una cuenta de Matrix puede conectarse: log in.",
"Share Room": "Compartir Sala",
"Link to most recent message": "Enlazar a mensaje más reciente",
@@ -1104,7 +1104,7 @@
"Share Room Message": "Compartir Mensaje de Sala",
"Link to selected message": "Enlazar a mensaje seleccionado",
"COPY": "COPIAR",
- "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Está actualmente poniendo en lista negra dispositivos no verificados; para enviar mensajes a los mismos deber verificarlos.",
+ "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Está actualmente prohibiendo dispositivos sin verificar; para enviar mensajes a los mismos deber verificarlos.",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Le recomendamos que efectúe el proceso de verificación con cada dispositivo para confirmar que pertenecen a su propietario legítimo, pero si lo prefiere puede reenviar el mensaje sin verificar.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contiene dispositivos que no ha visto antes.",
"Unknown devices": "Dispositivos desconocidos",
@@ -1157,16 +1157,16 @@
"Failed to load %(groupId)s": "Falló la carga de %(groupId)s",
"This room is not public. You will not be able to rejoin without an invite.": "Esta sala no es pública. No podrá volver a unirse sin una invitación.",
"Can't leave Server Notices room": "No puede abandonar la sala Avisos del Servidor",
- "This room is used for important messages from the Homeserver, so you cannot leave it.": "La sala se usa para mensajes importantes del Homeserver, así que no puede abandonarla.",
+ "This room is used for important messages from the Homeserver, so you cannot leave it.": "La sala se usa para mensajes importantes del Servidor Doméstico, así que no puede abandonarla.",
"Terms and Conditions": "Términos y condiciones",
- "To continue using the %(homeserverDomain)s homeserver you must review and agree to our terms and conditions.": "Para continuar usando el homeserver %(homeserverDomain)s debe revisar y estar de acuerdo con nuestros términos y condiciones.",
+ "To continue using the %(homeserverDomain)s homeserver you must review and agree to our terms and conditions.": "Para continuar usando el servidor doméstico %(homeserverDomain)s debe revisar y estar de acuerdo con nuestros términos y condiciones.",
"Review terms and conditions": "Revisar términos y condiciones",
"Old cryptography data detected": "Se detectó información de criptografía antigua",
"Data from an older version of Riot has been detected. This will have caused end-to-end cryptography to malfunction in the older version. End-to-end encrypted messages exchanged recently whilst using the older version may not be decryptable in this version. This may also cause messages exchanged with this version to fail. If you experience problems, log out and back in again. To retain message history, export and re-import your keys.": "Se detectó una versión más antigua de Riot. Esto habrá provocado que la criptografía de extremo a extremo funcione incorrectamente en la versión más antigua. Los mensajes cifrados de extremo a extremo intercambiados recientemente mientras usaba la versión más antigua puede que no sean descifrables con esta versión. Esto también puede hacer que fallen con la más reciente. Si experimenta problemas, desconecte y vuelva a ingresar. Para conservar el historial de mensajes, exporte y vuelva a importar sus claves.",
"Your Communities": "Sus Comunidades",
"Did you know: you can use communities to filter your Riot.im experience!": "Sabía que: puede usar comunidades para filtrar su experiencia con Riot.im",
"To set up a filter, drag a community avatar over to the filter panel on the far left hand side of the screen. You can click on an avatar in the filter panel at any time to see only the rooms and people associated with that community.": "Para configurar un filtro, arrastre un avatar de comunidad sobre el panel de filtro en la parte izquierda de la pantalla. Puede pulsar sobre un avatar en el panel de filtro en cualquier momento para ver solo las salas y personas asociadas con esa comunidad.",
- "Error whilst fetching joined communities": "Se produjo un error al recuperar las comunidades suscritas",
+ "Error whilst fetching joined communities": "Error al recuperar las comunidades a las que estás unido",
"Create a new community": "Crear una comunidad nueva",
"Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Crear una comunidad para agrupar usuarios y salas. Construye una página de inicio personalizada para destacarla.",
"Show devices, send anyway or cancel.": "Mostrar dispositivos, enviar de todos modos o cancelar.",
@@ -1177,7 +1177,7 @@
"Connectivity to the server has been lost.": "Se perdió la conexión con el servidor.",
"Sent messages will be stored until your connection has returned.": "Los mensajes enviados se almacenarán hasta que vuelva su conexión.",
"Active call": "Llamada activa",
- "There's no one else here! Would you like to invite others or stop warning about the empty room?": "¡No hay nadie aquí! ¿Le gustaría invitar a otros o dejar de avisar de la sala vacía?",
+ "There's no one else here! Would you like to invite others or stop warning about the empty room?": "¡No hay nadie aquí! ¿Le gustaría invitar a otros o dejar de advertir sobre la sala vacía?",
"Room": "Sala",
"Clear filter": "Borrar filtro",
"Light theme": "Tema claro",
@@ -1198,7 +1198,7 @@
"Audio Output": "Salida de Sonido",
"An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "Se envió un correo electrónico a %(emailAddress)s. Una vez hayas seguido el enlace que contiene, haz clic a continuación.",
"Please note you are logging into the %(hs)s server, not matrix.org.": "Por favor, tenga en cuenta que está ingresando en el servidor %(hs)s, no en matrix.org.",
- "This homeserver doesn't offer any login flows which are supported by this client.": "Este homeserver no ofrece flujos de ingreso soportados por este cliente.",
+ "This homeserver doesn't offer any login flows which are supported by this client.": "Este servidor doméstico no ofrece flujos de ingreso soportados por este cliente.",
"Try the app first": "Probar primero la app",
"Sign in to get started": "Ingresar para comenzar",
"Set a display name:": "Establece un nombre público:",
@@ -1214,7 +1214,7 @@
"Notify the whole room": "Notificar a toda la sala",
"Room Notification": "Notificación de Salas",
"This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "Este proceso le permite exportar las claves para los mensajes que haya recibido en salas cifradas a un fichero local. Entonces podrá importar el fichero en otro cliente de Matrix en el futuro, de modo que dicho cliente será capaz de descifrar dichos mensajes.",
- "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "El fichero exportado permitirá a cualquiera que pueda leerlo la tarea de descifrar todo mensaje cifrado que usted pueda ver, así que debe ser cuidadoso en mantenerlo seguro. Para ayudarle, debería introducir una contraseña debajo, la cual usará para cifrar la información exportada. Sólo será posible importar dicha información usando la misma contraseña.",
+ "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "El fichero exportado permitirá a cualquier persona que pueda leerlo la tarea de descifrar todo mensaje cifrado que usted pueda ver, así que debe ser cuidadoso en mantenerlo seguro. Para ayudarle, debería introducir una contraseña debajo, la cual usará para cifrar la información exportada. Sólo será posible importar dicha información usando la misma contraseña.",
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Este proceso permite importar claves de cifrado que había exportado previamente desde otro cliente de Matrix. Entonces será capaz de descifrar todos los mensajes que el otro cliente así hacía.",
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "El fichero de exportación se protegerá con una contraseña. Debería introducir aquí la contraseña para descifrar el fichero.",
"Internal room ID: ": "ID interno de la sala: ",
@@ -1223,21 +1223,21 @@
"This room version is vulnerable to malicious modification of room state.": "La versión de esta sala es vulnerable a la modificación maliciosa de su estado.",
"Click here to upgrade to the latest room version and ensure room integrity is protected.": "Pulse aquí para actualizar a la última versión de la sala y garantizar que se protege su integridad.",
"Only room administrators will see this warning": "Sólo los administradores de la sala verán esta advertencia",
- "Please contact your service administrator to continue using the service.": "Por favor contacte con su administrador del servicio para continuar usándolo.",
- "This homeserver has hit its Monthly Active User limit.": "Este servidor doméstico ha alcanzado su límite de Usuarios Activos Mensual.",
- "This homeserver has exceeded one of its resource limits.": "Este servidor doméstico ha superado uno de sus límites de recursos.",
- "Please contact your service administrator to get this limit increased.": "Por favor, contacte con su administrador del servicio para incrementar este límite.",
- "This homeserver has hit its Monthly Active User limit so some users will not be able to log in.": "Este servidor doméstico ha alcanzado su límite de Usuarios Activos Mensual por lo que algunos usuarios no podrán ingresar.",
- "This homeserver has exceeded one of its resource limits so some users will not be able to log in.": "Este servidor doméstico ha excedido uno de sus límites de recursos por lo que algunos usuarios no podrán ingresar.",
+ "Please contact your service administrator to continue using the service.": "Por favor, contacta al administrador de tu servicio para continuar utilizando el servicio.",
+ "This homeserver has hit its Monthly Active User limit.": "Este servidor doméstico ha alcanzado su límite Mensual de Usuarios Activos.",
+ "This homeserver has exceeded one of its resource limits.": "Este servidor doméstico ha excedido uno de sus límites de recursos.",
+ "Please contact your service administrator to get this limit increased.": "Por favor, contacta al administrador de tu servicio para aumentar este límite.",
+ "This homeserver has hit its Monthly Active User limit so some users will not be able to log in.": "Este servidor doméstico ha alcanzado su límite Mensual de Usuarios Activos, por lo que algunos usuarios no podrán iniciar sesión.",
+ "This homeserver has exceeded one of its resource limits so some users will not be able to log in.": "Este servidor doméstico ha excedido uno de sus límites de recursos, por lo que algunos usuarios no podrán iniciar sesión.",
"Upgrade Room Version": "Actualizar Versión de la Sala",
"Upgrading this room requires closing down the current instance of the room and creating a new room it its place. To give room members the best possible experience, we will:": "La actualización esta sala requiere cerrar la instancia actual de la misma y crear una nueva en su lugar. Para ofrecer a los miembros de la sala la mejor experiencia posible, haremos:",
"Create a new room with the same name, description and avatar": "Crear una sala nueva con el mismo nombre, descripción y avatar",
"Update any local room aliases to point to the new room": "Actualizar los alias locales de la sala para que apunten a la nueva",
"Stop users from speaking in the old version of the room, and post a message advising users to move to the new room": "Impedir a los usuarios que conversen en la versión antigua de la sala, y publicar un mensaje aconsejándoles que se muden a la nueva",
"Put a link back to the old room at the start of the new room so people can see old messages": "Poner un enlace de retorno a la sala antigua al principio de la nueva de modo que se puedan ver los mensajes viejos",
- "Your message wasn't sent because this homeserver has hit its Monthly Active User Limit. Please contact your service administrator to continue using the service.": "Su mensaje no se pudo enviar porque el servidor doméstico ha alcanzado el Límite Mensual de Usuarios Activos. Por favor contacte con su administrador del servicio para continuar usando el servicio.",
- "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Su mensaje no se envió porque este servidor doméstico ha excedido un límite de recursos. Por favor contacte con su administrador del servicio para continuar usando el servicio.",
- "Please contact your service administrator to continue using this service.": "Por favor contacte con su administrador del servicio para continuar usando este servicio.",
+ "Your message wasn't sent because this homeserver has hit its Monthly Active User Limit. Please contact your service administrator to continue using the service.": "Tu mensaje no se envió porque este servidor doméstico ha alcanzado su Límite Mensual de Usuarios Activos. Por favor, contacta al administrador de tu servicio para continuar utilizando el servicio.",
+ "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Su mensaje no se envió porque este servidor doméstico ha excedido un límite de recursos. Por favor contacta al administrador de tu servicio para continuar utilizando el servicio.",
+ "Please contact your service administrator to continue using this service.": "Por favor, contacta al administrador de tu servicio para continuar utilizando este servicio.",
"Increase performance by only loading room members on first view": "Incrementar el rendimiento cargando sólo los miembros de la sala en la primera vista",
"Lazy loading members not supported": "No se admite la carga diferida de miembros",
"Lazy loading is not supported by your current homeserver.": "La carga lenta no está soportada por su servidor doméstico actual.",
@@ -1249,10 +1249,11 @@
"This room has been replaced and is no longer active.": "Esta sala ha sido reemplazada y ya no está activa.",
"The conversation continues here.": "La conversación continúa aquí.",
"Upgrade room to version %(ver)s": "Actualiza la sala a la versión %(ver)s",
- "This room is a continuation of another conversation.": "Esta sala es la continuación de otra conversación.",
+ "This room is a continuation of another conversation.": "Esta sala es una continuación de otra conversación.",
"Click here to see older messages.": "Haz clic aquí para ver mensajes más antiguos.",
"Failed to upgrade room": "No se pudo actualizar la sala",
"The room upgrade could not be completed": "La actualización de la sala no pudo ser completada",
"Upgrade this room to version %(version)s": "Actualiza esta sala a la versión %(version)s",
- "Legal": "Legal"
+ "Legal": "Legal",
+ "Unable to connect to Homeserver. Retrying...": "No es posible conectarse al Servidor Doméstico. Volviendo a intentar..."
}
From 7fcedbc65d95dbeedff7b45d328e6bfd00fdef9a Mon Sep 17 00:00:00 2001
From: random
Date: Fri, 14 Sep 2018 15:00:24 +0000
Subject: [PATCH 24/98] Translated using Weblate (Italian)
Currently translated at 100.0% (1252 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/it/
---
src/i18n/strings/it.json | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json
index 919d6794eb..6ed632b1b3 100644
--- a/src/i18n/strings/it.json
+++ b/src/i18n/strings/it.json
@@ -1265,5 +1265,9 @@
"Click here to see older messages.": "Clicca qui per vedere i messaggi precedenti.",
"Failed to upgrade room": "Aggiornamento stanza fallito",
"The room upgrade could not be completed": "Non è stato possibile completare l'aggiornamento della stanza",
- "Upgrade this room to version %(version)s": "Aggiorna questa stanza alla versione %(version)s"
+ "Upgrade this room to version %(version)s": "Aggiorna questa stanza alla versione %(version)s",
+ "Registration Required": "Registrazione necessaria",
+ "You need to register to do this. Would you like to register now?": "Devi registrarti per eseguire questa azione. Vuoi registrarti ora?",
+ "Unable to connect to Homeserver. Retrying...": "Impossibile connettersi all'homeserver. Riprovo...",
+ "Unable to query for supported registration methods": "Impossibile richiedere i metodi di registrazione supportati"
}
From 86cbe34181c3705953e83dcfe3e67a49bce836e5 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Fri, 14 Sep 2018 18:35:16 +0200
Subject: [PATCH 25/98] rerender after members are loaded so pills and RR get
rerendered
---
src/components/structures/RoomView.js | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js
index 3a2a80f06a..2715a5698d 100644
--- a/src/components/structures/RoomView.js
+++ b/src/components/structures/RoomView.js
@@ -585,18 +585,23 @@ module.exports = React.createClass({
this._loadMembersIfJoined();
},
- _loadMembersIfJoined: function() {
+ _loadMembersIfJoined: async function() {
// lazy load members if enabled
if (SettingsStore.isFeatureEnabled('feature_lazyloading')) {
const cli = MatrixClientPeg.get();
const room = cli.getRoom(this.state.roomId);
if (room && room.getMyMembership() === 'join') {
- room.loadMembersIfNeeded().catch((err) => {
+ try {
+ await room.loadMembersIfNeeded();
+ if (!this.unmounted) {
+ this.forceUpdate();
+ }
+ } catch(err) {
const errorMessage = `Fetching room members for ${room.roomId} failed.` +
" Room members will appear incomplete.";
console.error(errorMessage);
console.error(err);
- });
+ }
}
}
},
From 599697ca2f83a0564ab346cc1f3da87a80284872 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Sun, 16 Sep 2018 19:08:31 +0100
Subject: [PATCH 26/98] fix merge on i18n
---
src/i18n/strings/en_EN.json | 411 ------------------------------------
1 file changed, 411 deletions(-)
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 70e6f80f96..6c42b0a005 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -973,417 +973,6 @@
"Share message history with new users": "Share message history with new users",
"Encrypt room": "Encrypt room",
"You must register to use this functionality": "You must register to use this functionality",
- "You must join the room to see its files": "You must join the room to see its files",
- "There are no visible files in this room": "There are no visible files in this room",
- "
HTML for your community's page
\n
\n Use the long description to introduce new members to the community, or distribute\n some important links\n
\n
\n You can even use 'img' tags\n
\n": "
HTML for your community's page
\n
\n Use the long description to introduce new members to the community, or distribute\n some important links\n
\n
\n You can even use 'img' tags\n
\n",
- "Add rooms to the community summary": "Add rooms to the community summary",
- "Which rooms would you like to add to this summary?": "Which rooms would you like to add to this summary?",
- "Add to summary": "Add to summary",
- "Failed to add the following rooms to the summary of %(groupId)s:": "Failed to add the following rooms to the summary of %(groupId)s:",
- "Add a Room": "Add a Room",
- "Failed to remove the room from the summary of %(groupId)s": "Failed to remove the room from the summary of %(groupId)s",
- "The room '%(roomName)s' could not be removed from the summary.": "The room '%(roomName)s' could not be removed from the summary.",
- "Add users to the community summary": "Add users to the community summary",
- "Who would you like to add to this summary?": "Who would you like to add to this summary?",
- "Failed to add the following users to the summary of %(groupId)s:": "Failed to add the following users to the summary of %(groupId)s:",
- "Add a User": "Add a User",
- "Failed to remove a user from the summary of %(groupId)s": "Failed to remove a user from the summary of %(groupId)s",
- "The user '%(displayName)s' could not be removed from the summary.": "The user '%(displayName)s' could not be removed from the summary.",
- "Failed to upload image": "Failed to upload image",
- "Failed to update community": "Failed to update community",
- "Unable to accept invite": "Unable to accept invite",
- "Unable to join community": "Unable to join community",
- "Leave Community": "Leave Community",
- "Leave %(groupName)s?": "Leave %(groupName)s?",
- "Unable to leave community": "Unable to leave community",
- "Community Settings": "Community Settings",
- "Changes made to your community name and avatar might not be seen by other users for up to 30 minutes.": "Changes made to your community name and avatar might not be seen by other users for up to 30 minutes.",
- "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.",
- "Add rooms to this community": "Add rooms to this community",
- "Featured Rooms:": "Featured Rooms:",
- "Featured Users:": "Featured Users:",
- "%(inviter)s has invited you to join this community": "%(inviter)s has invited you to join this community",
- "Join this community": "Join this community",
- "Leave this community": "Leave this community",
- "You are an administrator of this community": "You are an administrator of this community",
- "You are a member of this community": "You are a member of this community",
- "Who can join this community?": "Who can join this community?",
- "Everyone": "Everyone",
- "Your community hasn't got a Long Description, a HTML page to show to community members. Click here to open settings and give it one!": "Your community hasn't got a Long Description, a HTML page to show to community members. Click here to open settings and give it one!",
- "Long Description (HTML)": "Long Description (HTML)",
- "Description": "Description",
- "Community %(groupId)s not found": "Community %(groupId)s not found",
- "This Home server does not support communities": "This Home server does not support communities",
- "Failed to load %(groupId)s": "Failed to load %(groupId)s",
- "Couldn't load home page": "Couldn't load home page",
- "Login": "Login",
- "Failed to reject invitation": "Failed to reject invitation",
- "This room is not public. You will not be able to rejoin without an invite.": "This room is not public. You will not be able to rejoin without an invite.",
- "Are you sure you want to leave the room '%(roomName)s'?": "Are you sure you want to leave the room '%(roomName)s'?",
- "Failed to leave room": "Failed to leave room",
- "Can't leave Server Notices room": "Can't leave Server Notices room",
- "This room is used for important messages from the Homeserver, so you cannot leave it.": "This room is used for important messages from the Homeserver, so you cannot leave it.",
- "Signed Out": "Signed Out",
- "For security, this session has been signed out. Please sign in again.": "For security, this session has been signed out. Please sign in again.",
- "Terms and Conditions": "Terms and Conditions",
- "To continue using the %(homeserverDomain)s homeserver you must review and agree to our terms and conditions.": "To continue using the %(homeserverDomain)s homeserver you must review and agree to our terms and conditions.",
- "Review terms and conditions": "Review terms and conditions",
- "Old cryptography data detected": "Old cryptography data detected",
- "Data from an older version of Riot has been detected. This will have caused end-to-end cryptography to malfunction in the older version. End-to-end encrypted messages exchanged recently whilst using the older version may not be decryptable in this version. This may also cause messages exchanged with this version to fail. If you experience problems, log out and back in again. To retain message history, export and re-import your keys.": "Data from an older version of Riot has been detected. This will have caused end-to-end cryptography to malfunction in the older version. End-to-end encrypted messages exchanged recently whilst using the older version may not be decryptable in this version. This may also cause messages exchanged with this version to fail. If you experience problems, log out and back in again. To retain message history, export and re-import your keys.",
- "Logout": "Logout",
- "Your Communities": "Your Communities",
- "Did you know: you can use communities to filter your Riot.im experience!": "Did you know: you can use communities to filter your Riot.im experience!",
- "To set up a filter, drag a community avatar over to the filter panel on the far left hand side of the screen. You can click on an avatar in the filter panel at any time to see only the rooms and people associated with that community.": "To set up a filter, drag a community avatar over to the filter panel on the far left hand side of the screen. You can click on an avatar in the filter panel at any time to see only the rooms and people associated with that community.",
- "Error whilst fetching joined communities": "Error whilst fetching joined communities",
- "Create a new community": "Create a new community",
- "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.",
- "You have no visible notifications": "You have no visible notifications",
- "Members": "Members",
- "%(count)s Members|other": "%(count)s Members",
- "%(count)s Members|one": "%(count)s Member",
- "Invite to this room": "Invite to this room",
- "Files": "Files",
- "Notifications": "Notifications",
- "Hide panel": "Hide panel",
- "Invite to this community": "Invite to this community",
- "Failed to get protocol list from Home Server": "Failed to get protocol list from Home Server",
- "The Home Server may be too old to support third party networks": "The Home Server may be too old to support third party networks",
- "Failed to get public room list": "Failed to get public room list",
- "The server may be unavailable or overloaded": "The server may be unavailable or overloaded",
- "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Delete the room alias %(alias)s and remove %(name)s from the directory?",
- "Remove %(name)s from the directory?": "Remove %(name)s from the directory?",
- "Remove from Directory": "Remove from Directory",
- "remove %(name)s from the directory.": "remove %(name)s from the directory.",
- "delete the alias.": "delete the alias.",
- "Unable to join network": "Unable to join network",
- "Riot does not know how to join a room on this network": "Riot does not know how to join a room on this network",
- "Room not found": "Room not found",
- "Couldn't find a matching Matrix room": "Couldn't find a matching Matrix room",
- "Fetching third party location failed": "Fetching third party location failed",
- "Unable to look up room ID from server": "Unable to look up room ID from server",
- "Directory": "Directory",
- "Search for a room": "Search for a room",
- "#example": "#example",
- "Scroll to bottom of page": "Scroll to bottom of page",
- "Message not sent due to unknown devices being present": "Message not sent due to unknown devices being present",
- "Show devices, send anyway or cancel.": "Show devices, send anyway or cancel.",
- "You can't send any messages until you review and agree to our terms and conditions.": "You can't send any messages until you review and agree to our terms and conditions.",
- "Your message wasn't sent because this homeserver has hit its Monthly Active User Limit. Please contact your service administrator to continue using the service.": "Your message wasn't sent because this homeserver has hit its Monthly Active User Limit. Please contact your service administrator to continue using the service.",
- "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.",
- "%(count)s of your messages have not been sent.|other": "Some of your messages have not been sent.",
- "%(count)s of your messages have not been sent.|one": "Your message was not sent.",
- "%(count)s Resend all or cancel all now. You can also select individual messages to resend or cancel.|other": "Resend all or cancel all now. You can also select individual messages to resend or cancel.",
- "%(count)s Resend all or cancel all now. You can also select individual messages to resend or cancel.|one": "Resend message or cancel message now.",
- "Connectivity to the server has been lost.": "Connectivity to the server has been lost.",
- "Sent messages will be stored until your connection has returned.": "Sent messages will be stored until your connection has returned.",
- "%(count)s new messages|other": "%(count)s new messages",
- "%(count)s new messages|one": "%(count)s new message",
- "Active call": "Active call",
- "There's no one else here! Would you like to invite others or stop warning about the empty room?": "There's no one else here! Would you like to invite others or stop warning about the empty room?",
- "more": "more",
- "You seem to be uploading files, are you sure you want to quit?": "You seem to be uploading files, are you sure you want to quit?",
- "You seem to be in a call, are you sure you want to quit?": "You seem to be in a call, are you sure you want to quit?",
- "Failed to upload file": "Failed to upload file",
- "Server may be unavailable, overloaded, or the file too big": "Server may be unavailable, overloaded, or the file too big",
- "Search failed": "Search failed",
- "Server may be unavailable, overloaded, or search timed out :(": "Server may be unavailable, overloaded, or search timed out :(",
- "No more results": "No more results",
- "Unknown room %(roomId)s": "Unknown room %(roomId)s",
- "Room": "Room",
- "Failed to save settings": "Failed to save settings",
- "Failed to reject invite": "Failed to reject invite",
- "Fill screen": "Fill screen",
- "Click to unmute video": "Click to unmute video",
- "Click to mute video": "Click to mute video",
- "Click to unmute audio": "Click to unmute audio",
- "Click to mute audio": "Click to mute audio",
- "Expand panel": "Expand panel",
- "Collapse panel": "Collapse panel",
- "Filter room names": "Filter room names",
- "Clear filter": "Clear filter",
- "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.",
- "Tried to load a specific point in this room's timeline, but was unable to find it.": "Tried to load a specific point in this room's timeline, but was unable to find it.",
- "Failed to load timeline position": "Failed to load timeline position",
- "Uploading %(filename)s and %(count)s others|other": "Uploading %(filename)s and %(count)s others",
- "Uploading %(filename)s and %(count)s others|zero": "Uploading %(filename)s",
- "Uploading %(filename)s and %(count)s others|one": "Uploading %(filename)s and %(count)s other",
- "Light theme": "Light theme",
- "Dark theme": "Dark theme",
- "Status.im theme": "Status.im theme",
- "Can't load user settings": "Can't load user settings",
- "Server may be unavailable or overloaded": "Server may be unavailable or overloaded",
- "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.",
- "Success": "Success",
- "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them",
- "Remove Contact Information?": "Remove Contact Information?",
- "Remove %(threePid)s?": "Remove %(threePid)s?",
- "Unable to remove contact information": "Unable to remove contact information",
- "Refer a friend to Riot:": "Refer a friend to Riot:",
- "Interface Language": "Interface Language",
- "User Interface": "User Interface",
- "Autocomplete Delay (ms):": "Autocomplete Delay (ms):",
- "": "",
- "Import E2E room keys": "Import E2E room keys",
- "Cryptography": "Cryptography",
- "Device ID:": "Device ID:",
- "Device key:": "Device key:",
- "Ignored Users": "Ignored Users",
- "Debug Logs Submission": "Debug Logs Submission",
- "If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.",
- "Riot collects anonymous analytics to allow us to improve the application.": "Riot collects anonymous analytics to allow us to improve the application.",
- "Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.": "Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.",
- "Learn more about how we use analytics.": "Learn more about how we use analytics.",
- "Labs": "Labs",
- "These are experimental features that may break in unexpected ways": "These are experimental features that may break in unexpected ways",
- "Use with caution": "Use with caution",
- "Lazy loading members not supported": "Lazy loading members not supported",
- "Lazy loading is not supported by your current homeserver.": "Lazy loading is not supported by your current homeserver.",
- "Deactivate my account": "Deactivate my account",
- "Legal": "Legal",
- "Clear Cache": "Clear Cache",
- "Clear Cache and Reload": "Clear Cache and Reload",
- "Updates": "Updates",
- "Check for update": "Check for update",
- "Reject all %(invitedRooms)s invites": "Reject all %(invitedRooms)s invites",
- "Bulk Options": "Bulk Options",
- "Desktop specific": "Desktop specific",
- "Start automatically after system login": "Start automatically after system login",
- "No media permissions": "No media permissions",
- "You may need to manually permit Riot to access your microphone/webcam": "You may need to manually permit Riot to access your microphone/webcam",
- "Missing Media Permissions, click here to request.": "Missing Media Permissions, click here to request.",
- "No Audio Outputs detected": "No Audio Outputs detected",
- "No Microphones detected": "No Microphones detected",
- "No Webcams detected": "No Webcams detected",
- "Default Device": "Default Device",
- "Audio Output": "Audio Output",
- "Microphone": "Microphone",
- "Camera": "Camera",
- "VoIP": "VoIP",
- "Email": "Email",
- "Add email address": "Add email address",
- "Profile": "Profile",
- "Display name": "Display name",
- "Account": "Account",
- "To return to your account in future you need to set a password": "To return to your account in future you need to set a password",
- "Logged in as:": "Logged in as:",
- "Access Token:": "Access Token:",
- "click to reveal": "click to reveal",
- "Homeserver is": "Homeserver is",
- "Identity Server is": "Identity Server is",
- "matrix-react-sdk version:": "matrix-react-sdk version:",
- "riot-web version:": "riot-web version:",
- "olm version:": "olm version:",
- "Failed to send email": "Failed to send email",
- "The email address linked to your account must be entered.": "The email address linked to your account must be entered.",
- "A new password must be entered.": "A new password must be entered.",
- "New passwords must match each other.": "New passwords must match each other.",
- "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.",
- "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.",
- "I have verified my email address": "I have verified my email address",
- "Your password has been reset": "Your password has been reset",
- "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device",
- "Return to login screen": "Return to login screen",
- "To reset your password, enter the email address linked to your account": "To reset your password, enter the email address linked to your account",
- "New password": "New password",
- "Confirm your new password": "Confirm your new password",
- "Send Reset Email": "Send Reset Email",
- "Create an account": "Create an account",
- "This Home Server does not support login using email address.": "This Home Server does not support login using email address.",
- "Please contact your service administrator to continue using this service.": "Please contact your service administrator to continue using this service.",
- "Incorrect username and/or password.": "Incorrect username and/or password.",
- "Please note you are logging into the %(hs)s server, not matrix.org.": "Please note you are logging into the %(hs)s server, not matrix.org.",
- "Guest access is disabled on this Home Server.": "Guest access is disabled on this Home Server.",
- "The phone number entered looks invalid": "The phone number entered looks invalid",
- "This homeserver doesn't offer any login flows which are supported by this client.": "This homeserver doesn't offer any login flows which are supported by this client.",
- "Error: Problem communicating with the given homeserver.": "Error: Problem communicating with the given homeserver.",
- "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.",
- "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.",
- "Try the app first": "Try the app first",
- "Sign in to get started": "Sign in to get started",
- "Failed to fetch avatar URL": "Failed to fetch avatar URL",
- "Set a display name:": "Set a display name:",
- "Upload an avatar:": "Upload an avatar:",
- "Unable to query for supported registration methods": "Unable to query for supported registration methods",
- "This server does not support authentication with a phone number.": "This server does not support authentication with a phone number.",
- "Missing password.": "Missing password.",
- "Passwords don't match.": "Passwords don't match.",
- "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Password too short (min %(MIN_PASSWORD_LENGTH)s).",
- "This doesn't look like a valid email address.": "This doesn't look like a valid email address.",
- "This doesn't look like a valid phone number.": "This doesn't look like a valid phone number.",
- "You need to enter a user name.": "You need to enter a user name.",
- "An unknown error occurred.": "An unknown error occurred.",
- "I already have an account": "I already have an account",
- "Commands": "Commands",
- "Results from DuckDuckGo": "Results from DuckDuckGo",
- "Emoji": "Emoji",
- "Notify the whole room": "Notify the whole room",
- "Room Notification": "Room Notification",
- "Users": "Users",
- "unknown device": "unknown device",
- "NOT verified": "NOT verified",
- "verified": "verified",
- "Verification": "Verification",
- "Ed25519 fingerprint": "Ed25519 fingerprint",
- "User ID": "User ID",
- "Curve25519 identity key": "Curve25519 identity key",
- "none": "none",
- "Claimed Ed25519 fingerprint key": "Claimed Ed25519 fingerprint key",
- "Algorithm": "Algorithm",
- "unencrypted": "unencrypted",
- "Decryption error": "Decryption error",
- "Session ID": "Session ID",
- "End-to-end encryption information": "End-to-end encryption information",
- "Event information": "Event information",
- "Sender device information": "Sender device information",
- "Passphrases must match": "Passphrases must match",
- "Passphrase must not be empty": "Passphrase must not be empty",
- "Export room keys": "Export room keys",
- "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.",
- "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.",
- "Enter passphrase": "Enter passphrase",
- "Confirm passphrase": "Confirm passphrase",
- "Export": "Export",
- "Import room keys": "Import room keys",
- "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.",
- "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.",
- "You must join the room to see its files": "You must join the room to see its files",
- "Reject all %(invitedRooms)s invites": "Reject all %(invitedRooms)s invites",
- "Start new chat": "Start new chat",
- "Guest users can't invite users. Please register.": "Guest users can't invite users. Please register.",
- "Failed to invite": "Failed to invite",
- "Failed to invite user": "Failed to invite user",
- "Failed to invite the following users to the %(roomName)s room:": "Failed to invite the following users to the %(roomName)s room:",
- "Confirm Removal": "Confirm Removal",
- "Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.",
- "Unknown error": "Unknown error",
- "Incorrect password": "Incorrect password",
- "This will make your account permanently unusable. You will not be able to re-register the same user ID.": "This will make your account permanently unusable. You will not be able to re-register the same user ID.",
- "This action is irreversible.": "This action is irreversible.",
- "To continue, please enter your password.": "To continue, please enter your password.",
- "To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:",
- "Device name": "Device name",
- "Device Name": "Device Name",
- "Device key": "Device key",
- "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.",
- "In future this verification process will be more sophisticated.": "In future this verification process will be more sophisticated.",
- "Verify device": "Verify device",
- "Verifies a user, device, and pubkey tuple": "Verifies a user, device, and pubkey tuple",
- "I verify that the keys match": "I verify that the keys match",
- "We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.",
- "Unable to restore session": "Unable to restore session",
- "If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.",
- "Continue anyway": "Continue anyway",
- "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?",
- "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.",
- "We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.",
- "\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contains devices that you haven't seen before.",
- "Unknown devices": "Unknown devices",
- "Unknown Address": "Unknown Address",
- "Unblacklist": "Unblacklist",
- "Blacklist": "Blacklist",
- "Unverify": "Unverify",
- "Verify...": "Verify...",
- "ex. @bob:example.com": "ex. @bob:example.com",
- "Add User": "Add User",
- "This Home Server would like to make sure you are not a robot": "This Home Server would like to make sure you are not a robot",
- "Sign in with CAS": "Sign in with CAS",
- "Custom Server Options": "Custom Server Options",
- "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.",
- "This allows you to use this app with an existing Matrix account on a different home server.": "This allows you to use this app with an existing Matrix account on a different home server.",
- "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "You can also set a custom identity server but this will typically prevent interaction with users based on email address.",
- "Dismiss": "Dismiss",
- "Please check your email to continue registration.": "Please check your email to continue registration.",
- "Token incorrect": "Token incorrect",
- "A text message has been sent to": "A text message has been sent to",
- "Please enter the code it contains:": "Please enter the code it contains:",
- "powered by Matrix": "powered by Matrix",
- "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "If you don't specify an email address, you won't be able to reset your password. Are you sure?",
- "You are registering with %(SelectedTeamName)s": "You are registering with %(SelectedTeamName)s",
- "Default server": "Default server",
- "Custom server": "Custom server",
- "Home server URL": "Home server URL",
- "Identity server URL": "Identity server URL",
- "What does this mean?": "What does this mean?",
- "Error decrypting audio": "Error decrypting audio",
- "Error decrypting image": "Error decrypting image",
- "Image '%(Body)s' cannot be displayed.": "Image '%(Body)s' cannot be displayed.",
- "This image cannot be displayed.": "This image cannot be displayed.",
- "Error decrypting video": "Error decrypting video",
- "Add an Integration": "Add an Integration",
- "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?",
- "Removed or unknown message type": "Removed or unknown message type",
- "Disable URL previews by default for participants in this room": "Disable URL previews by default for participants in this room",
- "Disable URL previews for this room (affects only you)": "Disable URL previews for this room (affects only you)",
- "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.",
- "URL Previews": "URL Previews",
- "Enable URL previews for this room (affects only you)": "Enable URL previews for this room (affects only you)",
- "Drop file here to upload": "Drop file here to upload",
- " (unsupported)": " (unsupported)",
- "Ongoing conference call%(supportedText)s.": "Ongoing conference call%(supportedText)s.",
- "for %(amount)ss": "for %(amount)ss",
- "for %(amount)sm": "for %(amount)sm",
- "for %(amount)sh": "for %(amount)sh",
- "for %(amount)sd": "for %(amount)sd",
- "Online": "Online",
- "Idle": "Idle",
- "Offline": "Offline",
- "Updates": "Updates",
- "Check for update": "Check for update",
- "Start chatting": "Start chatting",
- "Start Chatting": "Start Chatting",
- "Click on the button below to start chatting!": "Click on the button below to start chatting!",
- "$senderDisplayName changed the room avatar to ": "$senderDisplayName changed the room avatar to ",
- "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s removed the room avatar.",
- "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s changed the avatar for %(roomName)s",
- "Username available": "Username available",
- "Username not available": "Username not available",
- "Something went wrong!": "Something went wrong!",
- "This will be your account name on the homeserver, or you can pick a different server.": "This will be your account name on the homeserver, or you can pick a different server.",
- "If you already have a Matrix account you can log in instead.": "If you already have a Matrix account you can log in instead.",
- "Your browser does not support the required cryptography extensions": "Your browser does not support the required cryptography extensions",
- "Not a valid Riot keyfile": "Not a valid Riot keyfile",
- "Authentication check failed: incorrect password?": "Authentication check failed: incorrect password?",
- "Disable Peer-to-Peer for 1:1 calls": "Disable Peer-to-Peer for 1:1 calls",
- "Do you want to set an email address?": "Do you want to set an email address?",
- "This will allow you to reset your password and receive notifications.": "This will allow you to reset your password and receive notifications.",
- "To return to your account in future you need to set a password": "To return to your account in future you need to set a password",
- "Skip": "Skip",
- "Start verification": "Start verification",
- "Share without verifying": "Share without verifying",
- "Ignore request": "Ignore request",
- "You added a new device '%(displayName)s', which is requesting encryption keys.": "You added a new device '%(displayName)s', which is requesting encryption keys.",
- "Your unverified device '%(displayName)s' is requesting encryption keys.": "Your unverified device '%(displayName)s' is requesting encryption keys.",
- "Encryption key request": "Encryption key request",
- "Autocomplete Delay (ms):": "Autocomplete Delay (ms):",
- "This Home server does not support groups": "This Home server does not support groups",
- "Loading device info...": "Loading device info...",
- "Groups": "Groups",
- "Create a new group": "Create a new group",
- "Create Group": "Create Group",
- "Group Name": "Group Name",
- "Example": "Example",
- "Create": "Create",
- "Group ID": "Group ID",
- "+example:%(domain)s": "+example:%(domain)s",
- "Group IDs must be of the form +localpart:%(domain)s": "Group IDs must be of the form +localpart:%(domain)s",
- "It is currently only possible to create groups on your own home server: use a group ID ending with %(domain)s": "It is currently only possible to create groups on your own home server: use a group ID ending with %(domain)s",
- "Room creation failed": "Room creation failed",
- "You are a member of these groups:": "You are a member of these groups:",
- "Create a group to represent your community! Define a set of rooms and your own custom homepage to mark out your space in the Matrix universe.": "Create a group to represent your community! Define a set of rooms and your own custom homepage to mark out your space in the Matrix universe.",
- "Join an existing group": "Join an existing group",
- "To join an existing group you'll have to know its group identifier; this will look something like +example:matrix.org.": "To join an existing group you'll have to know its group identifier; this will look something like +example:matrix.org.",
- "Featured Rooms:": "Featured Rooms:",
- "Error whilst fetching joined groups": "Error whilst fetching joined groups",
- "Featured Users:": "Featured Users:",
- "Edit Group": "Edit Group",
- "Automatically replace plain text Emoji": "Automatically replace plain text Emoji",
- "Failed to upload image": "Failed to upload image",
- "Failed to update group": "Failed to update group",
- "Hide avatars in user and room mentions": "Hide avatars in user and room mentions",
- "%(widgetName)s widget added by %(senderName)s": "%(widgetName)s widget added by %(senderName)s",
- "%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s widget removed by %(senderName)s",
- "%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s widget modified by %(senderName)s",
- "Robot check is currently unavailable on desktop - please use a web browser": "Robot check is currently unavailable on desktop - please use a web browser",
"%(senderName)s added %(count)s %(addedAddresses)s as an address for this room.|one": "%(senderName)s added %(addedAddresses)s as an address for this room.",
"%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|other": "%(senderName)s added %(addedAddresses)s as addresses for this room.",
"%(senderName)s removed %(count)s %(removedAddresses)s as an address for this room.|one": "%(senderName)s removed %(removedAddresses)s as an address for this room.",
From a4b7348703e6a7cfb9463b64dddb1bcf7052c4f6 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Sun, 16 Sep 2018 19:11:11 +0100
Subject: [PATCH 27/98] fix merge on i18n again
---
src/i18n/strings/en_EN.json | 273 ++++++++++++++++++++++++++++++++++++
1 file changed, 273 insertions(+)
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 6c42b0a005..6b51a0122a 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -973,6 +973,279 @@
"Share message history with new users": "Share message history with new users",
"Encrypt room": "Encrypt room",
"You must register to use this functionality": "You must register to use this functionality",
+ "You must join the room to see its files": "You must join the room to see its files",
+ "There are no visible files in this room": "There are no visible files in this room",
+ "
HTML for your community's page
\n
\n Use the long description to introduce new members to the community, or distribute\n some important links\n
\n
\n You can even use 'img' tags\n
\n": "
HTML for your community's page
\n
\n Use the long description to introduce new members to the community, or distribute\n some important links\n
\n
\n You can even use 'img' tags\n
\n",
+ "Add rooms to the community summary": "Add rooms to the community summary",
+ "Which rooms would you like to add to this summary?": "Which rooms would you like to add to this summary?",
+ "Add to summary": "Add to summary",
+ "Failed to add the following rooms to the summary of %(groupId)s:": "Failed to add the following rooms to the summary of %(groupId)s:",
+ "Add a Room": "Add a Room",
+ "Failed to remove the room from the summary of %(groupId)s": "Failed to remove the room from the summary of %(groupId)s",
+ "The room '%(roomName)s' could not be removed from the summary.": "The room '%(roomName)s' could not be removed from the summary.",
+ "Add users to the community summary": "Add users to the community summary",
+ "Who would you like to add to this summary?": "Who would you like to add to this summary?",
+ "Failed to add the following users to the summary of %(groupId)s:": "Failed to add the following users to the summary of %(groupId)s:",
+ "Add a User": "Add a User",
+ "Failed to remove a user from the summary of %(groupId)s": "Failed to remove a user from the summary of %(groupId)s",
+ "The user '%(displayName)s' could not be removed from the summary.": "The user '%(displayName)s' could not be removed from the summary.",
+ "Failed to upload image": "Failed to upload image",
+ "Failed to update community": "Failed to update community",
+ "Unable to accept invite": "Unable to accept invite",
+ "Unable to join community": "Unable to join community",
+ "Leave Community": "Leave Community",
+ "Leave %(groupName)s?": "Leave %(groupName)s?",
+ "Unable to leave community": "Unable to leave community",
+ "Community Settings": "Community Settings",
+ "Changes made to your community name and avatar might not be seen by other users for up to 30 minutes.": "Changes made to your community name and avatar might not be seen by other users for up to 30 minutes.",
+ "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.",
+ "Add rooms to this community": "Add rooms to this community",
+ "Featured Rooms:": "Featured Rooms:",
+ "Featured Users:": "Featured Users:",
+ "%(inviter)s has invited you to join this community": "%(inviter)s has invited you to join this community",
+ "Join this community": "Join this community",
+ "Leave this community": "Leave this community",
+ "You are an administrator of this community": "You are an administrator of this community",
+ "You are a member of this community": "You are a member of this community",
+ "Who can join this community?": "Who can join this community?",
+ "Everyone": "Everyone",
+ "Your community hasn't got a Long Description, a HTML page to show to community members. Click here to open settings and give it one!": "Your community hasn't got a Long Description, a HTML page to show to community members. Click here to open settings and give it one!",
+ "Long Description (HTML)": "Long Description (HTML)",
+ "Description": "Description",
+ "Community %(groupId)s not found": "Community %(groupId)s not found",
+ "This Home server does not support communities": "This Home server does not support communities",
+ "Failed to load %(groupId)s": "Failed to load %(groupId)s",
+ "Couldn't load home page": "Couldn't load home page",
+ "Login": "Login",
+ "Failed to reject invitation": "Failed to reject invitation",
+ "This room is not public. You will not be able to rejoin without an invite.": "This room is not public. You will not be able to rejoin without an invite.",
+ "Are you sure you want to leave the room '%(roomName)s'?": "Are you sure you want to leave the room '%(roomName)s'?",
+ "Failed to leave room": "Failed to leave room",
+ "Can't leave Server Notices room": "Can't leave Server Notices room",
+ "This room is used for important messages from the Homeserver, so you cannot leave it.": "This room is used for important messages from the Homeserver, so you cannot leave it.",
+ "Signed Out": "Signed Out",
+ "For security, this session has been signed out. Please sign in again.": "For security, this session has been signed out. Please sign in again.",
+ "Terms and Conditions": "Terms and Conditions",
+ "To continue using the %(homeserverDomain)s homeserver you must review and agree to our terms and conditions.": "To continue using the %(homeserverDomain)s homeserver you must review and agree to our terms and conditions.",
+ "Review terms and conditions": "Review terms and conditions",
+ "Old cryptography data detected": "Old cryptography data detected",
+ "Data from an older version of Riot has been detected. This will have caused end-to-end cryptography to malfunction in the older version. End-to-end encrypted messages exchanged recently whilst using the older version may not be decryptable in this version. This may also cause messages exchanged with this version to fail. If you experience problems, log out and back in again. To retain message history, export and re-import your keys.": "Data from an older version of Riot has been detected. This will have caused end-to-end cryptography to malfunction in the older version. End-to-end encrypted messages exchanged recently whilst using the older version may not be decryptable in this version. This may also cause messages exchanged with this version to fail. If you experience problems, log out and back in again. To retain message history, export and re-import your keys.",
+ "Logout": "Logout",
+ "Your Communities": "Your Communities",
+ "Did you know: you can use communities to filter your Riot.im experience!": "Did you know: you can use communities to filter your Riot.im experience!",
+ "To set up a filter, drag a community avatar over to the filter panel on the far left hand side of the screen. You can click on an avatar in the filter panel at any time to see only the rooms and people associated with that community.": "To set up a filter, drag a community avatar over to the filter panel on the far left hand side of the screen. You can click on an avatar in the filter panel at any time to see only the rooms and people associated with that community.",
+ "Error whilst fetching joined communities": "Error whilst fetching joined communities",
+ "Create a new community": "Create a new community",
+ "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.",
+ "You have no visible notifications": "You have no visible notifications",
+ "Members": "Members",
+ "%(count)s Members|other": "%(count)s Members",
+ "%(count)s Members|one": "%(count)s Member",
+ "Invite to this room": "Invite to this room",
+ "Files": "Files",
+ "Notifications": "Notifications",
+ "Hide panel": "Hide panel",
+ "Invite to this community": "Invite to this community",
+ "Failed to get protocol list from Home Server": "Failed to get protocol list from Home Server",
+ "The Home Server may be too old to support third party networks": "The Home Server may be too old to support third party networks",
+ "Failed to get public room list": "Failed to get public room list",
+ "The server may be unavailable or overloaded": "The server may be unavailable or overloaded",
+ "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Delete the room alias %(alias)s and remove %(name)s from the directory?",
+ "Remove %(name)s from the directory?": "Remove %(name)s from the directory?",
+ "Remove from Directory": "Remove from Directory",
+ "remove %(name)s from the directory.": "remove %(name)s from the directory.",
+ "delete the alias.": "delete the alias.",
+ "Unable to join network": "Unable to join network",
+ "Riot does not know how to join a room on this network": "Riot does not know how to join a room on this network",
+ "Room not found": "Room not found",
+ "Couldn't find a matching Matrix room": "Couldn't find a matching Matrix room",
+ "Fetching third party location failed": "Fetching third party location failed",
+ "Unable to look up room ID from server": "Unable to look up room ID from server",
+ "Directory": "Directory",
+ "Search for a room": "Search for a room",
+ "#example": "#example",
+ "Scroll to bottom of page": "Scroll to bottom of page",
+ "Message not sent due to unknown devices being present": "Message not sent due to unknown devices being present",
+ "Show devices, send anyway or cancel.": "Show devices, send anyway or cancel.",
+ "You can't send any messages until you review and agree to our terms and conditions.": "You can't send any messages until you review and agree to our terms and conditions.",
+ "Your message wasn't sent because this homeserver has hit its Monthly Active User Limit. Please contact your service administrator to continue using the service.": "Your message wasn't sent because this homeserver has hit its Monthly Active User Limit. Please contact your service administrator to continue using the service.",
+ "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.",
+ "%(count)s of your messages have not been sent.|other": "Some of your messages have not been sent.",
+ "%(count)s of your messages have not been sent.|one": "Your message was not sent.",
+ "%(count)s Resend all or cancel all now. You can also select individual messages to resend or cancel.|other": "Resend all or cancel all now. You can also select individual messages to resend or cancel.",
+ "%(count)s Resend all or cancel all now. You can also select individual messages to resend or cancel.|one": "Resend message or cancel message now.",
+ "Connectivity to the server has been lost.": "Connectivity to the server has been lost.",
+ "Sent messages will be stored until your connection has returned.": "Sent messages will be stored until your connection has returned.",
+ "%(count)s new messages|other": "%(count)s new messages",
+ "%(count)s new messages|one": "%(count)s new message",
+ "Active call": "Active call",
+ "There's no one else here! Would you like to invite others or stop warning about the empty room?": "There's no one else here! Would you like to invite others or stop warning about the empty room?",
+ "more": "more",
+ "You seem to be uploading files, are you sure you want to quit?": "You seem to be uploading files, are you sure you want to quit?",
+ "You seem to be in a call, are you sure you want to quit?": "You seem to be in a call, are you sure you want to quit?",
+ "Failed to upload file": "Failed to upload file",
+ "Server may be unavailable, overloaded, or the file too big": "Server may be unavailable, overloaded, or the file too big",
+ "Search failed": "Search failed",
+ "Server may be unavailable, overloaded, or search timed out :(": "Server may be unavailable, overloaded, or search timed out :(",
+ "No more results": "No more results",
+ "Unknown room %(roomId)s": "Unknown room %(roomId)s",
+ "Room": "Room",
+ "Failed to save settings": "Failed to save settings",
+ "Failed to reject invite": "Failed to reject invite",
+ "Fill screen": "Fill screen",
+ "Click to unmute video": "Click to unmute video",
+ "Click to mute video": "Click to mute video",
+ "Click to unmute audio": "Click to unmute audio",
+ "Click to mute audio": "Click to mute audio",
+ "Expand panel": "Expand panel",
+ "Collapse panel": "Collapse panel",
+ "Filter room names": "Filter room names",
+ "Clear filter": "Clear filter",
+ "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.",
+ "Tried to load a specific point in this room's timeline, but was unable to find it.": "Tried to load a specific point in this room's timeline, but was unable to find it.",
+ "Failed to load timeline position": "Failed to load timeline position",
+ "Uploading %(filename)s and %(count)s others|other": "Uploading %(filename)s and %(count)s others",
+ "Uploading %(filename)s and %(count)s others|zero": "Uploading %(filename)s",
+ "Uploading %(filename)s and %(count)s others|one": "Uploading %(filename)s and %(count)s other",
+ "Light theme": "Light theme",
+ "Dark theme": "Dark theme",
+ "Status.im theme": "Status.im theme",
+ "Can't load user settings": "Can't load user settings",
+ "Server may be unavailable or overloaded": "Server may be unavailable or overloaded",
+ "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.",
+ "Success": "Success",
+ "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them",
+ "Remove Contact Information?": "Remove Contact Information?",
+ "Remove %(threePid)s?": "Remove %(threePid)s?",
+ "Unable to remove contact information": "Unable to remove contact information",
+ "Refer a friend to Riot:": "Refer a friend to Riot:",
+ "Interface Language": "Interface Language",
+ "User Interface": "User Interface",
+ "Autocomplete Delay (ms):": "Autocomplete Delay (ms):",
+ "": "",
+ "Import E2E room keys": "Import E2E room keys",
+ "Cryptography": "Cryptography",
+ "Device ID:": "Device ID:",
+ "Device key:": "Device key:",
+ "Ignored Users": "Ignored Users",
+ "Debug Logs Submission": "Debug Logs Submission",
+ "If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.",
+ "Riot collects anonymous analytics to allow us to improve the application.": "Riot collects anonymous analytics to allow us to improve the application.",
+ "Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.": "Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.",
+ "Learn more about how we use analytics.": "Learn more about how we use analytics.",
+ "Labs": "Labs",
+ "These are experimental features that may break in unexpected ways": "These are experimental features that may break in unexpected ways",
+ "Use with caution": "Use with caution",
+ "Lazy loading members not supported": "Lazy loading members not supported",
+ "Lazy loading is not supported by your current homeserver.": "Lazy loading is not supported by your current homeserver.",
+ "Deactivate my account": "Deactivate my account",
+ "Legal": "Legal",
+ "Clear Cache": "Clear Cache",
+ "Clear Cache and Reload": "Clear Cache and Reload",
+ "Updates": "Updates",
+ "Check for update": "Check for update",
+ "Reject all %(invitedRooms)s invites": "Reject all %(invitedRooms)s invites",
+ "Bulk Options": "Bulk Options",
+ "Desktop specific": "Desktop specific",
+ "Start automatically after system login": "Start automatically after system login",
+ "No media permissions": "No media permissions",
+ "You may need to manually permit Riot to access your microphone/webcam": "You may need to manually permit Riot to access your microphone/webcam",
+ "Missing Media Permissions, click here to request.": "Missing Media Permissions, click here to request.",
+ "No Audio Outputs detected": "No Audio Outputs detected",
+ "No Microphones detected": "No Microphones detected",
+ "No Webcams detected": "No Webcams detected",
+ "Default Device": "Default Device",
+ "Audio Output": "Audio Output",
+ "Microphone": "Microphone",
+ "Camera": "Camera",
+ "VoIP": "VoIP",
+ "Email": "Email",
+ "Add email address": "Add email address",
+ "Profile": "Profile",
+ "Display name": "Display name",
+ "Account": "Account",
+ "To return to your account in future you need to set a password": "To return to your account in future you need to set a password",
+ "Logged in as:": "Logged in as:",
+ "Access Token:": "Access Token:",
+ "click to reveal": "click to reveal",
+ "Homeserver is": "Homeserver is",
+ "Identity Server is": "Identity Server is",
+ "matrix-react-sdk version:": "matrix-react-sdk version:",
+ "riot-web version:": "riot-web version:",
+ "olm version:": "olm version:",
+ "Failed to send email": "Failed to send email",
+ "The email address linked to your account must be entered.": "The email address linked to your account must be entered.",
+ "A new password must be entered.": "A new password must be entered.",
+ "New passwords must match each other.": "New passwords must match each other.",
+ "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.",
+ "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.",
+ "I have verified my email address": "I have verified my email address",
+ "Your password has been reset": "Your password has been reset",
+ "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device",
+ "Return to login screen": "Return to login screen",
+ "To reset your password, enter the email address linked to your account": "To reset your password, enter the email address linked to your account",
+ "New password": "New password",
+ "Confirm your new password": "Confirm your new password",
+ "Send Reset Email": "Send Reset Email",
+ "Create an account": "Create an account",
+ "This Home Server does not support login using email address.": "This Home Server does not support login using email address.",
+ "Please contact your service administrator to continue using this service.": "Please contact your service administrator to continue using this service.",
+ "Incorrect username and/or password.": "Incorrect username and/or password.",
+ "Please note you are logging into the %(hs)s server, not matrix.org.": "Please note you are logging into the %(hs)s server, not matrix.org.",
+ "Guest access is disabled on this Home Server.": "Guest access is disabled on this Home Server.",
+ "The phone number entered looks invalid": "The phone number entered looks invalid",
+ "This homeserver doesn't offer any login flows which are supported by this client.": "This homeserver doesn't offer any login flows which are supported by this client.",
+ "Error: Problem communicating with the given homeserver.": "Error: Problem communicating with the given homeserver.",
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.",
+ "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.",
+ "Try the app first": "Try the app first",
+ "Sign in to get started": "Sign in to get started",
+ "Failed to fetch avatar URL": "Failed to fetch avatar URL",
+ "Set a display name:": "Set a display name:",
+ "Upload an avatar:": "Upload an avatar:",
+ "Unable to query for supported registration methods": "Unable to query for supported registration methods",
+ "This server does not support authentication with a phone number.": "This server does not support authentication with a phone number.",
+ "Missing password.": "Missing password.",
+ "Passwords don't match.": "Passwords don't match.",
+ "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Password too short (min %(MIN_PASSWORD_LENGTH)s).",
+ "This doesn't look like a valid email address.": "This doesn't look like a valid email address.",
+ "This doesn't look like a valid phone number.": "This doesn't look like a valid phone number.",
+ "You need to enter a user name.": "You need to enter a user name.",
+ "An unknown error occurred.": "An unknown error occurred.",
+ "I already have an account": "I already have an account",
+ "Commands": "Commands",
+ "Results from DuckDuckGo": "Results from DuckDuckGo",
+ "Emoji": "Emoji",
+ "Notify the whole room": "Notify the whole room",
+ "Room Notification": "Room Notification",
+ "Users": "Users",
+ "unknown device": "unknown device",
+ "NOT verified": "NOT verified",
+ "verified": "verified",
+ "Verification": "Verification",
+ "Ed25519 fingerprint": "Ed25519 fingerprint",
+ "User ID": "User ID",
+ "Curve25519 identity key": "Curve25519 identity key",
+ "none": "none",
+ "Claimed Ed25519 fingerprint key": "Claimed Ed25519 fingerprint key",
+ "Algorithm": "Algorithm",
+ "unencrypted": "unencrypted",
+ "Decryption error": "Decryption error",
+ "Session ID": "Session ID",
+ "End-to-end encryption information": "End-to-end encryption information",
+ "Event information": "Event information",
+ "Sender device information": "Sender device information",
+ "Passphrases must match": "Passphrases must match",
+ "Passphrase must not be empty": "Passphrase must not be empty",
+ "Export room keys": "Export room keys",
+ "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.",
+ "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.",
+ "Enter passphrase": "Enter passphrase",
+ "Confirm passphrase": "Confirm passphrase",
+ "Export": "Export",
+ "Import room keys": "Import room keys",
+ "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.",
+ "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.",
"%(senderName)s added %(count)s %(addedAddresses)s as an address for this room.|one": "%(senderName)s added %(addedAddresses)s as an address for this room.",
"%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|other": "%(senderName)s added %(addedAddresses)s as addresses for this room.",
"%(senderName)s removed %(count)s %(removedAddresses)s as an address for this room.|one": "%(senderName)s removed %(removedAddresses)s as an address for this room.",
From 003083d9fc54161547f0e64cbd4a8781f4d53a92 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Sun, 16 Sep 2018 20:19:02 +0100
Subject: [PATCH 28/98] fix plurals
---
src/i18n/strings/en_EN.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 6b51a0122a..3de0f2d5c1 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -1246,9 +1246,9 @@
"Import room keys": "Import room keys",
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.",
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.",
- "%(senderName)s added %(count)s %(addedAddresses)s as an address for this room.|one": "%(senderName)s added %(addedAddresses)s as an address for this room.",
+ "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|one": "%(senderName)s added %(addedAddresses)s as an address for this room.",
"%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|other": "%(senderName)s added %(addedAddresses)s as addresses for this room.",
- "%(senderName)s removed %(count)s %(removedAddresses)s as an address for this room.|one": "%(senderName)s removed %(removedAddresses)s as an address for this room.",
+ "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|one": "%(senderName)s removed %(removedAddresses)s as an address for this room.",
"%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|other": "%(senderName)s removed %(removedAddresses)s as addresses for this room.",
"%(senderName)s changed the addresses of this room.": "%(senderName)s changed the addresses of this room.",
"File to import": "File to import",
From 6e12399fe9e1c6ee9292ea00137b3697b19db4f1 Mon Sep 17 00:00:00 2001
From: ali almi
Date: Fri, 14 Sep 2018 15:39:39 +0000
Subject: [PATCH 29/98] Translated using Weblate (Arabic)
Currently translated at 5.4% (68 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/ar/
---
src/i18n/strings/ar.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/ar.json b/src/i18n/strings/ar.json
index d461240e4b..7ea42b8ebd 100644
--- a/src/i18n/strings/ar.json
+++ b/src/i18n/strings/ar.json
@@ -65,5 +65,6 @@
"Cancel Sending": "إلغاء الإرسال",
"Collapse panel": "طي الجدول",
"Set Password": "تعيين كلمة سرية",
- "Checking for an update...": "البحث عن تحديث …"
+ "Checking for an update...": "البحث عن تحديث …",
+ "powered by Matrix": "مشغل بواسطة Matrix"
}
From 33f648a6f6834d7ba241ddce5e496ac912f180e7 Mon Sep 17 00:00:00 2001
From: Osoitz
Date: Sun, 16 Sep 2018 05:49:32 +0000
Subject: [PATCH 30/98] Translated using Weblate (Basque)
Currently translated at 100.0% (1252 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/eu/
---
src/i18n/strings/eu.json | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/i18n/strings/eu.json b/src/i18n/strings/eu.json
index 1c77431c54..b83ca36684 100644
--- a/src/i18n/strings/eu.json
+++ b/src/i18n/strings/eu.json
@@ -46,7 +46,7 @@
"New password": "Pasahitz berria",
"User name": "Erabiltzaile-izena",
"Email address": "E-mail helbidea",
- "Email address (optional)": "E-mail helbidea (aukerazkoa)",
+ "Email address (optional)": "E-mail helbidea (aukerakoa)",
"Confirm your new password": "Berretsi zure pasahitza",
"This Home Server would like to make sure you are not a robot": "Hasiera zerbitzari honek robot bat ez zarela egiaztatu nahi du",
"I have verified my email address": "Nire e-mail helbidea baieztatu dut",
@@ -138,7 +138,7 @@
"Hangup": "Eseki",
"Homeserver is": "Hasiera zerbitzaria:",
"Identity Server is": "Identitate zerbitzaria:",
- "Mobile phone number (optional)": "Mugikor zenbakia (aukerazkoa)",
+ "Mobile phone number (optional)": "Mugikor zenbakia (aukerakoa)",
"Moderator": "Moderatzailea",
"Account": "Kontua",
"Access Token:": "Sarbide tokena:",
@@ -157,7 +157,7 @@
"Microphone": "Mikrofonoa",
"Camera": "Kamera",
"Hide removed messages": "Ezkutatu kendutako mezuak",
- "Alias (optional)": "Ezizena (aukerazkoa)",
+ "Alias (optional)": "Ezizena (aukerakoa)",
"%(names)s and %(lastPerson)s are typing": "%(names)s eta %(lastPerson)s idazten ari dira",
"An error has occurred.": "Errore bat gertatu da.",
"Are you sure?": "Ziur zaude?",
@@ -359,7 +359,7 @@
"riot-web version:": "riot-web bertsioa:",
"Room %(roomId)s not visible": "%(roomId)s gela ez dago ikusgai",
"Room Colour": "Gelaren kolorea",
- "Room name (optional)": "Gelaren izena (aukerazkoa)",
+ "Room name (optional)": "Gelaren izena (aukerakoa)",
"%(roomName)s does not exist.": "Ez dago %(roomName)s izeneko gela.",
"%(roomName)s is not accessible at this time.": "%(roomName)s ez dago eskuragarri orain.",
"Scroll to bottom of page": "Korritu orria behera arte",
From 8a1c85f7a07c9098583fd75494031baf91aa16e1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sim=C3=B3=20Albert=20i=20Beltran?=
Date: Sat, 15 Sep 2018 12:04:45 +0000
Subject: [PATCH 31/98] Translated using Weblate (Catalan)
Currently translated at 80.3% (1006 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/ca/
---
src/i18n/strings/ca.json | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/i18n/strings/ca.json b/src/i18n/strings/ca.json
index 3006063df7..51d8dd1e1a 100644
--- a/src/i18n/strings/ca.json
+++ b/src/i18n/strings/ca.json
@@ -130,7 +130,7 @@
"Unable to create widget.": "No s'ha pogut crear el giny.",
"Failed to send request.": "No s'ha pogut enviar la sol·licitud.",
"This room is not recognised.": "No es reconeix aquesta sala.",
- "Power level must be positive integer.": "El nivell de potència ha de ser un enter positiu.",
+ "Power level must be positive integer.": "El nivell de poders ha de ser un enter positiu.",
"You are not in this room.": "No heu entrat a aquesta sala.",
"You do not have permission to do that in this room.": "No teniu el permís per realitzar aquesta acció en aquesta sala.",
"Missing room_id in request": "Falta l'ID de la sala en la vostra sol·licitud",
@@ -167,7 +167,7 @@
"%(targetName)s joined the room.": "%(targetName)s ha entrat a la sala.",
"VoIP conference finished.": "S'ha finalitzat la conferència VoIP.",
"%(targetName)s rejected the invitation.": "%(targetName)s ha rebutjat la invitació.",
- "%(targetName)s left the room.": "%(targetName)s ha sortir de la sala.",
+ "%(targetName)s left the room.": "%(targetName)s ha sortit de la sala.",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s ha readmès a %(targetName)s.",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s ha fet fora a %(targetName)s.",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s ha retirat la invitació per a %(targetName)s.",
@@ -191,7 +191,7 @@
"%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s ha fet visible l'històric de la sala per a desconeguts (%(visibility)s).",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s ha activat l'encriptació d'extrem a extrem (algoritme %(algorithm)s).",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s fins %(toPowerLevel)s",
- "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s ha canviat el nivell de potència de %(powerLevelDiffText)s.",
+ "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s ha canviat el nivell de poders de %(powerLevelDiffText)s.",
"%(senderName)s changed the pinned messages for the room.": "%(senderName)s ha canviat els missatges fixats de la sala.",
"%(widgetName)s widget modified by %(senderName)s": "%(senderName)s ha modificat el giny %(widgetName)s",
"%(widgetName)s widget added by %(senderName)s": "%(senderName)s ha afegit el giny %(widgetName)s",
@@ -301,7 +301,7 @@
"Failed to ban user": "No s'ha pogut expulsar l'usuari",
"Failed to mute user": "No s'ha pogut silenciar l'usuari",
"Failed to toggle moderator status": "No s'ha pogut canviar l'estat del moderador",
- "Failed to change power level": "No s'ha pogut canviar el nivell de potència",
+ "Failed to change power level": "No s'ha pogut canviar el nivell de poders",
"You will not be able to undo this change as you are demoting yourself, if you are the last privileged user in the room it will be impossible to regain privileges.": "No podreu desfer aquest canvi ja que estareu baixant de grau de privilegis. Només un altre usuari amb més privilegis podrà fer que els recupereu.",
"Are you sure?": "Esteu segur?",
"You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "No podreu desfer aquesta acció ja que esteu donant al usuari el mateix nivell de privilegi que el vostre.",
From 3f7e7f8da5d3e330e31c7bc479fb63cc6f36f70e Mon Sep 17 00:00:00 2001
From: Tim Stahel
Date: Fri, 14 Sep 2018 20:21:47 +0000
Subject: [PATCH 32/98] Translated using Weblate (English (United States))
Currently translated at 65.4% (820 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/en_US/
---
src/i18n/strings/en_US.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/en_US.json b/src/i18n/strings/en_US.json
index 6f0708f0c2..6fc708a8c5 100644
--- a/src/i18n/strings/en_US.json
+++ b/src/i18n/strings/en_US.json
@@ -828,5 +828,8 @@
"Collapse panel": "Collapse panel",
"With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!",
"Checking for an update...": "Checking for an update...",
- "There are advanced notifications which are not shown here": "There are advanced notifications which are not shown here"
+ "There are advanced notifications which are not shown here": "There are advanced notifications which are not shown here",
+ "The platform you're on": "Platformen du använder",
+ "The version of Riot.im": "Versionen av Riot.im",
+ "Whether or not you're logged in (we don't record your user name)": "Om du är inloggad eller inte (vi sparar inte ditt användarnamn)"
}
From 647ab09b4343fd0e24cb3b63004d79427415c7cc Mon Sep 17 00:00:00 2001
From: Victor Grousset
Date: Sun, 16 Sep 2018 14:17:33 +0000
Subject: [PATCH 33/98] Translated using Weblate (Esperanto)
Currently translated at 87.8% (1100 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/eo/
---
src/i18n/strings/eo.json | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json
index 9caecebc90..e8f4441575 100644
--- a/src/i18n/strings/eo.json
+++ b/src/i18n/strings/eo.json
@@ -119,16 +119,16 @@
"%(senderName)s changed their profile picture.": "%(senderName)s ŝanĝis sian profilbildon.",
"%(senderName)s set a profile picture.": "%(senderName)s agordis profilbildon.",
"VoIP conference started.": "Rettelefona voko komenciĝis.",
- "%(targetName)s joined the room.": "%(targetName)s venis en la ĉambron.",
+ "%(targetName)s joined the room.": "%(targetName)s venis en la babilejo.",
"VoIP conference finished.": "Rettelefona voko finiĝis.",
"%(targetName)s rejected the invitation.": "%(targetName)s rifuzis la inviton.",
- "%(targetName)s left the room.": "%(targetName)s forlasis la ĉambron.",
+ "%(targetName)s left the room.": "%(targetName)s forlasis la babilejo.",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s malbaris uzanton %(targetName)s.",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s forpelis uzanton %(targetName)s.",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s nuligis inviton por %(targetName)s.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s ŝanĝis la temon al «%(topic)s».",
- "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s forigis nomon de la ĉambro.",
- "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s ŝanĝis nomon de la ĉambro al %(roomName)s.",
+ "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s forigis nomon de la babilejo.",
+ "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s ŝanĝis nomon de la babilejo al %(roomName)s.",
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s sendis bildon.",
"Someone": "Iu",
"(not supported by this browser)": "(nesubtenata de tiu ĉi foliumilo)",
@@ -138,12 +138,12 @@
"(unknown failure: %(reason)s)": "(nekonata eraro: %(reason)s)",
"%(senderName)s ended the call.": "%(senderName)s finis la vokon.",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s faris vokon de speco: %(callType)s.",
- "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s sendis ĉambran inviton al %(targetDisplayName)s.",
- "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s videbligis estontan historion de la ĉambro al ĉiuj ĉambranoj, de la tempo de invito.",
- "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s videbligis estontan historion de la ĉambro al ĉiuj ĉambranoj, de la tempo de aliĝo.",
- "%(senderName)s made future room history visible to all room members.": "%(senderName)s videbligis estontan historion de la ĉambro al ĉiuj ĉambranoj.",
- "%(senderName)s made future room history visible to anyone.": "%(senderName)s videbligis estontan historion de la ĉambro al ĉiuj.",
- "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s videbligis estontan historion de la ĉambro al nekonatoj (%(visibility)s).",
+ "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s sendis babilejan inviton al %(targetDisplayName)s.",
+ "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s videbligis estontan historion de la babilejo al ĉiuj babilejanoj, ekde la tempo de invito.",
+ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s videbligis estontan historion de la babilejo al ĉiuj babilejanoj, ekde la tempo de aliĝo.",
+ "%(senderName)s made future room history visible to all room members.": "%(senderName)s videbligis estontan historion de la babilejo al ĉiuj babilejanoj.",
+ "%(senderName)s made future room history visible to anyone.": "%(senderName)s videbligis estontan historion de la babilejo al ĉiuj.",
+ "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s videbligis estontan historion de la babilejo al nekonata (%(visibility)s).",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s ŝaltis ĝiscelan ĉifradon (algoritmo: %(algorithm)s).",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s al %(toPowerLevel)s",
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s ŝanĝis la potencan nivelon de %(powerLevelDiffText)s.",
From 0ae37f279681d21455005064540bb7ce9896510b Mon Sep 17 00:00:00 2001
From: xyzi
Date: Fri, 14 Sep 2018 16:43:06 +0000
Subject: [PATCH 34/98] Translated using Weblate (German)
Currently translated at 99.6% (1248 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/de/
---
src/i18n/strings/de_DE.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json
index 9c4ec3519b..43eb01fb94 100644
--- a/src/i18n/strings/de_DE.json
+++ b/src/i18n/strings/de_DE.json
@@ -1266,5 +1266,6 @@
"The room upgrade could not be completed": "Die Raum-Aufrüstung konnte nicht fertiggestellt werden",
"Upgrade this room to version %(version)s": "Diesen Raum zur Version %(version)s aufrüsten",
"Forces the current outbound group session in an encrypted room to be discarded": "Erzwingt, dass die aktuell ausgehende Gruppen-Sitzung in einem verschlüsseltem Raum verworfen wird",
- "Error Discarding Session": "Sitzung konnte nicht verworfen werden"
+ "Error Discarding Session": "Sitzung konnte nicht verworfen werden",
+ "Registration Required": ""
}
From 06a74707defe4a63db0bd92e757740971fff15f4 Mon Sep 17 00:00:00 2001
From: Andri
Date: Sun, 16 Sep 2018 11:44:05 +0000
Subject: [PATCH 35/98] Translated using Weblate (Indonesian)
Currently translated at 29.8% (374 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/id/
---
src/i18n/strings/id.json | 36 +++++++++++++++++++++++++++++++++++-
1 file changed, 35 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/id.json b/src/i18n/strings/id.json
index 0c6ee2afe7..0d4d1ea1a5 100644
--- a/src/i18n/strings/id.json
+++ b/src/i18n/strings/id.json
@@ -341,5 +341,39 @@
"Collapse panel": "Lipat panel",
"With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "Dengan browser ini, tampilan dari aplikasi mungkin tidak sesuai, dan beberapa atau bahkan semua fitur mungkin tidak berjalan. Jika Anda ingin tetap mencobanya, Anda bisa melanjutkan, tapi Anda tanggung sendiri jika muncul masalah yang terjadi!",
"Checking for an update...": "Cek pembaruan...",
- "There are advanced notifications which are not shown here": "Ada notifikasi lanjutan yang tidak ditampilkan di sini"
+ "There are advanced notifications which are not shown here": "Ada notifikasi lanjutan yang tidak ditampilkan di sini",
+ "This email address is already in use": "Alamat email ini telah terpakai",
+ "This phone number is already in use": "Nomor telepon ini telah terpakai",
+ "Failed to verify email address: make sure you clicked the link in the email": "Gagal memverifikasi alamat email: pastikan Anda telah menekan link di dalam email",
+ "The version of Riot.im": "Versi Riot.im",
+ "Your language of choice": "Pilihan bahasamu",
+ "Your homeserver's URL": "URL Homeserver Anda",
+ "Your identity server's URL": "URL Server Identitas Anda",
+ "e.g. %(exampleValue)s": "",
+ "Every page you use in the app": "Setiap halaman yang digunakan di app",
+ "e.g. ": "e.g. ",
+ "Your User Agent": "User Agent Anda",
+ "Your device resolution": "Resolusi perangkat Anda",
+ "Analytics": "Analitik",
+ "The information being sent to us to help make Riot.im better includes:": "Informasi yang dikirim membantu kami memperbaiki Riot.im, termasuk:",
+ "Where this page includes identifiable information, such as a room, user or group ID, that data is removed before being sent to the server.": "Apabila terdapat informasi yang dapat digunakan untuk pengenalan pada halaman ini, seperti ruang, pengguna, atau ID grup, kami akan menghapusnya sebelum dikirim ke server.",
+ "Call Failed": "Panggilan Gagal",
+ "There are unknown devices in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "Ada perangkat yang belum dikenal di ruang ini: apabila Anda melanjutkan tanpa memverifikasi terlebih dahulu, pembicaraan Anda dapat disadap orang yang tidak diinginkan.",
+ "Review Devices": "Telaah Perangkat",
+ "Call Anyway": "Tetap Panggil",
+ "Answer Anyway": "Tetap Jawab",
+ "Call": "Panggilan",
+ "Answer": "Jawab",
+ "Call Timeout": "Masa Berakhir Panggilan",
+ "The remote side failed to pick up": "Gagal jawab oleh pihak lain",
+ "Unable to capture screen": "Tidak dapat menangkap tampilan",
+ "Existing Call": "Panggilan Berlangsung",
+ "VoIP is unsupported": "VoIP tidak didukung",
+ "You cannot place VoIP calls in this browser.": "Anda tidak dapat melakukan panggilan VoIP di browser ini.",
+ "A conference call could not be started because the intgrations server is not available": "Panggilan massal tidak dapat dimulai karena server integrasi tidak tersedia",
+ "Call in Progress": "Panggilan Berlangsung",
+ "A call is currently being placed!": "Sedang melakukan panggilan sekarang!",
+ "A call is already in progress!": "Masih ada panggilan berlangsung!",
+ "Permission Required": "Permisi Dibutuhkan",
+ "You do not have permission to start a conference call in this room": "Anda tidak memiliki permisi untuk memulai panggilan massal di ruang ini"
}
From 2ed414494f24435e459e5da0b2ff64e46b0bd254 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Mon, 17 Sep 2018 19:14:52 +0200
Subject: [PATCH 36/98] use Room.myMembership event instead of
RoomMember.membership for me
This is more reliable with LL enabled as the syncing user is
only known when it was active in the current timeline
or when the members have been loaded
---
src/actions/MatrixActionCreators.js | 11 ++++-------
src/components/structures/RoomView.js | 10 +++++-----
src/components/views/rooms/MemberList.js | 17 ++++++++---------
src/stores/RoomListStore.js | 2 +-
4 files changed, 18 insertions(+), 22 deletions(-)
diff --git a/src/actions/MatrixActionCreators.js b/src/actions/MatrixActionCreators.js
index 17be9a5e0f..a18dc77551 100644
--- a/src/actions/MatrixActionCreators.js
+++ b/src/actions/MatrixActionCreators.js
@@ -149,7 +149,7 @@ function createRoomTimelineAction(matrixClient, timelineEvent, room, toStartOfTi
*/
/**
- * Create a MatrixActions.Room.selfMembership action that represents
+ * Create a MatrixActions.Room.myMembership action that represents
* a MatrixClient `RoomMember.membership` matrix event for the syncing user,
* emitted when the member's membership is updated.
*
@@ -159,11 +159,8 @@ function createRoomTimelineAction(matrixClient, timelineEvent, room, toStartOfTi
* @param {string} oldMembership the member's previous membership.
* @returns {RoomMembershipAction} an action of type `MatrixActions.RoomMember.membership`.
*/
-function createSelfRoomMembershipAction(matrixClient, membershipEvent, member, oldMembership) {
- if (member.userId === matrixClient.getUserId()) {
- return { action: 'MatrixActions.Room.selfMembership', member };
- }
- return null;
+function createSelfMembershipAction(matrixClient, room, membership, oldMembership) {
+ return { action: 'MatrixActions.Room.myMembership', room, membership, oldMembership};
}
/**
@@ -205,7 +202,7 @@ export default {
this._addMatrixClientListener(matrixClient, 'Room', createRoomAction);
this._addMatrixClientListener(matrixClient, 'Room.tags', createRoomTagsAction);
this._addMatrixClientListener(matrixClient, 'Room.timeline', createRoomTimelineAction);
- this._addMatrixClientListener(matrixClient, 'RoomMember.membership', createSelfRoomMembershipAction);
+ this._addMatrixClientListener(matrixClient, 'Room.myMembership', createSelfMembershipAction);
this._addMatrixClientListener(matrixClient, 'Event.decrypted', createEventDecryptedAction);
},
diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js
index 2715a5698d..cf99bb9fc3 100644
--- a/src/components/structures/RoomView.js
+++ b/src/components/structures/RoomView.js
@@ -148,7 +148,7 @@ module.exports = React.createClass({
MatrixClientPeg.get().on("Room.name", this.onRoomName);
MatrixClientPeg.get().on("Room.accountData", this.onRoomAccountData);
MatrixClientPeg.get().on("RoomState.members", this.onRoomStateMember);
- MatrixClientPeg.get().on("RoomMember.membership", this.onRoomMemberMembership);
+ MatrixClientPeg.get().on("Room.myMembership", this.onMyMembership);
MatrixClientPeg.get().on("accountData", this.onAccountData);
// Start listening for RoomViewStore updates
@@ -412,8 +412,8 @@ module.exports = React.createClass({
MatrixClientPeg.get().removeListener("Room.timeline", this.onRoomTimeline);
MatrixClientPeg.get().removeListener("Room.name", this.onRoomName);
MatrixClientPeg.get().removeListener("Room.accountData", this.onRoomAccountData);
+ MatrixClientPeg.get().removeListener("Room.myMembership", this.onMyMembership);
MatrixClientPeg.get().removeListener("RoomState.members", this.onRoomStateMember);
- MatrixClientPeg.get().removeListener("RoomMember.membership", this.onRoomMemberMembership);
MatrixClientPeg.get().removeListener("accountData", this.onAccountData);
}
@@ -715,10 +715,10 @@ module.exports = React.createClass({
this._updateRoomMembers();
},
- onRoomMemberMembership: function(ev, member, oldMembership) {
- if (member.userId == MatrixClientPeg.get().credentials.userId) {
- this._loadMembersIfJoined();
+ onMyMembership: function(room, membership, oldMembership) {
+ if (room.roomId === this.state.roomId) {
this.forceUpdate();
+ this._loadMembersIfJoined(room);
}
},
diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js
index 6a00c88d37..854bd20c30 100644
--- a/src/components/views/rooms/MemberList.js
+++ b/src/components/views/rooms/MemberList.js
@@ -43,11 +43,14 @@ module.exports = React.createClass({
componentWillMount: function() {
this._mounted = false;
const cli = MatrixClientPeg.get();
- if (!cli.hasLazyLoadMembersEnabled()) {
+ if (cli.hasLazyLoadMembersEnabled()) {
+ // true means will not show a spinner but the
+ // known members so far if not joined
+ cli.on("Room.myMembership", this.onMyMembership);
+ } else {
this._listenForMembersChanges();
}
cli.on("Room", this.onRoom); // invites & joining after peek
- cli.on("RoomMember.membership", this.onRoomMembership); // update when accepting an invite
const enablePresenceByHsUrl = SdkConfig.get()["enable_presence_by_hs_url"];
const hsUrl = MatrixClientPeg.get().baseUrl;
this._showPresence = true;
@@ -79,7 +82,7 @@ module.exports = React.createClass({
if (cli) {
cli.removeListener("RoomState.members", this.onRoomStateMember);
cli.removeListener("RoomMember.name", this.onRoomMemberName);
- cli.removeListener("RoomMember.membership", this.onRoomMembership);
+ cli.removeListener("Room.myMembership", this.onMyMembership);
cli.removeListener("RoomState.events", this.onRoomStateEvent);
cli.removeListener("Room", this.onRoom);
cli.removeListener("User.lastPresenceTs", this.onUserLastPresenceTs);
@@ -182,12 +185,8 @@ module.exports = React.createClass({
this._loadMembersIfNeeded();
},
- onRoomMembership: function(ev, member, oldMembership) {
- const cli = MatrixClientPeg.get();
- const myId = cli.getUserId();
- if (member.userId === myId && oldMembership !== "join" && member.membership === "join") {
- // once we've joined, no need to listen for membership anymore
- cli.removeListener("RoomMember.membership", this.onRoomMembership);
+ onMyMembership: function(room, membership, oldMembership) {
+ if (room.roomId === this.props.roomId && membership === "join") {
this._loadMembersIfNeeded();
}
},
diff --git a/src/stores/RoomListStore.js b/src/stores/RoomListStore.js
index 5a041f52ac..67c0c13be7 100644
--- a/src/stores/RoomListStore.js
+++ b/src/stores/RoomListStore.js
@@ -120,7 +120,7 @@ class RoomListStore extends Store {
this._generateRoomLists();
}
break;
- case 'MatrixActions.Room.selfMembership': {
+ case 'MatrixActions.Room.myMembership': {
this._generateRoomLists();
}
break;
From c3914d34931877a38433802c5bb73007d2cc146a Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Mon, 17 Sep 2018 19:18:55 +0200
Subject: [PATCH 37/98] show empty list as initial state instead of spinner
the spinner should only be shown when joined
---
src/components/views/rooms/MemberList.js | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js
index 854bd20c30..3a2dba9054 100644
--- a/src/components/views/rooms/MemberList.js
+++ b/src/components/views/rooms/MemberList.js
@@ -34,9 +34,10 @@ module.exports = React.createClass({
getInitialState: function() {
const cli = MatrixClientPeg.get();
if (cli.hasLazyLoadMembersEnabled()) {
- return {loading: true};
+ // show an empty list
+ return this._getMembersState([]);
} else {
- return this._getMembersState();
+ return this._getMembersState(this.roomMembers());
}
},
@@ -46,6 +47,7 @@ module.exports = React.createClass({
if (cli.hasLazyLoadMembersEnabled()) {
// true means will not show a spinner but the
// known members so far if not joined
+ this._loadMembersIfNeeded(true);
cli.on("Room.myMembership", this.onMyMembership);
} else {
this._listenForMembersChanges();
@@ -73,7 +75,6 @@ module.exports = React.createClass({
componentDidMount: async function() {
this._mounted = true;
- this._loadMembersIfNeeded(true);
},
componentWillUnmount: function() {
@@ -104,18 +105,17 @@ module.exports = React.createClass({
await room.loadMembersIfNeeded();
} catch(ex) {/* already logged in RoomView */}
if (this._mounted) {
- this.setState(this._getMembersState());
+ this.setState(this._getMembersState(this.roomMembers()));
this._listenForMembersChanges();
}
} else if(initial) {
// show the members we've got
- this.setState(this._getMembersState());
+ this.setState(this._getMembersState(this.roomMembers()));
}
}
},
- _getMembersState: function() {
- const members = this.roomMembers();
+ _getMembersState: function(members) {
// set the state after determining _showPresence to make sure it's
// taken into account while rerendering
return {
From d276b17c2afa70b72ebbef6446fc74668217f9d0 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Mon, 17 Sep 2018 19:19:07 +0200
Subject: [PATCH 38/98] remove dead code
---
src/components/views/rooms/MemberList.js | 29 ------------------------
1 file changed, 29 deletions(-)
diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js
index 3a2dba9054..2d3bc69ced 100644
--- a/src/components/views/rooms/MemberList.js
+++ b/src/components/views/rooms/MemberList.js
@@ -87,7 +87,6 @@ module.exports = React.createClass({
cli.removeListener("RoomState.events", this.onRoomStateEvent);
cli.removeListener("Room", this.onRoom);
cli.removeListener("User.lastPresenceTs", this.onUserLastPresenceTs);
- // cli.removeListener("Room.timeline", this.onRoomTimeline);
}
// cancel any pending calls to the rate_limited_funcs
@@ -132,34 +131,6 @@ module.exports = React.createClass({
};
},
-/*
- onRoomTimeline: function(ev, room, toStartOfTimeline, removed, data) {
- // ignore anything but real-time updates at the end of the room:
- // updates from pagination will happen when the paginate completes.
- if (toStartOfTimeline || !data || !data.liveEvent) return;
-
- // treat any activity from a user as implicit presence to update the
- // ordering of the list whenever someone says something.
- // Except right now we're not tiebreaking "active now" users in this way
- // so don't bother for now.
- if (ev.getSender()) {
- // console.log("implicit presence from " + ev.getSender());
-
- var tile = this.refs[ev.getSender()];
- if (tile) {
- // work around a race where you might have a room member object
- // before the user object exists. XXX: why does this ever happen?
- var all_members = room.currentState.members;
- var userId = ev.getSender();
- if (all_members[userId].user === null) {
- all_members[userId].user = MatrixClientPeg.get().getUser(userId);
- }
- this._updateList(); // reorder the membership list
- }
- }
- },
-*/
-
onUserLastPresenceTs(event, user) {
// Attach a SINGLE listener for global presence changes then locate the
// member tile and re-render it. This is more efficient than every tile
From dc7212ec2bd12e1917233ed7153b3e0ef529a135 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Mon, 17 Sep 2018 18:20:12 +0100
Subject: [PATCH 39/98] switch back to simple TextForEvent
I haven't found anyone who can justify to me why we need
more complicated plurals for i18n (even in Polish) for
%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.
---
package.json | 6 ++---
src/TextForEvent.js | 21 ++++++----------
.../views/messages/RoomAliasesEvent.js | 24 ++++++++++++++-----
src/components/views/rooms/EventTile.js | 7 ++++--
src/i18n/strings/en_EN.json | 3 +++
5 files changed, 36 insertions(+), 25 deletions(-)
diff --git a/package.json b/package.json
index 2cbdb98c2e..effa135d72 100644
--- a/package.json
+++ b/package.json
@@ -85,15 +85,15 @@
"react-dom": "^15.6.0",
"react-gemini-scrollbar": "matrix-org/react-gemini-scrollbar#5e97aef",
"resize-observer-polyfill": "^1.5.0",
+ "sanitize-html": "^1.18.4",
"slate": "0.34.7",
- "slate-react": "^0.12.4",
"slate-html-serializer": "^0.6.1",
"slate-md-serializer": "matrix-org/slate-md-serializer#f7c4ad3",
- "sanitize-html": "^1.18.4",
+ "slate-react": "^0.12.4",
"text-encoding-utf-8": "^1.0.1",
"url": "^0.11.0",
"velocity-vector": "vector-im/velocity#059e3b2",
- "whatwg-fetch": "^1.0.0"
+ "whatwg-fetch": "^1.1.1"
},
"devDependencies": {
"babel-cli": "^6.5.2",
diff --git a/src/TextForEvent.js b/src/TextForEvent.js
index 91ae5d0d70..a17bd7838e 100644
--- a/src/TextForEvent.js
+++ b/src/TextForEvent.js
@@ -199,7 +199,7 @@ function textForMessageEvent(ev) {
}
function textForRoomAliasesEvent(ev) {
- const senderName = event.sender ? event.sender.name : event.getSender();
+ const senderName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
const oldAliases = ev.getPrevContent().aliases || [];
const newAliases = ev.getContent().aliases || [];
@@ -211,13 +211,13 @@ function textForRoomAliasesEvent(ev) {
}
if (addedAliases.length && !removedAliases.length) {
- return _t('%(senderName)s added %(addedAddresses)s as addresses for this room.', {
+ return _t('%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.', {
senderName: senderName,
count: addedAliases.length,
addedAddresses: addedAliases.join(', '),
});
} else if (!addedAliases.length && removedAliases.length) {
- return _t('%(senderName)s removed %(removedAddresses)s as addresses for this room.', {
+ return _t('%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.', {
senderName: senderName,
count: removedAliases.length,
removedAddresses: removedAliases.join(', '),
@@ -228,17 +228,10 @@ function textForRoomAliasesEvent(ev) {
addedAddresses: addedAliases.join(', '),
removedAddresses: removedAliases.join(', '),
};
- /* eslint-disable max-len */
- if (addedAliases.length === 1 && removedAliases.length === 1) {
- return _t('%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.|one,one', args);
- } else if (addedAliases.length !== 1 && removedAliases.length === 1) {
- return _t('%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.|other,one', args);
- } else if (addedAliases.length === 1 && removedAliases.length !== 1) {
- return _t('%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.|one,other', args);
- } else {
- return _t('%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.|other,other', args);
- }
- /* eslint-enable max-len */
+ return _t(
+ '%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.',
+ args,
+ );
}
}
diff --git a/src/components/views/messages/RoomAliasesEvent.js b/src/components/views/messages/RoomAliasesEvent.js
index 7d9b2e6795..f15c5caf49 100644
--- a/src/components/views/messages/RoomAliasesEvent.js
+++ b/src/components/views/messages/RoomAliasesEvent.js
@@ -14,6 +14,16 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
+/****************************************************************
+ ** **
+ ** THIS CLASS IS NOT USED TO RENDER ALIAS CHANGES, IN ORDER **
+ ** TO TRY TO KEEP THINGS SIMPLE AND JUST USE TextualEvent. **
+ ** **
+ ** The code is kept here for ease of reference in future **
+ ** should we need the GenericEventListSummary stuff **
+ ** **
+ ****************************************************************/
+
'use strict';
import React from 'react';
@@ -69,10 +79,8 @@ export class GenericEventListSummary extends React.Component {
let summaryContainer = null;
if (showSummary) {
summaryContainer = (
-
);
});
const summary = _t('%(senderName)s changed the addresses of this room.', {senderName});
diff --git a/src/components/views/rooms/EventTile.js b/src/components/views/rooms/EventTile.js
index 50e74bc6e4..dd93171e90 100644
--- a/src/components/views/rooms/EventTile.js
+++ b/src/components/views/rooms/EventTile.js
@@ -47,7 +47,8 @@ const eventTileTypes = {
};
const stateEventTileTypes = {
- 'm.room.aliases': 'messages.RoomAliasesEvent',
+ 'm.room.aliases': 'messages.TextualEvent',
+ // 'm.room.aliases': 'messages.RoomAliasesEvent', // too complex
'm.room.create': 'messages.RoomCreate',
'm.room.member': 'messages.TextualEvent',
'm.room.name': 'messages.TextualEvent',
@@ -484,7 +485,9 @@ module.exports = withMatrixClient(React.createClass({
const eventType = this.props.mxEvent.getType();
// Info messages are basically information about commands processed on a room
- const isInfoMessage = (eventType !== 'm.room.message' && eventType !== 'm.sticker' && eventType != 'm.room.create');
+ const isInfoMessage = (
+ eventType !== 'm.room.message' && eventType !== 'm.sticker' && eventType != 'm.room.create'
+ );
const tileHandler = getHandlerTile(this.props.mxEvent);
// This shouldn't happen: the caller should check we support this type
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 3de0f2d5c1..bb48e0325e 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -1250,7 +1250,10 @@
"%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|other": "%(senderName)s added %(addedAddresses)s as addresses for this room.",
"%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|one": "%(senderName)s removed %(removedAddresses)s as an address for this room.",
"%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|other": "%(senderName)s removed %(removedAddresses)s as addresses for this room.",
+ "%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.": "%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.",
"%(senderName)s changed the addresses of this room.": "%(senderName)s changed the addresses of this room.",
+ "%(senderName)s added %(addedAddresses)s": "%(senderName)s added %(addedAddresses)s",
+ "%(senderName)s removed %(addedAddresses)s": "%(senderName)s removed %(addedAddresses)s",
"File to import": "File to import",
"Import": "Import",
"Failed to set direct chat tag": "Failed to set direct chat tag",
From e1b9aa9626c26a157d26bb19315788ab8e2da4c0 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Mon, 17 Sep 2018 19:20:26 +0200
Subject: [PATCH 40/98] better naming and document method
---
src/components/views/rooms/MemberList.js | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js
index 2d3bc69ced..b7a64e0ec4 100644
--- a/src/components/views/rooms/MemberList.js
+++ b/src/components/views/rooms/MemberList.js
@@ -47,7 +47,7 @@ module.exports = React.createClass({
if (cli.hasLazyLoadMembersEnabled()) {
// true means will not show a spinner but the
// known members so far if not joined
- this._loadMembersIfNeeded(true);
+ this._waitForMembersIfJoinedAndLL(true);
cli.on("Room.myMembership", this.onMyMembership);
} else {
this._listenForMembersChanges();
@@ -93,7 +93,12 @@ module.exports = React.createClass({
this._updateList.cancelPendingCall();
},
- _loadMembersIfNeeded: async function(initial) {
+ /**
+ * If lazy loading is enabled, either:
+ * show a spinner and load the members if the user is joined,
+ * or show the members available so far if initial=true
+ */
+ _waitForMembersIfJoinedAndLL: async function(initial) {
const cli = MatrixClientPeg.get();
if (cli.hasLazyLoadMembersEnabled()) {
const cli = MatrixClientPeg.get();
@@ -153,12 +158,12 @@ module.exports = React.createClass({
// also when peeking, we need to await the members being loaded
// before showing them.
- this._loadMembersIfNeeded();
+ this._waitForMembersIfJoinedAndLL();
},
onMyMembership: function(room, membership, oldMembership) {
if (room.roomId === this.props.roomId && membership === "join") {
- this._loadMembersIfNeeded();
+ this._waitForMembersIfJoinedAndLL();
}
},
From e0a789f77ede852be614ba1131afbab21f8e731a Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Mon, 17 Sep 2018 19:21:22 +0200
Subject: [PATCH 41/98] remove untrue comment, as we only load the members when
joining
---
src/components/views/rooms/MemberList.js | 4 ----
1 file changed, 4 deletions(-)
diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js
index b7a64e0ec4..907f162a40 100644
--- a/src/components/views/rooms/MemberList.js
+++ b/src/components/views/rooms/MemberList.js
@@ -154,10 +154,6 @@ module.exports = React.createClass({
// We listen for room events because when we accept an invite
// we need to wait till the room is fully populated with state
// before refreshing the member list else we get a stale list.
-
- // also when peeking, we need to await the members being loaded
- // before showing them.
-
this._waitForMembersIfJoinedAndLL();
},
From 473f2dd72b15255939b17a9cf8e45277ff373361 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Mon, 17 Sep 2018 19:24:34 +0200
Subject: [PATCH 42/98] pass room to _loadMembersIfJoined, it's called when
newState not applied
_loadMembersIfJoined is called from
_onRoomLoaded < _onRoomViewStoreUpdate, before incoming state
from the store is applied to this.state, so looking up the room
with this.state.roomId doesn't always work, which would cause
the members not to be loaded. Pass in the room instead.
---
src/components/structures/RoomView.js | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js
index cf99bb9fc3..8e2c2e3fdd 100644
--- a/src/components/structures/RoomView.js
+++ b/src/components/structures/RoomView.js
@@ -582,14 +582,13 @@ module.exports = React.createClass({
this._warnAboutEncryption(room);
this._calculatePeekRules(room);
this._updatePreviewUrlVisibility(room);
- this._loadMembersIfJoined();
+ this._loadMembersIfJoined(room);
},
- _loadMembersIfJoined: async function() {
+ _loadMembersIfJoined: async function(room) {
// lazy load members if enabled
if (SettingsStore.isFeatureEnabled('feature_lazyloading')) {
const cli = MatrixClientPeg.get();
- const room = cli.getRoom(this.state.roomId);
if (room && room.getMyMembership() === 'join') {
try {
await room.loadMembersIfNeeded();
From 0e1a814d2302bd2b79a4122aac6b891caf12f689 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Mon, 17 Sep 2018 18:27:17 +0100
Subject: [PATCH 43/98] remove RoomAliasesEvent in favour of simpler textual
event
---
src/TextForEvent.js | 5 +
.../views/messages/RoomAliasesEvent.js | 173 ------------------
2 files changed, 5 insertions(+), 173 deletions(-)
delete mode 100644 src/components/views/messages/RoomAliasesEvent.js
diff --git a/src/TextForEvent.js b/src/TextForEvent.js
index a17bd7838e..6b68941ee3 100644
--- a/src/TextForEvent.js
+++ b/src/TextForEvent.js
@@ -199,6 +199,11 @@ function textForMessageEvent(ev) {
}
function textForRoomAliasesEvent(ev) {
+ // An alternative implementation of this as a first-class event can be found at
+ // https://github.com/matrix-org/matrix-react-sdk/blob/dc7212ec2bd12e1917233ed7153b3e0ef529a135/src/components/views/messages/RoomAliasesEvent.js
+ // This feels a bit overkill though, and it's not clear the i18n really needs it
+ // so instead it's landing as a simple textual event.
+
const senderName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
const oldAliases = ev.getPrevContent().aliases || [];
const newAliases = ev.getContent().aliases || [];
diff --git a/src/components/views/messages/RoomAliasesEvent.js b/src/components/views/messages/RoomAliasesEvent.js
deleted file mode 100644
index f15c5caf49..0000000000
--- a/src/components/views/messages/RoomAliasesEvent.js
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
-Michael Telatynski <7t3chguy@gmail.com>
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-/****************************************************************
- ** **
- ** THIS CLASS IS NOT USED TO RENDER ALIAS CHANGES, IN ORDER **
- ** TO TRY TO KEEP THINGS SIMPLE AND JUST USE TextualEvent. **
- ** **
- ** The code is kept here for ease of reference in future **
- ** should we need the GenericEventListSummary stuff **
- ** **
- ****************************************************************/
-
-'use strict';
-
-import React from 'react';
-import PropTypes from 'prop-types';
-import { _t } from '../../../languageHandler';
-
-export class GenericEventListSummary extends React.Component {
- static propTypes = {
- // An summary to display when collapsed
- summary: PropTypes.string.isRequired,
- // whether to show summary whilst children are expanded
- alwaysShowSummary: PropTypes.bool,
- // An array of EventTiles to render when expanded
- children: PropTypes.array.isRequired,
- // Called when the GELS expansion is toggled
- onToggle: PropTypes.func,
- // how many children should cause GELS to act
- threshold: PropTypes.number.isRequired,
- };
-
- static defaultProps = {
- threshold: 1,
- };
-
- constructor(props, context) {
- super(props, context);
- this._toggleSummary = this._toggleSummary.bind(this);
- }
-
- state = {
- expanded: false,
- };
-
- _toggleSummary() {
- this.setState({expanded: !this.state.expanded});
- this.props.onToggle();
- }
-
- render() {
- const fewEvents = this.props.children.length < this.props.threshold;
- const expanded = this.state.expanded || fewEvents;
- const showSummary = !expanded || this.props.alwaysShowSummary;
-
- let expandedEvents = null;
- if (expanded) {
- expandedEvents = this.props.children;
- }
-
- if (fewEvents) {
- return
{ expandedEvents }
;
- }
-
- let summaryContainer = null;
- if (showSummary) {
- summaryContainer = (
-
- {this.props.summary}
-
- );
- }
- let toggleButton = null;
- if (!fewEvents) {
- toggleButton =
);
- });
-
- const summary = _t('%(senderName)s changed the addresses of this room.', {senderName});
- return
- {changes}
- ;
- }
-
- // return ;
- }
-}
From 0ce7bb8995137eec9ca48820b029f08ec05fc7fd Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Mon, 17 Sep 2018 19:27:25 +0200
Subject: [PATCH 44/98] pass membersLoaded state to TimelinePanel to force it
to re-render
... once the members are loaded.
---
src/components/structures/RoomView.js | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js
index 8e2c2e3fdd..1a1dd4cf87 100644
--- a/src/components/structures/RoomView.js
+++ b/src/components/structures/RoomView.js
@@ -91,13 +91,16 @@ module.exports = React.createClass({
},
getInitialState: function() {
+ const llMembers = MatrixClientPeg.get().hasLazyLoadMembersEnabled();
return {
room: null,
roomId: null,
roomLoading: true,
peekLoading: false,
shouldPeek: true,
-
+ // used to trigger a rerender in TimelinePanel once the members are loaded,
+ // so RR are rendered again (now with the members available), ...
+ membersLoaded: !llMembers,
// The event to be scrolled to initially
initialEventId: null,
// The offset in pixels from the event with which to scroll vertically
@@ -593,7 +596,7 @@ module.exports = React.createClass({
try {
await room.loadMembersIfNeeded();
if (!this.unmounted) {
- this.forceUpdate();
+ this.setState({membersLoaded: true});
}
} catch(err) {
const errorMessage = `Fetching room members for ${room.roomId} failed.` +
@@ -1765,6 +1768,7 @@ module.exports = React.createClass({
onReadMarkerUpdated={this._updateTopUnreadMessagesBar}
showUrlPreview = {this.state.showUrlPreview}
className="mx_RoomView_messagePanel"
+ membersLoaded={this.state.membersLoaded}
/>);
let topUnreadMessagesBar = null;
From 841aa4b80089510b290bda79dffedcb86498d45d Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Mon, 17 Sep 2018 19:28:06 +0200
Subject: [PATCH 45/98] check LL with client as this takes server support into
account
---
src/components/structures/RoomView.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js
index 1a1dd4cf87..7996c0eab8 100644
--- a/src/components/structures/RoomView.js
+++ b/src/components/structures/RoomView.js
@@ -590,8 +590,8 @@ module.exports = React.createClass({
_loadMembersIfJoined: async function(room) {
// lazy load members if enabled
- if (SettingsStore.isFeatureEnabled('feature_lazyloading')) {
- const cli = MatrixClientPeg.get();
+ const cli = MatrixClientPeg.get();
+ if (cli.hasLazyLoadMembersEnabled()) {
if (room && room.getMyMembership() === 'join') {
try {
await room.loadMembersIfNeeded();
From e8b4770940f632f09e543b0bceaa211e08e5a06d Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Mon, 17 Sep 2018 20:01:55 +0200
Subject: [PATCH 46/98] fix lint
---
src/components/structures/RoomView.js | 2 +-
src/components/views/rooms/MemberList.js | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js
index 7996c0eab8..e9e46a2ff6 100644
--- a/src/components/structures/RoomView.js
+++ b/src/components/structures/RoomView.js
@@ -598,7 +598,7 @@ module.exports = React.createClass({
if (!this.unmounted) {
this.setState({membersLoaded: true});
}
- } catch(err) {
+ } catch (err) {
const errorMessage = `Fetching room members for ${room.roomId} failed.` +
" Room members will appear incomplete.";
console.error(errorMessage);
diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js
index 907f162a40..f70347a449 100644
--- a/src/components/views/rooms/MemberList.js
+++ b/src/components/views/rooms/MemberList.js
@@ -107,7 +107,7 @@ module.exports = React.createClass({
this.setState({loading: true});
try {
await room.loadMembersIfNeeded();
- } catch(ex) {/* already logged in RoomView */}
+ } catch (ex) {/* already logged in RoomView */}
if (this._mounted) {
this.setState(this._getMembersState(this.roomMembers()));
this._listenForMembersChanges();
From 0727e0f8d3c0a6751c2092c2479682a54135f7d4 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Mon, 17 Sep 2018 20:02:15 +0200
Subject: [PATCH 47/98] mounted can be set straight in componentWillMount
---
src/components/views/rooms/MemberList.js | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js
index f70347a449..8120ee5747 100644
--- a/src/components/views/rooms/MemberList.js
+++ b/src/components/views/rooms/MemberList.js
@@ -42,7 +42,7 @@ module.exports = React.createClass({
},
componentWillMount: function() {
- this._mounted = false;
+ this._mounted = true;
const cli = MatrixClientPeg.get();
if (cli.hasLazyLoadMembersEnabled()) {
// true means will not show a spinner but the
@@ -73,10 +73,6 @@ module.exports = React.createClass({
// cli.on("Room.timeline", this.onRoomTimeline);
},
- componentDidMount: async function() {
- this._mounted = true;
- },
-
componentWillUnmount: function() {
this._mounted = false;
const cli = MatrixClientPeg.get();
From 8c4f4765df79e733c583164a7a31b88eb483a001 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Mon, 17 Sep 2018 20:03:01 +0200
Subject: [PATCH 48/98] remove initial parameter and show available members on
invite instead
---
src/components/views/rooms/MemberList.js | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js
index 8120ee5747..67a6effc81 100644
--- a/src/components/views/rooms/MemberList.js
+++ b/src/components/views/rooms/MemberList.js
@@ -45,9 +45,7 @@ module.exports = React.createClass({
this._mounted = true;
const cli = MatrixClientPeg.get();
if (cli.hasLazyLoadMembersEnabled()) {
- // true means will not show a spinner but the
- // known members so far if not joined
- this._waitForMembersIfJoinedAndLL(true);
+ this._showMembersAccordingToMembershipWithLL();
cli.on("Room.myMembership", this.onMyMembership);
} else {
this._listenForMembersChanges();
@@ -92,14 +90,15 @@ module.exports = React.createClass({
/**
* If lazy loading is enabled, either:
* show a spinner and load the members if the user is joined,
- * or show the members available so far if initial=true
+ * or show the members available so far if the user is invited
*/
- _waitForMembersIfJoinedAndLL: async function(initial) {
+ _showMembersAccordingToMembershipWithLL: async function() {
const cli = MatrixClientPeg.get();
if (cli.hasLazyLoadMembersEnabled()) {
const cli = MatrixClientPeg.get();
const room = cli.getRoom(this.props.roomId);
- if (room && room.getMyMembership() === 'join') {
+ const membership = room && room.getMyMembership();
+ if (membership === "join") {
this.setState({loading: true});
try {
await room.loadMembersIfNeeded();
@@ -108,8 +107,8 @@ module.exports = React.createClass({
this.setState(this._getMembersState(this.roomMembers()));
this._listenForMembersChanges();
}
- } else if(initial) {
- // show the members we've got
+ } else if (membership === "invite") {
+ // show the members we've got when invited
this.setState(this._getMembersState(this.roomMembers()));
}
}
@@ -150,12 +149,12 @@ module.exports = React.createClass({
// We listen for room events because when we accept an invite
// we need to wait till the room is fully populated with state
// before refreshing the member list else we get a stale list.
- this._waitForMembersIfJoinedAndLL();
+ this._showMembersAccordingToMembershipWithLL();
},
onMyMembership: function(room, membership, oldMembership) {
if (room.roomId === this.props.roomId && membership === "join") {
- this._waitForMembersIfJoinedAndLL();
+ this._showMembersAccordingToMembershipWithLL();
}
},
From fc81dbbfad36ba91ac4a62e855ca832eb252e69c Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Mon, 17 Sep 2018 22:40:00 +0100
Subject: [PATCH 49/98] remove i18n used by RoomAliasesEvent
---
src/i18n/strings/en_EN.json | 3 ---
1 file changed, 3 deletions(-)
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index bb48e0325e..b974e0a96c 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -1251,9 +1251,6 @@
"%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|one": "%(senderName)s removed %(removedAddresses)s as an address for this room.",
"%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|other": "%(senderName)s removed %(removedAddresses)s as addresses for this room.",
"%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.": "%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.",
- "%(senderName)s changed the addresses of this room.": "%(senderName)s changed the addresses of this room.",
- "%(senderName)s added %(addedAddresses)s": "%(senderName)s added %(addedAddresses)s",
- "%(senderName)s removed %(addedAddresses)s": "%(senderName)s removed %(addedAddresses)s",
"File to import": "File to import",
"Import": "Import",
"Failed to set direct chat tag": "Failed to set direct chat tag",
From ece041d059dab8d195dec17c77f8035d5f14fb57 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Tue, 18 Sep 2018 00:16:25 +0100
Subject: [PATCH 50/98] fix NPE on name (related to LL?)
---
src/components/views/rooms/RoomTile.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/components/views/rooms/RoomTile.js b/src/components/views/rooms/RoomTile.js
index d73f9b5ccf..54044e8d65 100644
--- a/src/components/views/rooms/RoomTile.js
+++ b/src/components/views/rooms/RoomTile.js
@@ -273,6 +273,7 @@ module.exports = React.createClass({
});
let name = this.state.roomName;
+ if (name == undefined || name == null) name = '';
name = name.replace(":", ":\u200b"); // add a zero-width space to allow linewrapping after the colon
let badgeContent;
From 719f7c6d01914c4c36eb474a64e02359dd62518b Mon Sep 17 00:00:00 2001
From: Victor Grousset
Date: Mon, 17 Sep 2018 11:59:18 +0000
Subject: [PATCH 51/98] Translated using Weblate (Esperanto)
Currently translated at 87.8% (1100 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/eo/
---
src/i18n/strings/eo.json | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json
index e8f4441575..f61f3953a6 100644
--- a/src/i18n/strings/eo.json
+++ b/src/i18n/strings/eo.json
@@ -147,7 +147,7 @@
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s ŝaltis ĝiscelan ĉifradon (algoritmo: %(algorithm)s).",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s al %(toPowerLevel)s",
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s ŝanĝis la potencan nivelon de %(powerLevelDiffText)s.",
- "%(senderName)s changed the pinned messages for the room.": "%(senderName)s ŝanĝis la fiksitajn mesaĝojn de la ĉambro.",
+ "%(senderName)s changed the pinned messages for the room.": "%(senderName)s ŝanĝis la fiksitajn mesaĝojn de la babilejo.",
"%(widgetName)s widget modified by %(senderName)s": "Fenestraĵon %(widgetName)s ŝanĝis %(senderName)s",
"%(widgetName)s widget added by %(senderName)s": "Fenestraĵon %(widgetName)s aldonis %(senderName)s",
"%(widgetName)s widget removed by %(senderName)s": "Fenestraĵon %(widgetName)s forigis %(senderName)s",
@@ -155,13 +155,13 @@
"%(names)s and %(count)s others are typing|other": "%(names)s kaj %(count)s aliaj tajpas",
"%(names)s and %(count)s others are typing|one": "%(names)s kaj unu alia tajpas",
"%(names)s and %(lastPerson)s are typing": "%(names)s kaj %(lastPerson)s tajpas",
- "Failure to create room": "Malsukcesis krei ĉambron",
+ "Failure to create room": "Malsukcesis krei babilejon",
"Server may be unavailable, overloaded, or you hit a bug.": "Servilo povas esti neatingebla, troŝarĝita, aŭ vi renkontis cimon.",
- "Unnamed Room": "Sennoma ĉambro",
+ "Unnamed Room": "Sennoma Babilejo",
"Your browser does not support the required cryptography extensions": "Via foliumilo ne subtenas la bezonatajn ĉifrajn kromprogramojn",
"Not a valid Riot keyfile": "Nevalida ŝlosila dosiero de Riot",
"Authentication check failed: incorrect password?": "Aŭtentiga kontrolo malsukcesis: ĉu pro malĝusta pasvorto?",
- "Failed to join room": "Malsukcesis aliĝi al ĉambro",
+ "Failed to join room": "Malsukcesis aliĝi al babilejo",
"Message Pinning": "Fikso de mesaĝoj",
"Disable Emoji suggestions while typing": "Malŝalti mienetajn sugestojn dum tajpado",
"Use compact timeline layout": "Uzi densan okazordan aranĝon",
@@ -183,14 +183,14 @@
"Send anyway": "Tamen sendi",
"Send": "Sendi",
"Enable automatic language detection for syntax highlighting": "Ŝalti aŭtomatan rekonon de lingvo por sintaksa markado",
- "Hide avatars in user and room mentions": "Kaŝi profilbildojn en mencioj de uzantoj kaj ĉambroj",
+ "Hide avatars in user and room mentions": "Kaŝi profilbildojn en mencioj de uzantoj kaj babilejoj",
"Disable big emoji in chat": "Malŝalti grandajn mienetojn en babilo",
"Don't send typing notifications": "Ne elsendi sciigojn pri tajpado",
"Automatically replace plain text Emoji": "Aŭtomate anstataŭigi tekstajn mienetojn",
"Mirror local video feed": "Speguli lokan videon",
"Disable Peer-to-Peer for 1:1 calls": "Malŝalti samtavolajn duopajn vokojn",
"Never send encrypted messages to unverified devices from this device": "Neniam sendi neĉifritajn mesaĝojn al nekontrolitaj aparatoj de tiu ĉi aparato",
- "Never send encrypted messages to unverified devices in this room from this device": "Neniam sendi ĉifritajn mesaĝojn al nekontrolitaj aparatoj en tiu ĉi ĉambro de tiu ĉi aparto",
+ "Never send encrypted messages to unverified devices in this room from this device": "Neniam sendi ĉifritajn mesaĝojn al nekontrolitaj aparatoj en tiu ĉi babilejo el tiu ĉi aparato",
"Enable inline URL previews by default": "Ŝalti entekstan antaŭrigardon al retadresoj",
"Enable URL previews for this room (only affects you)": "Ŝalti antaŭrigardon al retadresoj por ĉi tiu ĉambro (nur pro vi)",
"Enable URL previews by default for participants in this room": "Ŝalti antaŭrigardon al retadresoj por anoj de ĉi tiu ĉambro",
From 23c91f22ef51e84ff7e553766c7e9bf920e86bcf Mon Sep 17 00:00:00 2001
From: Moo
Date: Mon, 17 Sep 2018 21:45:09 +0000
Subject: [PATCH 52/98] Translated using Weblate (Lithuanian)
Currently translated at 69.4% (870 of 1252 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/lt/
---
src/i18n/strings/lt.json | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/lt.json b/src/i18n/strings/lt.json
index ef9281b5aa..db2a8a1f7b 100644
--- a/src/i18n/strings/lt.json
+++ b/src/i18n/strings/lt.json
@@ -852,5 +852,23 @@
"%(oneUser)schanged their name %(count)s times|other": "%(oneUser)s pasikeitė vardą %(count)s kartų(-us)",
"%(severalUsers)schanged their avatar %(count)s times|other": "%(severalUsers)s pasikeitė avatarą %(count)s kartų(-us)",
"%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)s pasikeitė avatarą %(count)s kartų(-us)",
- "And %(count)s more...|other": "Ir dar %(count)s..."
+ "And %(count)s more...|other": "Ir dar %(count)s...",
+ "Existing Call": "Esamas skambutis",
+ "A call is already in progress!": "Skambutis jau yra inicijuojamas!",
+ "Default": "Numatytasis",
+ "Restricted": "Apribotas",
+ "Moderator": "Moderatorius",
+ "Ignores a user, hiding their messages from you": "Nepaiso naudotojo, paslepiant nuo jūsų jo žinutes",
+ "Stops ignoring a user, showing their messages going forward": "Sustabdo naudotojo nepaisymą, rodant jo tolimesnes žinutes",
+ "Hide avatars in user and room mentions": "Slėpti avatarus naudotojų ir kambarių paminėjimuose",
+ "Revoke Moderator": "Panaikinti moderatorių",
+ "deleted": "perbrauktas",
+ "underlined": "pabrauktas",
+ "inline-code": "įterptas kodas",
+ "block-quote": "citatos blokas",
+ "bulleted-list": "suženklintasis sąrašas",
+ "numbered-list": "sąrašas su numeriais",
+ "Invites": "Pakvietimai",
+ "You have no historical rooms": "Jūs neturite istorinių kambarių",
+ "Historical": "Istoriniai"
}
From e951a22d31bff725ac2319c85d32d6c44aec30ab Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Tue, 18 Sep 2018 17:09:14 +0200
Subject: [PATCH 53/98] fix tests
---
test/components/views/rooms/RoomList-test.js | 2 ++
1 file changed, 2 insertions(+)
diff --git a/test/components/views/rooms/RoomList-test.js b/test/components/views/rooms/RoomList-test.js
index fbb2dd4af9..e512b96ba8 100644
--- a/test/components/views/rooms/RoomList-test.js
+++ b/test/components/views/rooms/RoomList-test.js
@@ -74,6 +74,7 @@ describe('RoomList', () => {
// Mock joined member
myMember = new RoomMember(movingRoomId, myUserId);
myMember.membership = 'join';
+ movingRoom.updateMyMembership('join');
movingRoom.getMember = (userId) => ({
[client.credentials.userId]: myMember,
}[userId]);
@@ -81,6 +82,7 @@ describe('RoomList', () => {
otherRoom = createRoom({name: 'Other room'});
myOtherMember = new RoomMember(otherRoom.roomId, myUserId);
myOtherMember.membership = 'join';
+ otherRoom.updateMyMembership('join');
otherRoom.getMember = (userId) => ({
[client.credentials.userId]: myOtherMember,
}[userId]);
From c2c735d5213e484af6bddfabaa48ba4647dd8821 Mon Sep 17 00:00:00 2001
From: Szimszon
Date: Tue, 18 Sep 2018 18:48:14 +0000
Subject: [PATCH 54/98] Translated using Weblate (Hungarian)
Currently translated at 100.0% (1257 of 1257 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/hu/
---
src/i18n/strings/hu.json | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json
index 1e9e96ffe8..492047361b 100644
--- a/src/i18n/strings/hu.json
+++ b/src/i18n/strings/hu.json
@@ -1270,5 +1270,10 @@
"Registration Required": "Regisztrációt igényel",
"You need to register to do this. Would you like to register now?": "Hogy ezt megtedd regisztrálnod kell. Szeretnél regisztrálni?",
"Unable to query for supported registration methods": "A támogatott regisztrációs folyamatok listáját nem sikerült lekérdezni",
- "Unable to connect to Homeserver. Retrying...": "A matrix szerverrel nem lehet felvenni a kapcsolatot. Újrapróbálkozás..."
+ "Unable to connect to Homeserver. Retrying...": "A matrix szerverrel nem lehet felvenni a kapcsolatot. Újrapróbálkozás...",
+ "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|one": "%(senderName)s szoba címnek beállította: %(addedAddresses)s.",
+ "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|other": "%(senderName)s szoba címnek hozzáadta: %(addedAddresses)s.",
+ "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|one": "%(senderName)s törölte a szoba címek közül: %(removedAddresses)s.",
+ "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|other": "%(senderName)s törölte a szoba címek közül: %(removedAddresses)s.",
+ "%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.": "%(senderName)s hozzáadta a szoba címekhez: %(addedAddresses)s és törölte a címek közül: %(removedAddresses)s."
}
From e5b151ea26ba73c342ad0d59a91b8473bc2a5a30 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?K=C3=A9vin=20C?=
Date: Tue, 18 Sep 2018 21:47:49 +0000
Subject: [PATCH 55/98] Translated using Weblate (French)
Currently translated at 100.0% (1257 of 1257 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/
---
src/i18n/strings/fr.json | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json
index bead91e6dd..9f81be1c48 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -1270,5 +1270,10 @@
"Registration Required": "Enregistrement nécessaire",
"You need to register to do this. Would you like to register now?": "Vous devez vous enregistrer pour faire cela. Voulez-vous créer un compte maintenant ?",
"Unable to query for supported registration methods": "Impossible de demander les méthodes d'enregistrement prises en charge",
- "Unable to connect to Homeserver. Retrying...": "Impossible de se connecter au serveur d'accueil. Reconnexion..."
+ "Unable to connect to Homeserver. Retrying...": "Impossible de se connecter au serveur d'accueil. Reconnexion...",
+ "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|one": "%(senderName)s a ajouté %(addedAddresses)s comme adresse pour ce salon.",
+ "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|other": "%(senderName)s a ajouté %(addedAddresses)s comme adresses pour ce salon.",
+ "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|one": "%(senderName)s a supprimé %(removedAddresses)s comme adresse pour ce salon.",
+ "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|other": "%(senderName)s a supprimé %(removedAddresses)s comme adresses pour ce salon.",
+ "%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.": "%(senderName)s a ajouté %(addedAddresses)s et supprimé %(removedAddresses)s comme adresses pour ce salon."
}
From 8d9850b7e7aa88e7dc927849416b166c92f47fad Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Wed, 19 Sep 2018 10:57:47 +0200
Subject: [PATCH 56/98] pass --travis flag to e2e tests to disable tests known
not to work on travis CI because of dinosaur ubuntu version
---
.travis-test-riot.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.travis-test-riot.sh b/.travis-test-riot.sh
index 876ce207f3..7f2660a906 100755
--- a/.travis-test-riot.sh
+++ b/.travis-test-riot.sh
@@ -34,5 +34,5 @@ ln -s $REACT_SDK_DIR/$RIOT_WEB_DIR riot/riot-web
# PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true ./install.sh
# CHROME_PATH=$(which google-chrome-stable) ./run.sh
./install.sh
-./run.sh
+./run.sh --travis
popd
From 1020580653ff975d7751a613fb191fbdadbf787d Mon Sep 17 00:00:00 2001
From: Victor Grousset
Date: Tue, 18 Sep 2018 11:50:10 +0000
Subject: [PATCH 57/98] Translated using Weblate (Esperanto)
Currently translated at 87.5% (1100 of 1257 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/eo/
---
src/i18n/strings/eo.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json
index f61f3953a6..817b738223 100644
--- a/src/i18n/strings/eo.json
+++ b/src/i18n/strings/eo.json
@@ -192,8 +192,8 @@
"Never send encrypted messages to unverified devices from this device": "Neniam sendi neĉifritajn mesaĝojn al nekontrolitaj aparatoj de tiu ĉi aparato",
"Never send encrypted messages to unverified devices in this room from this device": "Neniam sendi ĉifritajn mesaĝojn al nekontrolitaj aparatoj en tiu ĉi babilejo el tiu ĉi aparato",
"Enable inline URL previews by default": "Ŝalti entekstan antaŭrigardon al retadresoj",
- "Enable URL previews for this room (only affects you)": "Ŝalti antaŭrigardon al retadresoj por ĉi tiu ĉambro (nur pro vi)",
- "Enable URL previews by default for participants in this room": "Ŝalti antaŭrigardon al retadresoj por anoj de ĉi tiu ĉambro",
+ "Enable URL previews for this room (only affects you)": "Ŝalti URL-antaŭrigardon en ĉi tiu babilejo (nur por vi)",
+ "Enable URL previews by default for participants in this room": "Ŝalti URL-antaŭrigardon por anoj de ĉi tiu ĉambro",
"Room Colour": "Koloro de ĉambro",
"Active call (%(roomName)s)": "Aktiva voko (%(roomName)s)",
"unknown caller": "nekonata vokanto",
From 909e4052bcf581f65cff8216ac66be2fe5cffc00 Mon Sep 17 00:00:00 2001
From: random
Date: Wed, 19 Sep 2018 09:21:01 +0000
Subject: [PATCH 58/98] Translated using Weblate (Italian)
Currently translated at 100.0% (1257 of 1257 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/it/
---
src/i18n/strings/it.json | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json
index 6ed632b1b3..5b87a4012e 100644
--- a/src/i18n/strings/it.json
+++ b/src/i18n/strings/it.json
@@ -1269,5 +1269,10 @@
"Registration Required": "Registrazione necessaria",
"You need to register to do this. Would you like to register now?": "Devi registrarti per eseguire questa azione. Vuoi registrarti ora?",
"Unable to connect to Homeserver. Retrying...": "Impossibile connettersi all'homeserver. Riprovo...",
- "Unable to query for supported registration methods": "Impossibile richiedere i metodi di registrazione supportati"
+ "Unable to query for supported registration methods": "Impossibile richiedere i metodi di registrazione supportati",
+ "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|one": "%(senderName)s ha aggiunto %(addedAddresses)s come indirizzo per questa stanza.",
+ "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|other": "%(senderName)s ha aggiunto %(addedAddresses)s come indirizzi per questa stanza.",
+ "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|one": "%(senderName)s ha rimosso %(removedAddresses)s tra gli indirizzi di questa stanza.",
+ "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|other": "%(senderName)s ha rimosso %(removedAddresses)s tra gli indirizzi di questa stanza.",
+ "%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.": "%(senderName)s ha aggiunto %(addedAddresses)s e rimosso %(removedAddresses)s tra gli indirizzi di questa stanza."
}
From 93d34e7b3dcb007bca0598c98eb593b2abe5eec8 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Wed, 19 Sep 2018 12:00:29 +0200
Subject: [PATCH 59/98] fix lint
---
src/actions/MatrixActionCreators.js | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/src/actions/MatrixActionCreators.js b/src/actions/MatrixActionCreators.js
index a18dc77551..31bcac3e52 100644
--- a/src/actions/MatrixActionCreators.js
+++ b/src/actions/MatrixActionCreators.js
@@ -144,23 +144,25 @@ function createRoomTimelineAction(matrixClient, timelineEvent, room, toStartOfTi
/**
* @typedef RoomMembershipAction
* @type {Object}
- * @property {string} action 'MatrixActions.RoomMember.membership'.
- * @property {RoomMember} member the member whose membership was updated.
+ * @property {string} action 'MatrixActions.Room.myMembership'.
+ * @property {Room} room to room for which the self-membership changed.
+ * @property {string} membership the new membership
+ * @property {string} oldMembership the previous membership, can be null.
*/
/**
* Create a MatrixActions.Room.myMembership action that represents
- * a MatrixClient `RoomMember.membership` matrix event for the syncing user,
- * emitted when the member's membership is updated.
+ * a MatrixClient `Room.myMembership` event for the syncing user,
+ * emitted when the syncing user's membership is updated for a room.
*
* @param {MatrixClient} matrixClient the matrix client.
- * @param {MatrixEvent} membershipEvent the m.room.member event.
- * @param {RoomMember} member the member whose membership was updated.
- * @param {string} oldMembership the member's previous membership.
- * @returns {RoomMembershipAction} an action of type `MatrixActions.RoomMember.membership`.
+ * @param {Room} room to room for which the self-membership changed.
+ * @param {string} membership the new membership
+ * @param {string} oldMembership the previous membership, can be null.
+ * @returns {RoomMembershipAction} an action of type `MatrixActions.Room.myMembership`.
*/
function createSelfMembershipAction(matrixClient, room, membership, oldMembership) {
- return { action: 'MatrixActions.Room.myMembership', room, membership, oldMembership};
+ return { action: 'MatrixActions.Room.myMembership', room, membership, oldMembership};
}
/**
From c6fa8ea24c21621f6c879818a7f8e01dd39afaa5 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Thu, 20 Sep 2018 01:07:01 +0100
Subject: [PATCH 60/98] show canonical aliases in timeline, and set/remove
implicit ones
---
src/TextForEvent.js | 19 ++++++++++++++
.../views/room_settings/AliasSettings.js | 25 ++++++++++++++-----
src/components/views/rooms/EventTile.js | 1 +
src/i18n/strings/en_EN.json | 2 ++
4 files changed, 41 insertions(+), 6 deletions(-)
diff --git a/src/TextForEvent.js b/src/TextForEvent.js
index 6b68941ee3..6e119252f1 100644
--- a/src/TextForEvent.js
+++ b/src/TextForEvent.js
@@ -240,6 +240,24 @@ function textForRoomAliasesEvent(ev) {
}
}
+function textForCanonicalAliasEvent(ev) {
+ const senderName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
+ const oldAlias = ev.getPrevContent().alias;
+ const newAlias = ev.getContent().alias;
+
+ if (newAlias) {
+ return _t('%(senderName)s set the canonical address for this room to %(address)s.', {
+ senderName: senderName,
+ address: ev.getContent().alias,
+ });
+ }
+ else if (oldAlias) {
+ return _t('%(senderName)s removed the canonical address for this room.', {
+ senderName: senderName,
+ });
+ }
+}
+
function textForCallAnswerEvent(event) {
const senderName = event.sender ? event.sender.name : _t('Someone');
const supported = MatrixClientPeg.get().supportsVoip() ? '' : _t('(not supported by this browser)');
@@ -402,6 +420,7 @@ const handlers = {
const stateHandlers = {
'm.room.aliases': textForRoomAliasesEvent,
+ 'm.room.canonical_alias': textForCanonicalAliasEvent,
'm.room.name': textForRoomNameEvent,
'm.room.topic': textForTopicEvent,
'm.room.member': textForMemberEvent,
diff --git a/src/components/views/room_settings/AliasSettings.js b/src/components/views/room_settings/AliasSettings.js
index bd92d75dd9..58ea42d4ba 100644
--- a/src/components/views/room_settings/AliasSettings.js
+++ b/src/components/views/room_settings/AliasSettings.js
@@ -1,5 +1,6 @@
/*
Copyright 2016 OpenMarket Ltd
+Copyright 2018 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -97,18 +98,19 @@ module.exports = React.createClass({
}
}
-
- // save new canonical alias
let oldCanonicalAlias = null;
if (this.props.canonicalAliasEvent) {
oldCanonicalAlias = this.props.canonicalAliasEvent.getContent().alias;
}
- if (oldCanonicalAlias !== this.state.canonicalAlias) {
+
+ let newCanonicalAlias = this.state.canonicalAlias;
+
+ if (this.props.canSetCanonicalAlias && oldCanonicalAlias !== newCanonicalAlias) {
console.log("AliasSettings: Updating canonical alias");
promises = [Promise.all(promises).then(
MatrixClientPeg.get().sendStateEvent(
this.props.roomId, "m.room.canonical_alias", {
- alias: this.state.canonicalAlias,
+ alias: newCanonicalAlias,
}, "",
),
)];
@@ -161,6 +163,12 @@ module.exports = React.createClass({
description: _t('\'%(alias)s\' is not a valid format for an alias', { alias: alias }),
});
}
+
+ if (!this.props.canonicalAlias) {
+ this.setState({
+ canonicalAlias: alias
+ });
+ }
},
onLocalAliasChanged: function(alias, index) {
@@ -184,10 +192,15 @@ module.exports = React.createClass({
// promptly setState anyway, it's just about acceptable. The alternative
// would be to arbitrarily deepcopy to a temp variable and then setState
// that, but why bother when we can cut this corner.
- this.state.domainToAliases[localDomain].splice(index, 1);
+ const alias = this.state.domainToAliases[localDomain].splice(index, 1);
this.setState({
domainToAliases: this.state.domainToAliases,
});
+ if (this.props.canonicalAlias === alias) {
+ this.setState({
+ canonicalAlias: null,
+ });
+ }
},
onCanonicalAliasChange: function(event) {
@@ -205,7 +218,7 @@ module.exports = React.createClass({
let canonical_alias_section;
if (this.props.canSetCanonicalAlias) {
canonical_alias_section = (
-
}
+ button={_t("OK")}
+ onFinished={props.onFinished}
+ />);
+};
From 130f3cc2ff8bbc57d20c7a230537d9a5e2731bcc Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Wed, 26 Sep 2018 16:30:35 +0100
Subject: [PATCH 81/98] only get component when needed
---
src/Lifecycle.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Lifecycle.js b/src/Lifecycle.js
index 517040ebb2..434975a5bc 100644
--- a/src/Lifecycle.js
+++ b/src/Lifecycle.js
@@ -240,11 +240,11 @@ function _handleLoadSessionFailure(e) {
if (e instanceof Matrix.InvalidStoreError) {
if (e.reason === Matrix.InvalidStoreError.TOGGLED_LAZY_LOADING) {
- const LazyLoadingResyncDialog =
- sdk.getComponent("views.dialogs.LazyLoadingResyncDialog");
return Promise.resolve().then(() => {
const lazyLoadEnabled = e.value;
if (lazyLoadEnabled) {
+ const LazyLoadingResyncDialog =
+ sdk.getComponent("views.dialogs.LazyLoadingResyncDialog");
return new Promise((resolve) => {
Modal.createDialog(LazyLoadingResyncDialog, {
onFinished: resolve,
From fd2ab406d4c8b311862654b0084b1cf7bd9bb492 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Wed, 26 Sep 2018 16:48:04 +0100
Subject: [PATCH 82/98] update copy
---
src/components/views/dialogs/LazyLoadingResyncDialog.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/components/views/dialogs/LazyLoadingResyncDialog.js b/src/components/views/dialogs/LazyLoadingResyncDialog.js
index 97684f670b..b770de8d13 100644
--- a/src/components/views/dialogs/LazyLoadingResyncDialog.js
+++ b/src/components/views/dialogs/LazyLoadingResyncDialog.js
@@ -20,11 +20,11 @@ import { _t } from '../../../languageHandler';
export default (props) => {
const description =
- _t("Lazy loading has been enabled for your account. Performance!! We'll need to resync your account.");
+ _t("Riot now uses 3-5x less memory, by only loading information about other users when needed. Please wait whilst we resynchronise with the server!");
return ({description}}
button={_t("OK")}
onFinished={props.onFinished}
From e0c5b0d5ede96757eb63b1c16cfce20068232632 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Wed, 26 Sep 2018 17:23:51 +0100
Subject: [PATCH 83/98] translations
---
src/i18n/strings/en_EN.json | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index a29de76e69..94dc3cb393 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -174,6 +174,13 @@
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s removed the room name.",
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s changed the room name to %(roomName)s.",
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s sent an image.",
+ "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|other": "%(senderName)s added %(addedAddresses)s as addresses for this room.",
+ "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|one": "%(senderName)s added %(addedAddresses)s as an address for this room.",
+ "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|other": "%(senderName)s removed %(removedAddresses)s as addresses for this room.",
+ "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|one": "%(senderName)s removed %(removedAddresses)s as an address for this room.",
+ "%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.": "%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.",
+ "%(senderName)s set the main address for this room to %(address)s.": "%(senderName)s set the main address for this room to %(address)s.",
+ "%(senderName)s removed the main address for this room.": "%(senderName)s removed the main address for this room.",
"Someone": "Someone",
"(not supported by this browser)": "(not supported by this browser)",
"%(senderName)s answered the call.": "%(senderName)s answered the call.",
@@ -877,6 +884,8 @@
"Ignore request": "Ignore request",
"Loading device info...": "Loading device info...",
"Encryption key request": "Encryption key request",
+ "Riot now uses 3-5x less memory, by only loading information about other users when needed. Please wait whilst we resynchronise with the server!": "Riot now uses 3-5x less memory, by only loading information about other users when needed. Please wait whilst we resynchronise with the server!",
+ "Updating Riot": "Updating Riot",
"Failed to upgrade room": "Failed to upgrade room",
"The room upgrade could not be completed": "The room upgrade could not be completed",
"Upgrade this room to version %(version)s": "Upgrade this room to version %(version)s",
@@ -1246,13 +1255,6 @@
"Import room keys": "Import room keys",
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.",
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.",
- "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|one": "%(senderName)s added %(addedAddresses)s as an address for this room.",
- "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|other": "%(senderName)s added %(addedAddresses)s as addresses for this room.",
- "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|one": "%(senderName)s removed %(removedAddresses)s as an address for this room.",
- "%(senderName)s removed %(count)s %(removedAddresses)s as addresses for this room.|other": "%(senderName)s removed %(removedAddresses)s as addresses for this room.",
- "%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.": "%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.",
- "%(senderName)s set the main address for this room to %(address)s.": "%(senderName)s set the main address for this room to %(address)s.",
- "%(senderName)s removed the main address for this room.": "%(senderName)s removed the main address for this room.",
"File to import": "File to import",
"Import": "Import",
"Failed to set direct chat tag": "Failed to set direct chat tag",
From 83c2bd7313334ff649f7114f9851facca4c3d24f Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Wed, 26 Sep 2018 16:05:08 +0000
Subject: [PATCH 84/98] Translated using Weblate (English (United States))
Currently translated at 65.0% (819 of 1259 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/en_US/
---
src/i18n/strings/en_US.json | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/src/i18n/strings/en_US.json b/src/i18n/strings/en_US.json
index 6fc708a8c5..6f0708f0c2 100644
--- a/src/i18n/strings/en_US.json
+++ b/src/i18n/strings/en_US.json
@@ -828,8 +828,5 @@
"Collapse panel": "Collapse panel",
"With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!": "With your current browser, the look and feel of the application may be completely incorrect, and some or all features may not function. If you want to try it anyway you can continue, but you are on your own in terms of any issues you may encounter!",
"Checking for an update...": "Checking for an update...",
- "There are advanced notifications which are not shown here": "There are advanced notifications which are not shown here",
- "The platform you're on": "Platformen du använder",
- "The version of Riot.im": "Versionen av Riot.im",
- "Whether or not you're logged in (we don't record your user name)": "Om du är inloggad eller inte (vi sparar inte ditt användarnamn)"
+ "There are advanced notifications which are not shown here": "There are advanced notifications which are not shown here"
}
From f4860cfe6370e30a160ccabce6d7f38dce1b7d86 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Wed, 26 Sep 2018 18:22:05 +0100
Subject: [PATCH 85/98] update copyright notice
---
src/components/views/dialogs/LazyLoadingResyncDialog.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/views/dialogs/LazyLoadingResyncDialog.js b/src/components/views/dialogs/LazyLoadingResyncDialog.js
index b770de8d13..0e6259c84d 100644
--- a/src/components/views/dialogs/LazyLoadingResyncDialog.js
+++ b/src/components/views/dialogs/LazyLoadingResyncDialog.js
@@ -1,5 +1,5 @@
/*
-Copyright 2015, 2016 OpenMarket Ltd
+Copyright 2018 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
From 99a5989c03f84c88d113385a2d462315966185fe Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Thu, 27 Sep 2018 13:48:36 +0100
Subject: [PATCH 86/98] bump matrix-js-sdk
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 20724b5910..dd241cf6c3 100644
--- a/package.json
+++ b/package.json
@@ -75,7 +75,7 @@
"linkifyjs": "^2.1.6",
"lodash": "^4.13.1",
"lolex": "2.3.2",
- "matrix-js-sdk": "0.11.0",
+ "matrix-js-sdk": "0.11.1-rc.1",
"optimist": "^0.6.1",
"pako": "^1.0.5",
"prop-types": "^15.5.8",
From bd88bf930350799bcaa6c7cb1cddb1adb4dff8c4 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Thu, 27 Sep 2018 13:51:11 +0100
Subject: [PATCH 87/98] Prepare changelog for v0.13.5-rc.1
---
CHANGELOG.md | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 390b90a41e..28960faff0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,42 @@
+Changes in [0.13.5-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.13.5-rc.1) (2018-09-27)
+===============================================================================================================
+[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.13.4...v0.13.5-rc.1)
+
+ * resync when LL is toggled, show message when enabled
+ [\#2178](https://github.com/matrix-org/matrix-react-sdk/pull/2178)
+ * Update from Weblate.
+ [\#2179](https://github.com/matrix-org/matrix-react-sdk/pull/2179)
+ * Split npm start into an init and watch script
+ [\#2175](https://github.com/matrix-org/matrix-react-sdk/pull/2175)
+ * show canonical aliases in timeline, and set/remove implicit ones
+ [\#2171](https://github.com/matrix-org/matrix-react-sdk/pull/2171)
+ * Fix stale RR and improve LL reliability in RoomView & MemberList.
+ [\#2168](https://github.com/matrix-org/matrix-react-sdk/pull/2168)
+ * pass --travis flag to e2e tests to disable tests known not to work Travis CI
+ [\#2170](https://github.com/matrix-org/matrix-react-sdk/pull/2170)
+ * Add m.room.aliases to the timeline
+ [\#2167](https://github.com/matrix-org/matrix-react-sdk/pull/2167)
+ * postpone loading the members until the user joined the room
+ [\#2165](https://github.com/matrix-org/matrix-react-sdk/pull/2165)
+ * Allow translation tags object to be a variable
+ [\#2166](https://github.com/matrix-org/matrix-react-sdk/pull/2166)
+ * Don't try to exit fullscreen if not fullscreen
+ [\#2164](https://github.com/matrix-org/matrix-react-sdk/pull/2164)
+ * avoid updating the memberlist while the spinner is shown
+ [\#2161](https://github.com/matrix-org/matrix-react-sdk/pull/2161)
+ * fix logging room id when LL members fail
+ [\#2163](https://github.com/matrix-org/matrix-react-sdk/pull/2163)
+ * dont keep the spinner in the memberlist when fetching /members fails
+ [\#2162](https://github.com/matrix-org/matrix-react-sdk/pull/2162)
+ * only dispatch an action for self-membership
+ [\#2160](https://github.com/matrix-org/matrix-react-sdk/pull/2160)
+ * avoid unneeded lookups in memberDict
+ [\#2153](https://github.com/matrix-org/matrix-react-sdk/pull/2153)
+ * Update from Weblate.
+ [\#2157](https://github.com/matrix-org/matrix-react-sdk/pull/2157)
+ * avoid memberlist refresh for events related to rooms other but the current
+ [\#2156](https://github.com/matrix-org/matrix-react-sdk/pull/2156)
+
Changes in [0.13.4](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.13.4) (2018-09-10)
=====================================================================================================
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.13.4-rc.1...v0.13.4)
From 1b224c2205b1405ffb6aba925d04f267bab6ff5b Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Thu, 27 Sep 2018 13:51:12 +0100
Subject: [PATCH 88/98] v0.13.5-rc.1
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index dd241cf6c3..2ad5b84d31 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "matrix-react-sdk",
- "version": "0.13.4",
+ "version": "0.13.5-rc.1",
"description": "SDK for matrix.org using React",
"author": "matrix.org",
"repository": {
From de132a8f8e5c57cf81a1ea9728b662276f029844 Mon Sep 17 00:00:00 2001
From: Travis Ralston
Date: Thu, 27 Sep 2018 11:53:45 -0600
Subject: [PATCH 89/98] Communicate early that a 3pid is required during
registration if needed
Fixes https://github.com/vector-im/riot-web/issues/7297
---
.../structures/login/Registration.js | 6 ++
.../views/login/RegistrationForm.js | 8 ++-
src/i18n/strings/en_EN.json | 68 ++++++++++---------
3 files changed, 47 insertions(+), 35 deletions(-)
diff --git a/src/components/structures/login/Registration.js b/src/components/structures/login/Registration.js
index f3744b7235..30afaf4f64 100644
--- a/src/components/structures/login/Registration.js
+++ b/src/components/structures/login/Registration.js
@@ -321,6 +321,12 @@ module.exports = React.createClass({
case "RegistrationForm.ERR_PHONE_NUMBER_INVALID":
errMsg = _t('This doesn\'t look like a valid phone number.');
break;
+ case "RegistrationForm.ERR_MISSING_EMAIL":
+ errMsg = _t('An email address is required to register on this homeserver.');
+ break;
+ case "RegistrationForm.ERR_MISSING_PHONE_NUMBER":
+ errMsg = _t('A phone number is required to register on this homeserver.');
+ break;
case "RegistrationForm.ERR_USERNAME_INVALID":
errMsg = _t('User names may only contain letters, numbers, dots, hyphens and underscores.');
break;
diff --git a/src/components/views/login/RegistrationForm.js b/src/components/views/login/RegistrationForm.js
index 1a365277c1..fe977025ae 100644
--- a/src/components/views/login/RegistrationForm.js
+++ b/src/components/views/login/RegistrationForm.js
@@ -182,12 +182,16 @@ module.exports = React.createClass({
});
}
const emailValid = email === '' || Email.looksValid(email);
- this.markFieldValid(field_id, emailValid, "RegistrationForm.ERR_EMAIL_INVALID");
+ if (this._authStepIsRequired('m.login.email.identity') && (!emailValid || email === '')) {
+ this.markFieldValid(field_id, false, "RegistrationForm.ERR_MISSING_EMAIL");
+ } else this.markFieldValid(field_id, emailValid, "RegistrationForm.ERR_EMAIL_INVALID");
break;
case FIELD_PHONE_NUMBER:
const phoneNumber = this.refs.phoneNumber ? this.refs.phoneNumber.value : '';
const phoneNumberValid = phoneNumber === '' || phoneNumberLooksValid(phoneNumber);
- this.markFieldValid(field_id, phoneNumberValid, "RegistrationForm.ERR_PHONE_NUMBER_INVALID");
+ if (this._authStepIsRequired('m.login.msisdn') && (!phoneNumberValid || phoneNumber === '')) {
+ this.markFieldValid(field_id, false, "RegistrationForm.ERR_MISSING_PHONE_NUMBER");
+ } else this.markFieldValid(field_id, phoneNumberValid, "RegistrationForm.ERR_PHONE_NUMBER_INVALID");
break;
case FIELD_USERNAME:
// XXX: SPEC-1
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 94dc3cb393..b69475c8b9 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -43,6 +43,10 @@
"The file '%(fileName)s' failed to upload": "The file '%(fileName)s' failed to upload",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "The file '%(fileName)s' exceeds this home server's size limit for uploads",
"Upload Failed": "Upload Failed",
+ "Failure to create room": "Failure to create room",
+ "Server may be unavailable, overloaded, or you hit a bug.": "Server may be unavailable, overloaded, or you hit a bug.",
+ "Send anyway": "Send anyway",
+ "Send": "Send",
"Sun": "Sun",
"Mon": "Mon",
"Tue": "Tue",
@@ -82,6 +86,7 @@
"Failed to invite users to community": "Failed to invite users to community",
"Failed to invite users to %(groupId)s": "Failed to invite users to %(groupId)s",
"Failed to add the following rooms to %(groupId)s:": "Failed to add the following rooms to %(groupId)s:",
+ "Unnamed Room": "Unnamed Room",
"Riot does not have permission to send you notifications - please check your browser settings": "Riot does not have permission to send you notifications - please check your browser settings",
"Riot was not given permission to send notifications - please try again": "Riot was not given permission to send notifications - please try again",
"Unable to enable Notifications": "Unable to enable Notifications",
@@ -206,11 +211,6 @@
"%(names)s and %(count)s others are typing|other": "%(names)s and %(count)s others are typing",
"%(names)s and %(count)s others are typing|one": "%(names)s and one other is typing",
"%(names)s and %(lastPerson)s are typing": "%(names)s and %(lastPerson)s are typing",
- "Failure to create room": "Failure to create room",
- "Server may be unavailable, overloaded, or you hit a bug.": "Server may be unavailable, overloaded, or you hit a bug.",
- "Send anyway": "Send anyway",
- "Send": "Send",
- "Unnamed Room": "Unnamed Room",
"This homeserver has hit its Monthly Active User limit.": "This homeserver has hit its Monthly Active User limit.",
"This homeserver has exceeded one of its resource limits.": "This homeserver has exceeded one of its resource limits.",
"Please contact your service administrator to continue using the service.": "Please contact your service administrator to continue using the service.",
@@ -331,6 +331,31 @@
"Off": "Off",
"On": "On",
"Noisy": "Noisy",
+ "Invalid alias format": "Invalid alias format",
+ "'%(alias)s' is not a valid format for an alias": "'%(alias)s' is not a valid format for an alias",
+ "Invalid address format": "Invalid address format",
+ "'%(alias)s' is not a valid format for an address": "'%(alias)s' is not a valid format for an address",
+ "not specified": "not specified",
+ "not set": "not set",
+ "Remote addresses for this room:": "Remote addresses for this room:",
+ "Addresses": "Addresses",
+ "The main address for this room is": "The main address for this room is",
+ "Local addresses for this room:": "Local addresses for this room:",
+ "This room has no local addresses": "This room has no local addresses",
+ "New address (e.g. #foo:%(localDomain)s)": "New address (e.g. #foo:%(localDomain)s)",
+ "Invalid community ID": "Invalid community ID",
+ "'%(groupId)s' is not a valid community ID": "'%(groupId)s' is not a valid community ID",
+ "Flair": "Flair",
+ "Showing flair for these communities:": "Showing flair for these communities:",
+ "This room is not showing flair for any communities": "This room is not showing flair for any communities",
+ "New community ID (e.g. +foo:%(localDomain)s)": "New community ID (e.g. +foo:%(localDomain)s)",
+ "You have enabled URL previews by default.": "You have enabled URL previews by default.",
+ "You have disabled URL previews by default.": "You have disabled URL previews by default.",
+ "URL previews are enabled by default for participants in this room.": "URL previews are enabled by default for participants in this room.",
+ "URL previews are disabled by default for participants in this room.": "URL previews are disabled by default for participants in this room.",
+ "In encrypted rooms, like this one, URL previews are disabled by default to ensure that your homeserver (where the previews are generated) cannot gather information about links you see in this room.": "In encrypted rooms, like this one, URL previews are disabled by default to ensure that your homeserver (where the previews are generated) cannot gather information about links you see in this room.",
+ "URL Previews": "URL Previews",
+ "When someone puts a URL in their message, a URL preview can be shown to give more information about that link such as the title, description, and an image from the website.": "When someone puts a URL in their message, a URL preview can be shown to give more information about that link such as the title, description, and an image from the website.",
"Cannot add any more widgets": "Cannot add any more widgets",
"The maximum permitted number of widgets have already been added to this room.": "The maximum permitted number of widgets have already been added to this room.",
"Add a widget": "Add a widget",
@@ -435,11 +460,11 @@
"At this time it is not possible to reply with an emote.": "At this time it is not possible to reply with an emote.",
"Markdown is disabled": "Markdown is disabled",
"Markdown is enabled": "Markdown is enabled",
- "Unpin Message": "Unpin Message",
- "Jump to message": "Jump to message",
"No pinned messages.": "No pinned messages.",
"Loading...": "Loading...",
"Pinned Messages": "Pinned Messages",
+ "Unpin Message": "Unpin Message",
+ "Jump to message": "Jump to message",
"%(duration)ss": "%(duration)ss",
"%(duration)sm": "%(duration)sm",
"%(duration)sh": "%(duration)sh",
@@ -580,31 +605,6 @@
"Scroll to unread messages": "Scroll to unread messages",
"Jump to first unread message.": "Jump to first unread message.",
"Close": "Close",
- "Invalid alias format": "Invalid alias format",
- "'%(alias)s' is not a valid format for an alias": "'%(alias)s' is not a valid format for an alias",
- "Invalid address format": "Invalid address format",
- "'%(alias)s' is not a valid format for an address": "'%(alias)s' is not a valid format for an address",
- "not specified": "not specified",
- "not set": "not set",
- "Remote addresses for this room:": "Remote addresses for this room:",
- "Addresses": "Addresses",
- "The main address for this room is": "The main address for this room is",
- "Local addresses for this room:": "Local addresses for this room:",
- "This room has no local addresses": "This room has no local addresses",
- "New address (e.g. #foo:%(localDomain)s)": "New address (e.g. #foo:%(localDomain)s)",
- "Invalid community ID": "Invalid community ID",
- "'%(groupId)s' is not a valid community ID": "'%(groupId)s' is not a valid community ID",
- "Flair": "Flair",
- "Showing flair for these communities:": "Showing flair for these communities:",
- "This room is not showing flair for any communities": "This room is not showing flair for any communities",
- "New community ID (e.g. +foo:%(localDomain)s)": "New community ID (e.g. +foo:%(localDomain)s)",
- "You have enabled URL previews by default.": "You have enabled URL previews by default.",
- "You have disabled URL previews by default.": "You have disabled URL previews by default.",
- "URL previews are enabled by default for participants in this room.": "URL previews are enabled by default for participants in this room.",
- "URL previews are disabled by default for participants in this room.": "URL previews are disabled by default for participants in this room.",
- "In encrypted rooms, like this one, URL previews are disabled by default to ensure that your homeserver (where the previews are generated) cannot gather information about links you see in this room.": "In encrypted rooms, like this one, URL previews are disabled by default to ensure that your homeserver (where the previews are generated) cannot gather information about links you see in this room.",
- "URL Previews": "URL Previews",
- "When someone puts a URL in their message, a URL preview can be shown to give more information about that link such as the title, description, and an image from the website.": "When someone puts a URL in their message, a URL preview can be shown to give more information about that link such as the title, description, and an image from the website.",
"Sunday": "Sunday",
"Monday": "Monday",
"Tuesday": "Tuesday",
@@ -984,7 +984,7 @@
"You must register to use this functionality": "You must register to use this functionality",
"You must join the room to see its files": "You must join the room to see its files",
"There are no visible files in this room": "There are no visible files in this room",
- "
HTML for your community's page
\n
\n Use the long description to introduce new members to the community, or distribute\n some important links\n
\n
\n You can even use 'img' tags\n
\n": "
HTML for your community's page
\n
\n Use the long description to introduce new members to the community, or distribute\n some important links\n
\n
\n You can even use 'img' tags\n
\n",
+ "
HTML for your community's page
\r\n
\r\n Use the long description to introduce new members to the community, or distribute\r\n some important links\r\n
\r\n
\r\n You can even use 'img' tags\r\n
\r\n": "
HTML for your community's page
\r\n
\r\n Use the long description to introduce new members to the community, or distribute\r\n some important links\r\n
\r\n
\r\n You can even use 'img' tags\r\n
\r\n",
"Add rooms to the community summary": "Add rooms to the community summary",
"Which rooms would you like to add to this summary?": "Which rooms would you like to add to this summary?",
"Add to summary": "Add to summary",
@@ -1219,6 +1219,8 @@
"Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Password too short (min %(MIN_PASSWORD_LENGTH)s).",
"This doesn't look like a valid email address.": "This doesn't look like a valid email address.",
"This doesn't look like a valid phone number.": "This doesn't look like a valid phone number.",
+ "An email address is required to register on this homeserver.": "An email address is required to register on this homeserver.",
+ "A phone number is required to register on this homeserver.": "A phone number is required to register on this homeserver.",
"You need to enter a user name.": "You need to enter a user name.",
"An unknown error occurred.": "An unknown error occurred.",
"I already have an account": "I already have an account",
From fb262596b2814da4bb968f7165a9ce78a092be4d Mon Sep 17 00:00:00 2001
From: Travis Ralston
Date: Thu, 27 Sep 2018 11:55:57 -0600
Subject: [PATCH 90/98] Provide more helpful errors when i18n generation fails
Also fix TextForEvent.js so it doesn't break the script. Using a variable here is not recognized, so the object has been moved inline instead.
---
scripts/gen-i18n.js | 1 +
src/TextForEvent.js | 12 +++++-------
2 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/scripts/gen-i18n.js b/scripts/gen-i18n.js
index c35cd3466a..a1a2e6f7c5 100755
--- a/scripts/gen-i18n.js
+++ b/scripts/gen-i18n.js
@@ -158,6 +158,7 @@ function getTranslationsJs(file) {
} catch (e) {
console.log();
console.error(`ERROR: ${file}:${node.loc.start.line} ${tKey}`);
+ console.error(e);
process.exit(1);
}
}
diff --git a/src/TextForEvent.js b/src/TextForEvent.js
index 2b19216a52..bb555d2aa6 100644
--- a/src/TextForEvent.js
+++ b/src/TextForEvent.js
@@ -228,14 +228,12 @@ function textForRoomAliasesEvent(ev) {
removedAddresses: removedAliases.join(', '),
});
} else {
- const args = {
- senderName: senderName,
- addedAddresses: addedAliases.join(', '),
- removedAddresses: removedAliases.join(', '),
- };
return _t(
- '%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.',
- args,
+ '%(senderName)s added %(addedAddresses)s and removed %(removedAddresses)s as addresses for this room.', {
+ senderName: senderName,
+ addedAddresses: addedAliases.join(', '),
+ removedAddresses: removedAliases.join(', '),
+ },
);
}
}
From 16b2fb7fe624ff66e59241c5b1207245c15393de Mon Sep 17 00:00:00 2001
From: Travis Ralston
Date: Thu, 27 Sep 2018 14:31:55 -0600
Subject: [PATCH 91/98] Show the 'homeserver unavailable' warning when the
first sync fails
Fixes https://github.com/vector-im/riot-web/issues/7380
---
src/components/structures/MatrixChat.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js
index 71e61cda22..c2b99d2765 100644
--- a/src/components/structures/MatrixChat.js
+++ b/src/components/structures/MatrixChat.js
@@ -1253,8 +1253,8 @@ export default React.createClass({
// its own dispatch).
dis.dispatch({action: 'sync_state', prevState, state});
- if (state === "ERROR") {
- self.setState({syncError: data.error});
+ if (state === "ERROR" || state === "RECONNECTING") {
+ self.setState({syncError: data.error || true});
} else if (self.state.syncError) {
self.setState({syncError: null});
}
From d839629aea0f6a2322d4ee7b3137abc1fadb8481 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Thu, 27 Sep 2018 23:51:03 +0100
Subject: [PATCH 92/98] fudge hangup reasons
---
src/TextForEvent.js | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/TextForEvent.js b/src/TextForEvent.js
index 2b19216a52..be244e292c 100644
--- a/src/TextForEvent.js
+++ b/src/TextForEvent.js
@@ -275,6 +275,12 @@ function textForCallHangupEvent(event) {
reason = _t('(could not connect media)');
} else if (eventContent.reason === "invite_timeout") {
reason = _t('(no answer)');
+ } else if (eventContent.reason === "user hangup") {
+ // workaround for https://github.com/vector-im/riot-web/issues/5178
+ // it seems Android randomly sets a reason of "user hangup" which is
+ // interpreted as an error code :(
+ // https://github.com/vector-im/riot-android/issues/2623
+ reason = '';
} else {
reason = _t('(unknown failure: %(reason)s)', {reason: eventContent.reason});
}
From 6652d2b0e67f1e330354a699e3c6afcbe5a9e14d Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Fri, 28 Sep 2018 21:05:05 +0100
Subject: [PATCH 93/98] try to encourage people to attach logs to bugs
---
src/components/views/dialogs/BugReportDialog.js | 10 +++++-----
src/i18n/strings/en_EN.json | 4 ++--
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/components/views/dialogs/BugReportDialog.js b/src/components/views/dialogs/BugReportDialog.js
index 83cdb1f07f..c874049cc6 100644
--- a/src/components/views/dialogs/BugReportDialog.js
+++ b/src/components/views/dialogs/BugReportDialog.js
@@ -140,9 +140,9 @@ export default class BugReportDialog extends React.Component {
"not contain messages.",
) }
-
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 94dc3cb393..8448f8d7d6 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -817,8 +817,8 @@
"Failed to send logs: ": "Failed to send logs: ",
"Submit debug logs": "Submit debug logs",
"Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.",
- "Riot bugs are tracked on GitHub: create a GitHub issue.": "Riot bugs are tracked on GitHub: create a GitHub issue.",
- "GitHub issue link:": "GitHub issue link:",
+ "Before submitting logs, you must create a GitHub issue to describe your problem.": "Before submitting logs, you must create a GitHub issue to describe your problem.",
+ "What GitHub issue are these logs for?": "What GitHub issue are these logs for?",
"Notes:": "Notes:",
"Send logs": "Send logs",
"Unavailable": "Unavailable",
From bccfb5dafca12d8b7b9e448f221ac7fc9aa1072c Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Mon, 1 Oct 2018 13:27:26 +0100
Subject: [PATCH 94/98] better englishing
---
src/components/structures/UserSettings.js | 2 +-
src/i18n/strings/en_EN.json | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/components/structures/UserSettings.js b/src/components/structures/UserSettings.js
index 53e1ddea71..68009a74a8 100644
--- a/src/components/structures/UserSettings.js
+++ b/src/components/structures/UserSettings.js
@@ -803,7 +803,7 @@ module.exports = React.createClass({
}
return (
-
{ _t("Debug Logs Submission") }
+
{ _t("Submit Debug Logs") }
{
_t( "If you've submitted a bug via GitHub, debug logs can help " +
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index cd6891c767..5ec6a7c1ff 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -1137,7 +1137,7 @@
"Device ID:": "Device ID:",
"Device key:": "Device key:",
"Ignored Users": "Ignored Users",
- "Debug Logs Submission": "Debug Logs Submission",
+ "Submit Debug Logs": "Submit Debug Logs",
"If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.": "If you've submitted a bug via GitHub, debug logs can help us track down the problem. Debug logs contain application usage data including your username, the IDs or aliases of the rooms or groups you have visited and the usernames of other users. They do not contain messages.",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot collects anonymous analytics to allow us to improve the application.",
"Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.": "Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.",
From f8ffb155778ef25ca56fbc37a650a552bfc0d4f3 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Mon, 1 Oct 2018 15:49:01 +0200
Subject: [PATCH 95/98] update matrix-js-sdk version to latest release
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 2ad5b84d31..6d78827229 100644
--- a/package.json
+++ b/package.json
@@ -75,7 +75,7 @@
"linkifyjs": "^2.1.6",
"lodash": "^4.13.1",
"lolex": "2.3.2",
- "matrix-js-sdk": "0.11.1-rc.1",
+ "matrix-js-sdk": "0.11.1",
"optimist": "^0.6.1",
"pako": "^1.0.5",
"prop-types": "^15.5.8",
From d2d48a0b20e2214d0846915a4a9cd861177d24f8 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Mon, 1 Oct 2018 15:51:23 +0200
Subject: [PATCH 96/98] Prepare changelog for v0.13.5
---
CHANGELOG.md | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 28960faff0..d007be0f4b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+Changes in [0.13.5](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.13.5) (2018-10-01)
+=====================================================================================================
+[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.13.5-rc.1...v0.13.5)
+
+ * No changes since rc.1
+
Changes in [0.13.5-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.13.5-rc.1) (2018-09-27)
===============================================================================================================
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.13.4...v0.13.5-rc.1)
@@ -898,7 +904,7 @@ Changes in [0.12.0-rc.7](https://github.com/matrix-org/matrix-react-sdk/releases
[\#1816](https://github.com/matrix-org/matrix-react-sdk/pull/1816)
* Improve group joining/leaving feedback
[\#1831](https://github.com/matrix-org/matrix-react-sdk/pull/1831)
-
+
Changes in [0.12.0-rc.6](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.12.0-rc.6) (2018-04-09)
===============================================================================================================
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.12.0-rc.5...v0.12.0-rc.6)
From c4d39eebe7d514c70d187c50b0babf0c87111767 Mon Sep 17 00:00:00 2001
From: Bruno Windels
Date: Mon, 1 Oct 2018 16:07:31 +0200
Subject: [PATCH 97/98] v0.13.5
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 6d78827229..d8f44c0fb0 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "matrix-react-sdk",
- "version": "0.13.5-rc.1",
+ "version": "0.13.5",
"description": "SDK for matrix.org using React",
"author": "matrix.org",
"repository": {
From ef3d1a611a51ff0e24a67ecd7b850811e8ac4b2f Mon Sep 17 00:00:00 2001
From: Aaron Raimist
Date: Mon, 1 Oct 2018 19:57:27 -0500
Subject: [PATCH 98/98] Fix Promise.defer warning in ScalarAuthClient.js
Signed-off-by: Aaron Raimist
---
src/ScalarAuthClient.js | 117 ++++++++++++++++++++--------------------
1 file changed, 57 insertions(+), 60 deletions(-)
diff --git a/src/ScalarAuthClient.js b/src/ScalarAuthClient.js
index c7e439bf2e..40467ec580 100644
--- a/src/ScalarAuthClient.js
+++ b/src/ScalarAuthClient.js
@@ -63,25 +63,24 @@ class ScalarAuthClient {
validateToken(token) {
let url = SdkConfig.get().integrations_rest_url + "/account";
- const defer = Promise.defer();
- request({
- method: "GET",
- uri: url,
- qs: {scalar_token: token},
- json: true,
- }, (err, response, body) => {
- if (err) {
- defer.reject(err);
- } else if (response.statusCode / 100 !== 2) {
- defer.reject({statusCode: response.statusCode});
- } else if (!body || !body.user_id) {
- defer.reject(new Error("Missing user_id in response"));
- } else {
- defer.resolve(body.user_id);
- }
- });
-
- return defer.promise;
+ return new Promise(function(resolve, reject) {
+ request({
+ method: "GET",
+ uri: url,
+ qs: {scalar_token: token},
+ json: true,
+ }, (err, response, body) => {
+ if (err) {
+ reject(err);
+ } else if (response.statusCode / 100 !== 2) {
+ reject({statusCode: response.statusCode});
+ } else if (!body || !body.user_id) {
+ reject(new Error("Missing user_id in response"));
+ } else {
+ resolve(body.user_id);
+ }
+ });
+ })
}
registerForToken() {
@@ -96,56 +95,54 @@ class ScalarAuthClient {
}
exchangeForScalarToken(openid_token_object) {
- const defer = Promise.defer();
-
const scalar_rest_url = SdkConfig.get().integrations_rest_url;
- request({
- method: 'POST',
- uri: scalar_rest_url+'/register',
- body: openid_token_object,
- json: true,
- }, (err, response, body) => {
- if (err) {
- defer.reject(err);
- } else if (response.statusCode / 100 !== 2) {
- defer.reject({statusCode: response.statusCode});
- } else if (!body || !body.scalar_token) {
- defer.reject(new Error("Missing scalar_token in response"));
- } else {
- defer.resolve(body.scalar_token);
- }
- });
- return defer.promise;
+ return new Promise(function(resolve, reject) {
+ request({
+ method: 'POST',
+ uri: scalar_rest_url+'/register',
+ body: openid_token_object,
+ json: true,
+ }, (err, response, body) => {
+ if (err) {
+ reject(err);
+ } else if (response.statusCode / 100 !== 2) {
+ reject({statusCode: response.statusCode});
+ } else if (!body || !body.scalar_token) {
+ reject(new Error("Missing scalar_token in response"));
+ } else {
+ resolve(body.scalar_token);
+ }
+ });
+ })
}
getScalarPageTitle(url) {
- const defer = Promise.defer();
-
let scalarPageLookupUrl = SdkConfig.get().integrations_rest_url + '/widgets/title_lookup';
scalarPageLookupUrl = this.getStarterLink(scalarPageLookupUrl);
scalarPageLookupUrl += '&curl=' + encodeURIComponent(url);
- request({
- method: 'GET',
- uri: scalarPageLookupUrl,
- json: true,
- }, (err, response, body) => {
- if (err) {
- defer.reject(err);
- } else if (response.statusCode / 100 !== 2) {
- defer.reject({statusCode: response.statusCode});
- } else if (!body) {
- defer.reject(new Error("Missing page title in response"));
- } else {
- let title = "";
- if (body.page_title_cache_item && body.page_title_cache_item.cached_title) {
- title = body.page_title_cache_item.cached_title;
- }
- defer.resolve(title);
- }
- });
- return defer.promise;
+ return new Promise(function(resolve, reject) {
+ request({
+ method: 'GET',
+ uri: scalarPageLookupUrl,
+ json: true,
+ }, (err, response, body) => {
+ if (err) {
+ reject(err);
+ } else if (response.statusCode / 100 !== 2) {
+ reject({statusCode: response.statusCode});
+ } else if (!body) {
+ reject(new Error("Missing page title in response"));
+ } else {
+ let title = "";
+ if (body.page_title_cache_item && body.page_title_cache_item.cached_title) {
+ title = body.page_title_cache_item.cached_title;
+ }
+ resolve(title);
+ }
+ });
+ })
}
/**