From 29d48e5dad8aad4bd7288f85aaf146d60ede3844 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 15 Jul 2018 22:48:25 +0100 Subject: [PATCH 001/162] guests trying to join communities should fire the ILAG flow. Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/structures/GroupView.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/components/structures/GroupView.js b/src/components/structures/GroupView.js index 801d2e282e..9498c2aa2a 100644 --- a/src/components/structures/GroupView.js +++ b/src/components/structures/GroupView.js @@ -723,6 +723,11 @@ export default React.createClass({ }, _onJoinClick: async function() { + if (this._matrixClient.isGuest()) { + dis.dispatch({action: 'view_set_mxid'}); + return; + } + this.setState({membershipBusy: true}); // Wait 500ms to prevent flashing. Do this before sending a request otherwise we risk the From 85a2b76ca00a6e5d370a33a0dd4a6d4e22236ea9 Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 16 Aug 2018 13:33:57 +0000 Subject: [PATCH 002/162] Added translation using Weblate (Georgian) --- src/i18n/strings/ka.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/i18n/strings/ka.json diff --git a/src/i18n/strings/ka.json b/src/i18n/strings/ka.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/src/i18n/strings/ka.json @@ -0,0 +1 @@ +{} From e79edfc0d2832e4507b22b86dad90b162867e023 Mon Sep 17 00:00:00 2001 From: csybr Date: Thu, 16 Aug 2018 13:42:59 +0000 Subject: [PATCH 003/162] Translated using Weblate (Norwegian Nynorsk) Currently translated at 98.4% (1214 of 1233 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nn/ --- src/i18n/strings/nn.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/nn.json b/src/i18n/strings/nn.json index f8384a0455..66269a764d 100644 --- a/src/i18n/strings/nn.json +++ b/src/i18n/strings/nn.json @@ -200,7 +200,7 @@ "Unnamed Room": "Rom utan Namn", "Your browser does not support the required cryptography extensions": "Nettlesaren din støttar ikkje dei naudsynte kryptografiske utvidingane", "Not a valid Riot keyfile": "Ikkje ei gyldig Riot-nykelfil", - "Authentication check failed: incorrect password?": "Autentifiseringssjekk mislukkast: urett passord?", + "Authentication check failed: incorrect password?": "Godkjenningssjekk mislukkast: urett passord?", "Failed to join room": "Fekk ikkje til å gå inn i rom", "Message Pinning": "Meldingsfesting", "Disable Emoji suggestions while typing": "Skru emojiframlegg av mens ein skriv", From 226b7bbe0488fd10c103215c1117c92dd309d329 Mon Sep 17 00:00:00 2001 From: random Date: Thu, 16 Aug 2018 15:22:02 +0000 Subject: [PATCH 004/162] Translated using Weblate (Italian) Currently translated at 100.0% (1233 of 1233 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 | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index 6b2a41f4fb..04e7c20e86 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -14,7 +14,7 @@ "Close": "Chiudi", "Create new room": "Crea una nuova stanza", "Custom Server Options": "Opzioni Server Personalizzate", - "Dismiss": "Scarta", + "Dismiss": "Chiudi", "Error": "Errore", "Favourite": "Preferito", "OK": "OK", @@ -1230,5 +1230,24 @@ "This homeserver has hit its Monthly Active User limit": "Questo homeserver ha raggiunto il suo limite di utenti attivi mensili", "Please contact your service administrator to continue using this service.": "Contatta l'amministratore del servizio per continuare ad usarlo.", "Internal room ID: ": "ID interno della stanza: ", - "Room version number: ": "Numero di versione della stanza: " + "Room version number: ": "Numero di versione della stanza: ", + "There is a known vulnerability affecting this room.": "C'è una vulnerabilità nota che affligge questa stanza.", + "This room version is vulnerable to malicious modification of room state.": "La versione di questa stanza è vulnerabile a modifiche malevole dello stato della stanza.", + "Click here to upgrade to the latest room version and ensure room integrity is protected.": "Clicca qui per aggiornare all'ultima versione ed assicurare che l'integrità della stanza sia protetta.", + "Only room administrators will see this warning": "Solo gli amministratori della stanza vedranno questo avviso", + "Please contact your service administrator to continue using the service.": "Contatta l'amministratore del servizio per continuare ad usarlo.", + "This homeserver has hit its Monthly Active User limit.": "Questo homeserver ha raggiunto il suo limite di utenti attivi mensili.", + "This homeserver has exceeded one of its resource limits.": "Questo homeserver ha oltrepassato uno dei suoi limiti di risorse.", + "Please contact your service administrator to get this limit increased.": "Contatta l'amministratore del servizio per fare aumentare questo limite.", + "This homeserver has hit its Monthly Active User limit so some users will not be able to log in.": "Questo homeserver ha raggiunto il suo limite di utenti attivi mensili, perciò alcuni utenti non potranno accedere.", + "This homeserver has exceeded one of its resource limits so some users will not be able to log in.": "Questo homeserver ha oltrepassato uno dei suoi limiti di risorse, perciò alcuni utenti non potranno accedere.", + "Upgrade Room Version": "Aggiorna versione stanza", + "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:": "L'aggiornamento di questa stanza richiede la chiusura dell'istanza attuale e la creazione di una nuova stanza al suo posto. Per offrire la migliore esperienza possibile ai membri della stanza, noi:", + "Create a new room with the same name, description and avatar": "Creeremo una nuova stanza con lo stesso nome, descrizione e avatar", + "Update any local room aliases to point to the new room": "Aggiorneremo qualsiasi alias di stanza in modo che punti a quella nuova", + "Stop users from speaking in the old version of the room, and post a message advising users to move to the new room": "Eviteremo che gli utenti parlino nella vecchia versione della stanza e posteremo un messaggio avvisando gli utenti di spostarsi in quella nuova", + "Put a link back to the old room at the start of the new room so people can see old messages": "Inseriremo un link alla vecchia stanza all'inizio della di quella nuova in modo che la gente possa vedere i messaggi precedenti", + "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.": "Il tuo messaggio non è stato inviato perchè questo homeserver ha raggiunto il suo limite di utenti attivi mensili. Contatta l'amministratore del servizio per continuare ad usarlo.", + "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Il tuo messaggio non è stato inviato perchè questo homeserver ha oltrepassato un limite di risorse. Contatta l'amministratore del servizio per continuare ad usarlo.", + "Please contact your service administrator to continue using this service.": "Contatta l'amministratore del servizio per continuare ad usarlo." } From 9bdd104858a3bc87cbfb76dfad92267392add51d Mon Sep 17 00:00:00 2001 From: csybr Date: Thu, 16 Aug 2018 15:40:07 +0000 Subject: [PATCH 005/162] Translated using Weblate (Norwegian Nynorsk) Currently translated at 98.4% (1214 of 1233 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nn/ --- src/i18n/strings/nn.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/i18n/strings/nn.json b/src/i18n/strings/nn.json index 66269a764d..dc48297631 100644 --- a/src/i18n/strings/nn.json +++ b/src/i18n/strings/nn.json @@ -103,8 +103,8 @@ "Your language of choice": "Ditt valde mål", "e.g. %(exampleValue)s": "t.d. %(exampleValue)s", "/ddg is not a command": "/ddg er ikkje eit påbod", - "Changes your display nickname": "Endrar kallenamnet ditt", - "Changes colour scheme of current room": "Endrar fargevala i ditt noverande rom", + "Changes your display nickname": "Forandrar kallenamnet ditt", + "Changes colour scheme of current room": "Forandrar fargevala i ditt noverande rom", "Sets the room topic": "Set romemnet", "Invites user with given id to current room": "Byd brukarar med den gjevne IDen inn til det noverande rommet", "Joins room with given alias": "Gjeng inn i eit rom med det gjevne aliaset", @@ -238,7 +238,7 @@ "Messages in one-to-one chats": "Meldingar i ein-til-ein-samtaler", "Messages in group chats": "Meldingar i gruppesamtaler", "When I'm invited to a room": "Når eg er bode inn til eit rom", - "Call invitation": "Samtaleinnbyding", + "Call invitation": "Samtaleinnbydingar", "Messages sent by bot": "Meldingar sendt frå ein bot", "Active call (%(roomName)s)": "Pågåande samtale (%(roomName)s)", "unknown caller": "ukjend ringar", @@ -527,7 +527,7 @@ "Search…": "Søk…", "This Room": "Dette Rommet", "All Rooms": "Alle Rom", - "Cancel": "Bryt av", + "Cancel": "Avbryt", "You don't currently have any stickerpacks enabled": "Du har for tida ikkje skrudd nokre klistremerkepakkar på", "Add a stickerpack": "Legg ei klistremerkepakke til", "Stickerpack": "Klistremerkepakke", @@ -615,7 +615,7 @@ "You are registering with %(SelectedTeamName)s": "Du melder deg inn med %(SelectedTeamName)s", "Mobile phone number (optional)": "Mobiltelefonnummer (valfritt)", "Register": "Meld deg inn", - "Default server": "Utgangspunkttenar", + "Default server": "Vanleg tenar", "Home server URL": "Heimtenar-URL", "Identity server URL": "Identitetstenar-URL", "What does this mean?": "Kva tyder dette?", @@ -1029,7 +1029,7 @@ "Interface Language": "Grensesnitt-mål", "User Interface": "Brukargrensesnitt", "": "", - "Import E2E room keys": "Hent E2E-romnyklar", + "Import E2E room keys": "Hent E2E-romnyklar inn", "Cryptography": "Kryptografi", "Device ID:": "Einings-ID:", "Device key:": "Einingsnykel:", From 4ae455a97f8237c9eff85f57aa33758f3474b3f9 Mon Sep 17 00:00:00 2001 From: Krombel Date: Thu, 16 Aug 2018 16:45:58 +0000 Subject: [PATCH 006/162] Translated using Weblate (German) Currently translated at 100.0% (1236 of 1236 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 | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 8b63a7b206..a8fd77fe11 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1231,5 +1231,27 @@ "Internal room ID: ": "Interne Raum-ID: ", "Room version number: ": "Raum-Versionsnummer: ", "This homeserver has hit its Monthly Active User limit. Please contact your service administrator to continue using the service.": "Dieser Heimserver hat sein monatliches Limit an aktiven Benutzern erreicht. Bitte kontaktiere deinen Systemadministrator um mit der Nutzung dieses Services fortzufahren.", - "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.": "Dieser Heimserver hat sein monatliches Limit an aktiven Benutzern erreicht. Bitte kontaktiere deinen Systemadministrator um dieses Limit zu erhöhen." + "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.": "Dieser Heimserver hat sein monatliches Limit an aktiven Benutzern erreicht. Bitte kontaktiere deinen Systemadministrator um dieses Limit zu erhöhen.", + "There is a known vulnerability affecting this room.": "Es gibt eine bekannte Schwachstelle, die diesen Raum betrifft.", + "This room version is vulnerable to malicious modification of room state.": "Dieser Raum ist verwundbar gegenüber bösartiger Veränderung des Raum-Status.", + "Click here to upgrade to the latest room version and ensure room integrity is protected.": "Klicke hier um ein Upgrade zur letzten Raum-Version durchzuführen und sicherzustellen, dass die Raum-Integrität gewahrt bleibt.", + "Only room administrators will see this warning": "Nur Raum-Administratoren werden diese Nachricht sehen", + "Please contact your service administrator to continue using the service.": "Bitte kontaktiere deinen Systemadministrator um diesen Dienst weiter zu nutzen.", + "This homeserver has hit its Monthly Active User limit.": "Dieser Heimserver hat sein Limit an monatlich aktiven Nutzern erreicht.", + "This homeserver has exceeded one of its resource limits.": "Dieser Heimserver hat einen seiner Ressourcen-Limits überschritten.", + "Please contact your service administrator to get this limit increased.": "Bitte kontaktiere deinen Systemadministrator um dieses Limit zu erhöht zu bekommen.", + "This homeserver has hit its Monthly Active User limit so some users will not be able to log in.": "Dieser Heimserver hat sein Limit an monatlich aktiven Nutzern erreicht, sodass einige Nutzer sich nicht anmelden können.", + "This homeserver has exceeded one of its resource limits so some users will not be able to log in.": "Dieser Heimserver hat einen seiner Ressourcen-Limits überschritten, sodass einige Benutzer nicht in der Lage sind sich anzumelden.", + "Upgrade Room Version": "Raum-Version upgraden", + "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:": "Um diesen Raum upzugraden, wird der aktuelle geschlossen und ein neuer an seiner Stelle erstellt. Um den Raum-Mitgliedern die bestmögliche Erfahrung zu bieten, werden wir:", + "Create a new room with the same name, description and avatar": "Einen neuen Raum mit demselben Namen, Beschreibung und Profilbild erstellen", + "Update any local room aliases to point to the new room": "Alle lokalen Raum-Aliase aktualisieren, damit sie auf den neuen Raum zeigen", + "Stop users from speaking in the old version of the room, and post a message advising users to move to the new room": "Nutzern verbieten in dem Raum mit der alten Version zu schreiben und eine Nachricht senden, die den Nutzern rät in den neuen Raum zu wechseln", + "Put a link back to the old room at the start of the new room so people can see old messages": "Zu Beginn des neuen Raumes einen Link zum alten Raum setzen, damit Personen die alten Nachrichten sehen können", + "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.": "Deine Nachricht wurde nicht gesendet, weil dieser Heimserver sein Limit an monatlich aktiven Benutzern erreicht hat. Bitte kontaktiere deinen Systemadministrator um diesen Dienst weiter zu nutzen.", + "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Deine Nachricht wurde nicht gesendet, weil dieser Heimserver ein Ressourcen-Limit erreicht hat. Bitte kontaktiere deinen Systemadministrator um diesen Dienst weiter zu nutzen.", + "Please contact your service administrator to continue using this service.": "Bitte kontaktiere deinen Systemadministrator um diesen Dienst weiter zu nutzen.", + "Increase performance by only loading room members on first view": "Verbessere Performanz, indem Raum-Mitglieder erst beim ersten Ansehen geladen werden", + "Lazy loading members not supported": "Verzögertes Laden von Mitgliedern nicht unterstützt", + "Lazy loading is not supported by your current homeserver.": "Verzögertes Laden wird von deinem aktuellen Heimserver." } From b61fb186d63987adca16d023ed1cb65230d43a3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Thu, 16 Aug 2018 17:35:14 +0000 Subject: [PATCH 007/162] Translated using Weblate (French) Currently translated at 100.0% (1236 of 1236 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 | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 3e0d253020..d94a32258d 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -1231,5 +1231,27 @@ "This homeserver has hit its Monthly Active User limit. Please contact your service administrator to continue using the service.": "Ce serveur d'accueil a atteint sa limite mensuelle d'utilisateurs actifs. Veuillez contacter l'administrateur de votre service pour continuer à l'utiliser.", "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.": "Ce serveur d'accueil a atteint sa limite mensuelle d'utilisateurs actifs donc certains utilisateurs ne pourront pas se connecter. Veuillez contacter l'administrateur de votre service pour augmenter cette limite.", "Internal room ID: ": "Identifiant interne du salon : ", - "Room version number: ": "Numéro de version du salon : " + "Room version number: ": "Numéro de version du salon : ", + "There is a known vulnerability affecting this room.": "Ce salon est touché par une faille de sécurité connue.", + "This room version is vulnerable to malicious modification of room state.": "Ce salon est vulnérable à la modification malveillante de l'état du salon.", + "Click here to upgrade to the latest room version and ensure room integrity is protected.": "Cliquer ici pour mettre le salon à niveau vers la dernière version et s'assurer que l'intégrité du salon est protégée.", + "Only room administrators will see this warning": "Seuls les administrateurs du salon verront cet avertissement", + "Please contact your service administrator to continue using the service.": "Veuillez contacter l'administrateur de votre service pour continuer à l'utiliser.", + "This homeserver has hit its Monthly Active User limit.": "Ce serveur d'accueil a atteint sa limite mensuelle d'utilisateurs actifs.", + "This homeserver has exceeded one of its resource limits.": "Ce serveur d'accueil a dépassé une de ses limites de ressources.", + "Please contact your service administrator to get this limit increased.": "Veuillez contacter l'administrateur de votre service pour augmenter cette limite.", + "This homeserver has hit its Monthly Active User limit so some users will not be able to log in.": "Ce serveur d'accueil a atteint sa limite mensuelle d'utilisateurs actifs donc certains utilisateurs ne pourront pas se connecter.", + "This homeserver has exceeded one of its resource limits so some users will not be able to log in.": "Ce serveur d'accueil a atteint une de ses limites de ressources donc certains utilisateurs ne pourront pas se connecter.", + "Upgrade Room Version": "Mettre à niveau la version du salon", + "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 mise à niveau de ce salon nécessite la clôture de l'instance en cours du salon et la création d'un nouveau salon à la place. Pour donner la meilleure expérience possible aux participants, nous allons :", + "Create a new room with the same name, description and avatar": "Créer un salon avec le même nom, la même description et le même avatar", + "Update any local room aliases to point to the new room": "Mettre à jour tous les alias du salon locaux pour qu'ils dirigent vers le nouveau salon", + "Stop users from speaking in the old version of the room, and post a message advising users to move to the new room": "Empêcher les utilisateurs de discuter dans l'ancienne version du salon et envoyer un message conseillant aux nouveaux utilisateurs d'aller dans le nouveau salon", + "Put a link back to the old room at the start of the new room so people can see old messages": "Fournir un lien vers l'ancien salon au début du nouveau salon pour que l'on puisse voir les vieux messages", + "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.": "Votre message n'a pas été envoyé car le serveur d'accueil a atteint sa limite mensuelle d'utilisateurs. Veuillez contacter l'administrateur de votre service pour continuer à l'utiliser.", + "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Votre message n'a pas été envoyé car ce serveur d'accueil a dépassé une de ses limites de ressources. Veuillez contacter l'administrateur de votre service pour continuer à l'utiliser.", + "Please contact your service administrator to continue using this service.": "Veuillez contacter l'administrateur de votre service pour continuer à l'utiliser.", + "Increase performance by only loading room members on first view": "Améliorer les performances en ne chargeant les participants des salons qu'au premier affichage", + "Lazy loading members not supported": "La chargement différé des participants n'est pas pris en charge", + "Lazy loading is not supported by your current homeserver.": "Le chargement différé n'est pas pris en charge par votre serveur d'accueil actuel." } From 22c879d9d30c596d2f3f7c5d2ea689bd8da06c36 Mon Sep 17 00:00:00 2001 From: Szimszon Date: Thu, 16 Aug 2018 19:53:07 +0000 Subject: [PATCH 008/162] Translated using Weblate (Hungarian) Currently translated at 100.0% (1236 of 1236 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 | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 6ccf70f077..5334fba225 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -1231,5 +1231,27 @@ "This homeserver has hit its Monthly Active User limit. Please contact your service administrator to continue using the service.": "Ez a Matrix szerver elérte a havi aktív felhasználói korlátot. Kérlek vedd fel a kapcsolatot a szolgáltatás adminisztrátorával a szolgáltatás további használatához.", "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.": "Ez a Matrix szerver elérte a havi aktív felhasználói korlátot, így néhány felhasználó nem fog tudni bejelentkezni. Kérlek vedd fel a kapcsolatot a szolgáltatás adminisztrátorával, hogy a korlátot felemeljék.", "Internal room ID: ": "Belső szoba azonosító: ", - "Room version number: ": "Szoba verziószáma: " + "Room version number: ": "Szoba verziószáma: ", + "There is a known vulnerability affecting this room.": "Ez a szoba ismert sérülékenységgel rendelkezik.", + "This room version is vulnerable to malicious modification of room state.": "A szoba ezen verziójában a szoba állapota ártó szándékkal módosítható.", + "Click here to upgrade to the latest room version and ensure room integrity is protected.": "Kattints ide a szoba legújabb verziójára való frissítéshez, hogy a szoba integritása védve legyen.", + "Only room administrators will see this warning": "Csak a szoba adminisztrátorai látják ezt a figyelmeztetést", + "Please contact your service administrator to continue using the service.": "A szolgáltatás további használata érdekében kérlek vedd fel a kapcsolatot a szolgáltatás adminisztrátorával.", + "This homeserver has hit its Monthly Active User limit.": "A Matrix szerver elérte a havi aktív felhasználói korlátot.", + "This homeserver has exceeded one of its resource limits.": "A Matrix szerver túllépte valamelyik erőforrás korlátját.", + "Please contact your service administrator to get this limit increased.": "A korlát emelése érdekében kérlek vedd fel a kapcsolatot a szolgáltatás adminisztrátorával.", + "This homeserver has hit its Monthly Active User limit so some users will not be able to log in.": "Ez a Matrix szerver elérte a havi aktív felhasználói korlátját néhány felhasználó nem fog tudni bejelentkezni.", + "This homeserver has exceeded one of its resource limits so some users will not be able to log in.": "Ez a Matrix szerver túllépte valamelyik erőforrás korlátját így néhány felhasználó nem tud majd bejelentkezni.", + "Upgrade Room Version": "Szoba verziójának frissítése", + "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:": "A szoba frissítése miatt ezt a szobát be kell zárni és egy új szobát kell nyitni a helyében. Hogy a felhasználóknak ne legyen rossz tapasztalata ezért ezt fogjuk tenni:", + "Create a new room with the same name, description and avatar": "Készíts egy új szobát ugyanazzal a névvel, leírással és profilképpel", + "Update any local room aliases to point to the new room": "Állíts át minden helyi alternatív nevet erre a szobára", + "Stop users from speaking in the old version of the room, and post a message advising users to move to the new room": "A felhasználóknak tiltsd meg, hogy a régi szobában beszélgessenek. Küldj egy üzenetet amiben megkéred a felhasználókat, hogy menjenek át az új szobába", + "Put a link back to the old room at the start of the new room so people can see old messages": "Tegyél egy linket az új szoba elejére ami visszamutat a régi szobára, hogy az emberek lássák a régi üzeneteket", + "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.": "Az üzeneted nincs elküldve, mert ez a Matrix szerver elérte a havi aktív felhasználói korlátot. A szolgáltatás további igénybevétele végett kérlek vedd fel a kapcsolatot a szolgáltatás adminisztrátorával.", + "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Az üzeneted nem került elküldésre mert ez a Matrix szerver túllépte valamelyik erőforrás korlátját. A szolgáltatás további igénybevétele végett kérlek vedd fel a kapcsolatot a szolgáltatás adminisztrátorával.", + "Please contact your service administrator to continue using this service.": "A szolgáltatás további használatához kérlek vedd fel a kapcsolatot a szolgáltatás adminisztrátorával.", + "Increase performance by only loading room members on first view": "A teljesítmény növelése érdekében a szoba tagsága csak az első megtekintéskor töltődik be", + "Lazy loading members not supported": "A tagok késleltetett betöltése nem támogatott", + "Lazy loading is not supported by your current homeserver.": "A késleltetett betöltés nem támogatott ennél a Matrix szervernél." } From 141e1a86dbcad21a57289d0cc06c3f1b0b1b8867 Mon Sep 17 00:00:00 2001 From: csybr Date: Fri, 17 Aug 2018 00:02:00 +0000 Subject: [PATCH 009/162] Translated using Weblate (Norwegian Nynorsk) Currently translated at 98.5% (1218 of 1236 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nn/ --- src/i18n/strings/nn.json | 66 +++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 31 deletions(-) diff --git a/src/i18n/strings/nn.json b/src/i18n/strings/nn.json index dc48297631..fa07c596fe 100644 --- a/src/i18n/strings/nn.json +++ b/src/i18n/strings/nn.json @@ -62,10 +62,10 @@ "Add rooms to the community": "Legg til rom i samfunnet", "Room name or alias": "Romnamn eller alias", "Add to community": "Legg til i samfunn", - "Failed to invite the following users to %(groupId)s:": "Følgjande brukarar lét seg ikkje byda inn i %(groupId)s:", + "Failed to invite the following users to %(groupId)s:": "Fylgjande brukarar lét seg ikkje byda inn i %(groupId)s:", "Failed to invite users to community": "Fekk ikkje til å byda brukarar inn til samfunnet", "Failed to invite users to %(groupId)s": "Fekk ikkje til å byda brukarar inn til %(groupId)s", - "Failed to add the following rooms to %(groupId)s:": "Følgjande rom lét seg ikkje leggja til i %(groupId)s:", + "Failed to add the following rooms to %(groupId)s:": "Fylgjande rom lét seg ikkje leggja til i %(groupId)s:", "Riot does not have permission to send you notifications - please check your browser settings": "Riot har ikkje tillating til å senda deg varsel - ver venleg og sjekk nettlesarinnstillingane dine", "Riot was not given permission to send notifications - please try again": "Riot fekk ikkje tillating til å senda varsel - ver venleg og prøv igjen", "Unable to enable Notifications": "Klarte ikkje å skru på Varsel", @@ -85,7 +85,7 @@ "Failed to invite user": "Fekk ikkje til å byda brukar inn", "Operation failed": "Handling mislukkast", "Failed to invite": "Fekk ikkje til å byda inn", - "Failed to invite the following users to the %(roomName)s room:": "Dei følgjande brukarane lét seg ikkje byda inn til %(roomName)s:", + "Failed to invite the following users to the %(roomName)s room:": "Dei fylgjande brukarane lét seg ikkje byda inn til %(roomName)s:", "You need to be logged in.": "Du må vera logga inn.", "You need to be able to invite users to do that.": "Du må kunna byda brukarar inn for å gjera det.", "Unable to create widget.": "Klarte ikkje å laga widget.", @@ -122,7 +122,7 @@ "Define the power level of a user": "Set ein brukar si makthøgd", "This email address is already in use": "Denne emailadressa er allereie i bruk", "The platform you're on": "Platformen du er på", - "Failed to verify email address: make sure you clicked the link in the email": "Fekk ikkje til å godkjenna emailadressa: sjå til at du klikka på den rette lenkja i emailen", + "Failed to verify email address: make sure you clicked the link in the email": "Fekk ikkje til å stadfesta emailadressa: sjå til at du klikka på den rette lenkja i emailen", "Your identity server's URL": "Din identitetstenar si nettadresse", "Every page you use in the app": "Alle sider du brukar i æppen", "e.g. ": "t.d. ", @@ -160,7 +160,7 @@ "%(targetName)s joined the room.": "%(targetName)s kom inn i rommet.", "VoIP conference finished.": "VoIP-gruppesamtale enda.", "%(targetName)s rejected the invitation.": "%(targetName)s sa nei til innbydinga.", - "%(targetName)s left the room.": "%(targetName)s gjekk frå rommet.", + "%(targetName)s left the room.": "%(targetName)s fór frå rommet.", "%(senderName)s unbanned %(targetName)s.": "%(senderName)s fjerna utestenginga til %(targetName)s.", "%(senderName)s kicked %(targetName)s.": "%(senderName)s sparka %(targetName)s ut.", "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s tok attende %(targetName)s si innbyding.", @@ -206,7 +206,7 @@ "Disable Emoji suggestions while typing": "Skru emojiframlegg av mens ein skriv", "Use compact timeline layout": "Bruk smal tidslinjeutforming", "Hide removed messages": "Gøym fjerna meldingar", - "Hide join/leave messages (invites/kicks/bans unaffected)": "Gøym vert med/fór ut-meldingar (innbydingar, utspark, utestengingar påverkast ikkje)", + "Hide join/leave messages (invites/kicks/bans unaffected)": "Gøym kom inn/fór ut-meldingar (innbydingar, utspark, utestengingar påverkast ikkje)", "Hide avatar changes": "Gøym avatarendringar", "Hide display name changes": "Gøym visingsnamn-endringar", "Show timestamps in 12 hour format (e.g. 2:30pm)": "Vis tidspunkt i 12-timarsform (t.d. 2:30pm)", @@ -228,7 +228,7 @@ "Enable URL previews for this room (only affects you)": "Skru URL-førehandsvisingar på for dette rommet (påverkar deg åleine)", "Enable URL previews by default for participants in this room": "Skru URL-førehandsvisingar på som utgangspunkt for deltakarar i dette rommet", "Room Colour": "Romfarge", - "Enable widget screenshots on supported widgets": "Skru widget-skjermbilete på for støtta widget", + "Enable widget screenshots on supported widgets": "Skru widget-skjermbilete på for støtta widgetar", "Collecting app version information": "Samlar æppversjoninfo", "Collecting logs": "Samlar loggar", "Uploading report": "Lastar rapport opp", @@ -248,8 +248,8 @@ "Decline": "Sei nei", "Accept": "Sei ja", "Error": "Noko gjekk gale", - "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Ei tekstmelding vart send til +%(msisdn)s. Ver venleg og skriv inn godkjenningskoden ho inneheld", - "Incorrect verification code": "Urett godkjenningskode", + "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Ei tekstmelding vart send til +%(msisdn)s. Ver venleg og skriv inn stadfestingskoden ho inneheld", + "Incorrect verification code": "Urett stadfestingskode", "Enter Code": "Skriv inn Koden", "Submit": "Send inn", "Phone": "Telefon", @@ -266,7 +266,7 @@ "Current password": "Noverande passord", "Password": "Passord", "New Password": "Nytt Passord", - "Confirm password": "Godkjenn passord", + "Confirm password": "Stadfest passord", "Change Password": "Endra Passord", "Your home server does not support device management.": "Heimtenaren din støttar ikkje einingshandsaming.", "Unable to load device list": "Klarte ikkje å lasta einingslista", @@ -293,7 +293,7 @@ "All notifications are currently disabled for all targets.": "Alle varsel er for augeblunket skrudd av for alle mål.", "Add an email address above to configure email notifications": "Legg til ein emailadresse i feltet over for å endra emailvarselinnstillingar", "Enable email notifications": "Skru emailvarsel på", - "Notifications on the following keywords follow rules which can’t be displayed here:": "Varsel på følgjande nykelord følgjer reglar som ikkje kan visast her:", + "Notifications on the following keywords follow rules which can’t be displayed here:": "Varsel på fylgjande nykelord følgjer reglar som ikkje kan visast her:", "Unable to fetch notification target list": "Klarte ikkje å henta varselmållista", "Notification targets": "Varselmål", "Advanced notification settings": "Omfattande varselinnstillingar", @@ -378,7 +378,7 @@ "Attachment": "Vedlegg", "At this time it is not possible to reply with a file so this will be sent without being a reply.": "Det er førebels ikkje mogeleg å svara med ei fil, so dette vil verta send utan å vera eit svar.", "Upload Files": "Last opp Filer", - "Are you sure you want to upload the following files?": "Er du sikker på at du vil lasta opp dei følgjande filene?", + "Are you sure you want to upload the following files?": "Er du sikker på at du vil lasta opp dei fylgjande filene?", "Encrypted room": "Enkryptert rom", "Unencrypted room": "Ikkje-enkrypert rom", "Hangup": "Legg på", @@ -527,7 +527,7 @@ "Search…": "Søk…", "This Room": "Dette Rommet", "All Rooms": "Alle Rom", - "Cancel": "Avbryt", + "Cancel": "Bryt av", "You don't currently have any stickerpacks enabled": "Du har for tida ikkje skrudd nokre klistremerkepakkar på", "Add a stickerpack": "Legg ei klistremerkepakke til", "Stickerpack": "Klistremerkepakke", @@ -725,7 +725,7 @@ "%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)s endra avatarane sine", "%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)s har endra avataren sin %(count)s gonger", "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)s endra avataren sin", - "%(items)s and %(count)s others|other": "%(items)s og %(count)s andre", + "%(items)s and %(count)s others|other": "%(items)s og %(count)s til", "%(items)s and %(count)s others|one": "%(items)s og ein til", "%(items)s and %(lastItem)s": "%(items)s og %(lastItem)s", "collapse": "Slå saman", @@ -740,13 +740,13 @@ "Matrix Room ID": "Matrixrom-ID", "email address": "emailadresse", "You have entered an invalid address.": "Du har skrive ei ugangbar adresse inn.", - "Try using one of the following valid address types: %(validTypesList)s.": "Prøv å bruka ein av dei følgjande gangbare adressesortane: %(validTypesList)s.", + "Try using one of the following valid address types: %(validTypesList)s.": "Prøv å bruka ein av dei fylgjande gangbare adressesortane: %(validTypesList)s.", "Preparing to send logs": "Førebur loggsending", "Logs sent": "Loggar sende", "Thank you!": "Takk skal du ha!", "Failed to send logs: ": "Fekk ikkje til å senda loggar: ", "Submit debug logs": "Send debøgg-loggar inn", - "Riot bugs are tracked on GitHub: create a GitHub issue.": "Riot-bøggar følgjast på GitHub: lag eit GitHub-issue.", + "Riot bugs are tracked on GitHub: create a GitHub issue.": "Riot-bøggar fylgjast på GitHub: lag eit GitHub-issue.", "GitHub issue link:": "lenkje til GitHub-issue:", "Notes:": "Saker å merka seg:", "Send logs": "Send loggar inn", @@ -822,7 +822,7 @@ "Verification Pending": "Ventar på Godkjenning", "Please check your email and click on the link it contains. Once this is done, click continue.": "Ver venleg og sjekk emailen din og klikk på lenkja du har fått. Når det er gjort, klikk gå fram.", "Unable to add email address": "Klarte ikkje å leggja emailadressa til", - "Unable to verify email address.": "Klarte ikkje å godkjenne emailadressa.", + "Unable to verify email address.": "Klarte ikkje å stadfesta emailadressa.", "This will allow you to reset your password and receive notifications.": "Dette tillèt deg å attendestilla passordet ditt og å få varsel.", "Skip": "Hopp over", "User names may only contain letters, numbers, dots, hyphens and underscores.": "Brukarnamn kan berre innehalda bokstavar, tal, prikkar, bindestrek og understrek.", @@ -862,7 +862,7 @@ "Reject": "Sei nei", "You cannot delete this message. (%(code)s)": "Du kan ikkje sletta meldinga. (%(code)s)", "Resend": "Send på nytt", - "Cancel Sending": "Avbryt Sending", + "Cancel Sending": "Bryt Sending av", "Forward Message": "Vidaresend Melding", "Reply": "Svar", "Pin Message": "Fest Meldinga", @@ -876,7 +876,7 @@ "All messages (noisy)": "Alle meldingar (bråket)", "All messages": "Alle meldingar", "Mentions only": "Berre når eg vert nemnd", - "Leave": "Far ut", + "Leave": "Far frå", "Forget": "Gløym", "Low Priority": "Lågrett", "Direct Chat": "Direktesamtale", @@ -899,13 +899,13 @@ "Add rooms to the community summary": "Legg rom til i samfunnsoppsamanfattinga", "Which rooms would you like to add to this summary?": "Kva rom ynskjer du å leggja til i samanfattinga?", "Add to summary": "Legg til i samanfattinga", - "Failed to add the following rooms to the summary of %(groupId)s:": "Fekk ikkje til å leggja dei følgjande romma til i samanfattinga av %(groupId)s:", + "Failed to add the following rooms to the summary of %(groupId)s:": "Fekk ikkje til å leggja dei fylgjande romma til i samanfattinga av %(groupId)s:", "Add a Room": "Legg eit Rom til", "Failed to remove the room from the summary of %(groupId)s": "Fekk ikkje til å fjerna rommet frå samanfattinga av %(groupId)s", "The room '%(roomName)s' could not be removed from the summary.": "Rommet '%(roomName)s' lét seg ikkje fjerna frå samanfattinga.", "Add users to the community summary": "Legg brukarar til i samfunnsamanfattinga", "Who would you like to add to this summary?": "Kven vil du leggja til i samanfattinga?", - "Failed to add the following users to the summary of %(groupId)s:": "Fekk ikkje til å leggja følgjande brukarar til i samanfattinga av %(groupId)s:", + "Failed to add the following users to the summary of %(groupId)s:": "Fekk ikkje til å leggja fylgjande brukarar til i samanfattinga av %(groupId)s:", "Add a User": "Legg ein Brukar til", "Failed to remove a user from the summary of %(groupId)s": "Fekk ikkje til å fjerna brukaren frå samanfattinga av %(groupId)s", "The user '%(displayName)s' could not be removed from the summary.": "Brukaren '%(displayName)s' lét seg ikkje fjerna frå samanfattinga.", @@ -981,12 +981,12 @@ "#example": "#døme", "Scroll to bottom of page": "Blad til botnen", "Message not sent due to unknown devices being present": "Meldinga vart ikkje send fordi ukjende einingar er til stades", - "Show devices, send anyway or cancel.": "Vis einingar, Send same kva eller Avbryt.", + "Show devices, send anyway or cancel.": "Vis einingar, Send same kva eller Bryt av.", "You can't send any messages until you review and agree to our terms and conditions.": "Du kan ikkje senda meldingar før du ser over og seier deg einig i våre Vilkår og Føresetnader.", "%(count)s of your messages have not been sent.|other": "Nokre av meldingane dine vart ikkje sende.", "%(count)s of your messages have not been sent.|one": "Meldinga di vart ikkje send.", "%(count)s Resend all or cancel all now. You can also select individual messages to resend or cancel.|other": "Send alle på nytt eller avbryt alle. Du kan ogso velja enkelte meldingar til sending på nytt eller avbryting.", - "%(count)s Resend all or cancel all now. You can also select individual messages to resend or cancel.|one": "Send melding på nytt eller avbryt.", + "%(count)s Resend all or cancel all now. You can also select individual messages to resend or cancel.|one": "Send melding på nytt eller bryt av.", "Connectivity to the server has been lost.": "Tilkoplinga til tenaren vart tapt.", "Sent messages will be stored until your connection has returned.": "Sende meldingar lagrast ikkje før tilkoplinga di er attende.", "%(count)s new messages|other": "%(count)s nye meldingar", @@ -1012,9 +1012,9 @@ "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Freista å lasta eit gjeve punkt i rommet si tidslinje, men du har ikkje lov til å sjå den sistnemnde meldinga.", "Tried to load a specific point in this room's timeline, but was unable to find it.": "Freista å lasta eit gjeve punkt i rommet si tidslinje, men klarte ikkje å finna det.", "Failed to load timeline position": "Fekk ikkje til å lasta tidslinjestillinga", - "Uploading %(filename)s and %(count)s others|other": "Lastar %(filename)s og %(count)s andre opp", + "Uploading %(filename)s and %(count)s others|other": "Lastar %(filename)s og %(count)s til opp", "Uploading %(filename)s and %(count)s others|zero": "Lastar %(filename)s opp", - "Uploading %(filename)s and %(count)s others|one": "Lastar %(filename)s og %(count)s andre opp", + "Uploading %(filename)s and %(count)s others|one": "Lastar %(filename)s og %(count)s til opp", "Light theme": "Ljost preg", "Dark theme": "Dimt preg", "Status.im theme": "Status.im-preg", @@ -1026,7 +1026,7 @@ "Remove %(threePid)s?": "Fjern %(threePid)s?", "Unable to remove contact information": "Klarte ikkje å fjerna kontaktinfo", "Refer a friend to Riot:": "Vis ein ven til Riot:", - "Interface Language": "Grensesnitt-mål", + "Interface Language": "Grensesnitts-mål", "User Interface": "Brukargrensesnitt", "": "", "Import E2E room keys": "Hent E2E-romnyklar inn", @@ -1075,14 +1075,14 @@ "The email address linked to your account must be entered.": "Du må skriva emailadressa som er tilknytta brukaren din inn.", "A new password must be entered.": "Du må skriva eit nytt passord inn.", "New passwords must match each other.": "Dei nye passorda må vera like.", - "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "Ein email vert send til %(emailAddress)s. Når du har far følgd lenkja i den, klikk under.", + "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "Ein email vert send til %(emailAddress)s. Når du har far fylgd lenkja i den, klikk under.", "I have verified my email address": "Eg har godkjend emailadressa mi", "Your password has been reset": "Passordet ditt vart attendesett", "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": "Du vart logga av alle einingar og får ikkje lenger pushvarsel. For å skru varsel på att, logg inn igjen på kvar eining", "Return to login screen": "Gå attende til innlogging", "To reset your password, enter the email address linked to your account": "For å attendestilla passordet ditt, skriv emailadressa som er lenkja til brukaren din inn", "New password": "Nytt passord", - "Confirm your new password": "Godkjenn det nye passordet ditt", + "Confirm your new password": "Stadfest det nye passordet ditt", "Send Reset Email": "Send attendestillingsemail", "Create an account": "Lag ein brukar", "This Home Server does not support login using email address.": "Denne Heimtenaren støttar ikkje innlogging med email.", @@ -1099,7 +1099,7 @@ "Failed to fetch avatar URL": "Klarte ikkje å henta avatar-URLen", "Set a display name:": "Set eit visingsnamn:", "Upload an avatar:": "Last ein avatar opp:", - "This server does not support authentication with a phone number.": "Denne tenaren støttar ikkje godkjenning gjennom telefonnummer.", + "This server does not support authentication with a phone number.": "Denne tenaren støttar ikkje stadfesting gjennom telefonnummer.", "Missing password.": "Vantande passord.", "Passwords don't match.": "Passorda er ikkje like.", "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Passordet er for kort (i det minste %(MIN_PASSWORD_LENGTH)s).", @@ -1132,7 +1132,7 @@ "Passphrases must match": "Passetningane må vera like", "Passphrase must not be empty": "Passetningsfeltet kan ikkje vera tomt", "Enter passphrase": "Skriv passetning inn", - "Confirm passphrase": "Godkjenn passetning", + "Confirm passphrase": "Stadfest passetning", "You must specify an event type!": "Du må oppgje ein handlingssort!", "Call Timeout": "Tidsavbrot i Samtala", "Enable automatic language detection for syntax highlighting": "Skru automatisk måloppdaging på for syntax-understreking", @@ -1219,5 +1219,9 @@ "Internal room ID: ": "Indre rom-ID: ", "Room version number: ": "Romutgåvenummer: ", "This homeserver has hit its Monthly Active User limit. Please contact your service administrator to continue using the service.": "Heimtenaren har truffe si Månadlege Grense for Aktive Brukarar. Ver venleg og tak kontakt med tenesteadministratoren din for å halda fram med å bruka tenesten.", - "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.": "Heimtenaren har truffe si Månadlege Grense for Aktive Brukarar, so nokre brukarar vil ikkje kunna logga inn. Ver venleg og tak kontakt med tenesteadministratoren din for å auka grensa." + "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.": "Heimtenaren har truffe si Månadlege Grense for Aktive Brukarar, so nokre brukarar vil ikkje kunna logga inn. Ver venleg og tak kontakt med tenesteadministratoren din for å auka grensa.", + "There is a known vulnerability affecting this room.": "Ein kjend sårbarheit påverkar dette rommet.", + "This room version is vulnerable to malicious modification of room state.": "Denne romutgåva er sårbar til vondsinna endring på romtilstanden.", + "Only room administrators will see this warning": "Berre romadministratorar vil sjå denne åtvaringa", + "Please contact your service administrator to continue using the service.": "Ver venleg og tak kontakt med tenesteadministratoren for å halda fram med å bruka tenesten." } From 9f19896df09a0cdc7d870e8f227e31c89d203890 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 17 Aug 2018 14:54:43 +0100 Subject: [PATCH 010/162] Support for room upgrades * Show when a room upgrade is needed * Dialog box to perform the upgrade --- res/css/_components.scss | 2 + res/css/views/dialogs/_RoomUpgradeDialog.scss | 19 ++++ res/css/views/rooms/_RoomSettings.scss | 6 + .../views/rooms/_RoomUpgradeWarningBar.scss | 48 ++++++++ res/themes/light/css/_base.scss | 4 + src/components/structures/RoomView.js | 9 ++ .../views/dialogs/RoomUpgradeDialog.js | 106 ++++++++++++++++++ src/components/views/rooms/RoomSettings.js | 15 ++- .../views/rooms/RoomUpgradeWarningBar.js | 57 ++++++++++ src/i18n/strings/en_EN.json | 12 +- 10 files changed, 273 insertions(+), 5 deletions(-) create mode 100644 res/css/views/dialogs/_RoomUpgradeDialog.scss create mode 100644 res/css/views/rooms/_RoomUpgradeWarningBar.scss create mode 100644 src/components/views/dialogs/RoomUpgradeDialog.js create mode 100644 src/components/views/rooms/RoomUpgradeWarningBar.js diff --git a/res/css/_components.scss b/res/css/_components.scss index 173939e143..62cdb4533e 100644 --- a/res/css/_components.scss +++ b/res/css/_components.scss @@ -39,6 +39,7 @@ @import "./views/dialogs/_EncryptedEventDialog.scss"; @import "./views/dialogs/_GroupAddressPicker.scss"; @import "./views/dialogs/_QuestionDialog.scss"; +@import "./views/dialogs/_RoomUpgradeDialog.scss"; @import "./views/dialogs/_SetEmailDialog.scss"; @import "./views/dialogs/_SetMxIdDialog.scss"; @import "./views/dialogs/_SetPasswordDialog.scss"; @@ -99,6 +100,7 @@ @import "./views/rooms/_RoomSettings.scss"; @import "./views/rooms/_RoomTile.scss"; @import "./views/rooms/_RoomTooltip.scss"; +@import "./views/rooms/_RoomUpgradeWarningBar.scss"; @import "./views/rooms/_SearchBar.scss"; @import "./views/rooms/_SearchableEntityList.scss"; @import "./views/rooms/_Stickers.scss"; diff --git a/res/css/views/dialogs/_RoomUpgradeDialog.scss b/res/css/views/dialogs/_RoomUpgradeDialog.scss new file mode 100644 index 0000000000..2e3ac5fdea --- /dev/null +++ b/res/css/views/dialogs/_RoomUpgradeDialog.scss @@ -0,0 +1,19 @@ +/* +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. +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. +*/ + +.mx_RoomUpgradeDialog { + padding-right: 70px; +} diff --git a/res/css/views/rooms/_RoomSettings.scss b/res/css/views/rooms/_RoomSettings.scss index 4013af4c7c..f04042ea77 100644 --- a/res/css/views/rooms/_RoomSettings.scss +++ b/res/css/views/rooms/_RoomSettings.scss @@ -20,6 +20,7 @@ limitations under the License. margin-bottom: 20px; } +.mx_RoomSettings_upgradeButton, .mx_RoomSettings_leaveButton, .mx_RoomSettings_unbanButton { @mixin mx_DialogButton; @@ -27,11 +28,16 @@ limitations under the License. margin-right: 8px; } +.mx_RoomSettings_upgradeButton, .mx_RoomSettings_leaveButton:hover, .mx_RoomSettings_unbanButton:hover { @mixin mx_DialogButton_hover; } +.mx_RoomSettings_upgradeButton.danger { + @mixin mx_DialogButton_danger; +} + .mx_RoomSettings_integrationsButton_error { position: relative; cursor: not-allowed; diff --git a/res/css/views/rooms/_RoomUpgradeWarningBar.scss b/res/css/views/rooms/_RoomUpgradeWarningBar.scss new file mode 100644 index 0000000000..82785b82d2 --- /dev/null +++ b/res/css/views/rooms/_RoomUpgradeWarningBar.scss @@ -0,0 +1,48 @@ +/* +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. +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. +*/ + +.mx_RoomUpgradeWarningBar { + text-align: center; + height: 176px; + background-color: $event-selected-color; + align-items: center; + flex-direction: column; + justify-content: center; + display: flex; + background-color: $preview-bar-bg-color; + -webkit-align-items: center; + padding-left: 20px; + padding-right: 20px; +} + +.mx_RoomUpgradeWarningBar_header { + color: $warning-color; + font-weight: bold; +} + +.mx_RoomUpgradeWarningBar_body { + color: $warning-color; +} + +.mx_RoomUpgradeWarningBar_upgradelink { + color: $warning-color; + text-decoration: underline; +} + +.mx_RoomUpgradeWarningBar_small { + color: $greyed-fg-color; + font-size: 70%; +} diff --git a/res/themes/light/css/_base.scss b/res/themes/light/css/_base.scss index 7d004bd831..c7fd38259c 100644 --- a/res/themes/light/css/_base.scss +++ b/res/themes/light/css/_base.scss @@ -171,6 +171,10 @@ $progressbar-color: #000; outline: none; } +@define-mixin mx_DialogButton_danger { + background-color: $warning-color; +} + @define-mixin mx_DialogButton_hover { } diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js index 855090873f..5243cd15fa 100644 --- a/src/components/structures/RoomView.js +++ b/src/components/structures/RoomView.js @@ -1461,6 +1461,7 @@ module.exports = React.createClass({ const RoomPreviewBar = sdk.getComponent("rooms.RoomPreviewBar"); const Loader = sdk.getComponent("elements.Spinner"); const TimelinePanel = sdk.getComponent("structures.TimelinePanel"); + const RoomUpgradeWarningBar = sdk.getComponent("rooms.RoomUpgradeWarningBar"); if (!this.state.room) { if (this.state.roomLoading || this.state.peekLoading) { @@ -1586,6 +1587,11 @@ module.exports = React.createClass({ />; } + const showRoomUpgradeBar = ( + this.state.room.shouldUpgradeToVersion() && + this.state.room.userMayUpgradeRoom(MatrixClientPeg.get().credentials.userId) + ); + let aux = null; let hideCancel = false; if (this.state.editingRoomSettings) { @@ -1597,6 +1603,9 @@ module.exports = React.createClass({ } else if (this.state.searching) { hideCancel = true; // has own cancel aux = ; + } else if (showRoomUpgradeBar) { + aux = ; + hideCancel = true; } else if (this.state.showingPinned) { hideCancel = true; // has own cancel aux = ; diff --git a/src/components/views/dialogs/RoomUpgradeDialog.js b/src/components/views/dialogs/RoomUpgradeDialog.js new file mode 100644 index 0000000000..936ff745d1 --- /dev/null +++ b/src/components/views/dialogs/RoomUpgradeDialog.js @@ -0,0 +1,106 @@ +/* +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. +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. +*/ + +import React from 'react'; +import PropTypes from 'prop-types'; +import sdk from '../../../index'; +import MatrixClientPeg from '../../../MatrixClientPeg'; +import Modal from '../../../Modal'; +import { _t } from '../../../languageHandler'; + +export default React.createClass({ + displayName: 'RoomUpgradeDialog', + + propTypes: { + room: PropTypes.object.isRequired, + onFinished: PropTypes.func.isRequired, + }, + + componentWillMount: function() { + this._targetVersion = this.props.room.shouldUpgradeToVersion(); + }, + + getInitialState: function() { + return { + busy: false, + }; + }, + + _onCancelClick: function() { + this.props.onFinished(false); + }, + + _onUpgradeClick: function() { + this.setState({busy: true}); + MatrixClientPeg.get().upgradeRoom(this.props.room.roomId, this._targetVersion).catch((err) => { + const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); + Modal.createTrackedDialog('Failed to upgrade room', '', ErrorDialog, { + title: _t("Failed to upgrade room"), + description: ((err && err.message) ? err.message : _t("The room upgrade could not be completed")), + }); + }).finally(() => { + this.setState({busy: false}); + }); + }, + + render: function() { + const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog'); + const DialogButtons = sdk.getComponent('views.elements.DialogButtons'); + const Spinner = sdk.getComponent('views.elements.Spinner'); + + let buttons; + if (this.state.busy) { + buttons = ; + } else { + buttons = ; + } + + return ( + +

+ {_t( + "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:", + )} +

+
    +
  1. {_t("Create a new room with the same name, description and avatar")}
  2. +
  3. {_t("Update any local room aliases to point to the new room")}
  4. +
  5. {_t("Stop users from speaking in the old version of the room, and post a message advising users to move to the new room")}
  6. +
  7. {_t("Put a link back to the old room at the start of the new room so people can see old messages")}
  8. +
+ {buttons} +
+ ); + }, +}); diff --git a/src/components/views/rooms/RoomSettings.js b/src/components/views/rooms/RoomSettings.js index 7a78d205b9..aeb55be075 100644 --- a/src/components/views/rooms/RoomSettings.js +++ b/src/components/views/rooms/RoomSettings.js @@ -572,6 +572,11 @@ module.exports = React.createClass({ }); }, + _onRoomUpgradeClick: function() { + const RoomUpgradeDialog = sdk.getComponent('dialogs.RoomUpgradeDialog'); + Modal.createTrackedDialog('Upgrade Room Version', '', RoomUpgradeDialog, {room: this.props.room}); + }, + _onRoomMemberMembership: function() { // Update, since our banned user list may have changed this.forceUpdate(); @@ -930,6 +935,13 @@ module.exports = React.createClass({ ); }); + let roomUpgradeButton = null; + if (this.props.room.shouldUpgradeToVersion() && this.props.room.userMayUpgradeRoom(myUserId)) { + roomUpgradeButton = + { _t("Upgrade room to version %(ver)s", {ver: this.props.room.shouldUpgradeToVersion()}) } + ; + } + return (
@@ -1041,7 +1053,8 @@ module.exports = React.createClass({

{ _t('Advanced') }

{ _t('Internal room ID: ') } { this.props.room.roomId }
- { _t('Room version number: ') } { this.props.room.getVersion() } + { _t('Room version number: ') } { this.props.room.getVersion() }
+ { roomUpgradeButton }
); diff --git a/src/components/views/rooms/RoomUpgradeWarningBar.js b/src/components/views/rooms/RoomUpgradeWarningBar.js new file mode 100644 index 0000000000..a464d95140 --- /dev/null +++ b/src/components/views/rooms/RoomUpgradeWarningBar.js @@ -0,0 +1,57 @@ +/* +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. +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. +*/ + +import React from 'react'; +import PropTypes from 'prop-types'; +import sdk from '../../../index'; +import Modal from '../../../Modal'; + +import { _t } from '../../../languageHandler'; + +module.exports = React.createClass({ + displayName: 'RoomUpgardeWarningBar', + + propTypes: { + room: PropTypes.object.isRequired, + }, + + onUpgradeClick: function() { + const RoomUpgradeDialog = sdk.getComponent('dialogs.RoomUpgradeDialog'); + Modal.createTrackedDialog('Upgrade Room Version', '', RoomUpgradeDialog, {room: this.props.room}); + }, + + render: function() { + const AccessibleButton = sdk.getComponent('elements.AccessibleButton'); + return ( +
+
+ {_t("There is a known vulnerability affecting this room.")} +
+
+ {_t("This room version is vulnerable to malicious modification of room state.")} +
+

+ + {_t("Click here to upgrade to the latest room version and ensure room integrity is protected.")} + +

+
+ {_t("Only room administrators will see this warning")} +
+
+ ); + }, +}); diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index fcc9bcc8be..043b90518d 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -205,6 +205,7 @@ "Authentication check failed: incorrect password?": "Authentication check failed: incorrect password?", "Failed to join room": "Failed to join room", "Message Pinning": "Message Pinning", + "Increase performance by only loading room members on first view": "Increase performance by only loading room members on first view", "Disable Emoji suggestions while typing": "Disable Emoji suggestions while typing", "Use compact timeline layout": "Use compact timeline layout", "Hide removed messages": "Hide removed messages", @@ -528,6 +529,7 @@ "Guests cannot join this room even if explicitly invited.": "Guests cannot join this room even if explicitly invited.", "Click here to fix": "Click here to fix", "To send events of type , you must be a": "To send events of type , you must be a", + "Upgrade room to version %(ver)s": "Upgrade room to version %(ver)s", "Who can access this room?": "Who can access this room?", "Only people who have been invited": "Only people who have been invited", "Anyone who knows the room's link, apart from guests": "Anyone who knows the room's link, apart from guests", @@ -865,6 +867,9 @@ "Ignore request": "Ignore request", "Loading device info...": "Loading device info...", "Encryption key request": "Encryption key request", + "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", "Upgrade Room Version": "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:": "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": "Create a new room with the same name, description and avatar", @@ -1121,6 +1126,8 @@ "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", "Clear Cache": "Clear Cache", "Clear Cache and Reload": "Clear Cache and Reload", @@ -1231,8 +1238,5 @@ "Import": "Import", "Failed to set direct chat tag": "Failed to set direct chat tag", "Failed to remove tag %(tagName)s from room": "Failed to remove tag %(tagName)s from room", - "Failed to add tag %(tagName)s to room": "Failed to add tag %(tagName)s to room", - "Increase performance by only loading room members on first view": "Increase performance by only loading room members on first view", - "Lazy loading members not supported": "Lazy load members not supported", - "Lazy loading is not supported by your current homeserver.": "Lazy loading is not supported by your current homeserver." + "Failed to add tag %(tagName)s to room": "Failed to add tag %(tagName)s to room" } From 353b6e9e6d82f2d1e25398059ec0631a1dba76ce Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 17 Aug 2018 15:15:53 +0100 Subject: [PATCH 011/162] Add stub --- test/test-utils.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/test-utils.js b/test/test-utils.js index 975a4df0ee..eab355d8a7 100644 --- a/test/test-utils.js +++ b/test/test-utils.js @@ -256,6 +256,7 @@ export function mkStubRoom(roomId = null) { getAccountData: () => null, hasMembershipState: () => null, getVersion: () => '1', + shouldUpgradeToVersion: () => null, currentState: { getStateEvents: sinon.stub(), mayClientSendStateEvent: sinon.stub().returns(true), From 3ca56982e4679bba806639afce8998d966e6f2b1 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Sat, 18 Aug 2018 13:57:52 +0000 Subject: [PATCH 012/162] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (1236 of 1236 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 48a0c8bd5a..3a7d08fb8a 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -1231,5 +1231,27 @@ "Internal room ID: ": "內部聊天室 ID: ", "Room version number: ": "聊天室版本號: ", "This homeserver has hit its Monthly Active User limit. Please contact your service administrator to continue using the service.": "這個家伺服器已經達到了其每月活躍使用者限制。請聯絡您的服務管理員以繼續使用服務。", - "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.": "此家伺服器已達到其每月活躍使用者限制,所以其部份使用者將會無法登入。請聯絡您的服務管理員以讓此限制增加。" + "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.": "此家伺服器已達到其每月活躍使用者限制,所以其部份使用者將會無法登入。請聯絡您的服務管理員以讓此限制增加。", + "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": "僅聊天室管理員會看到此警告", + "Please contact your service administrator to continue using the service.": "請聯絡您的服務管理員以繼續使用服務。", + "This homeserver has hit its Monthly Active User limit.": "這個家伺服器已經到達其每月活躍使用者限制。", + "This homeserver has exceeded one of its resource limits.": "此家伺服器已經超過其中一項資源限制。", + "Please contact your service administrator to get this limit increased.": "請聯絡您的服務管理員以讓此限制增加。", + "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.": "此家伺服器已超過其中一項資源限制所以某些使用者可能會無法登入。", + "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": "在新聊天室的開始處放置連回舊聊天室的連結,這樣夥伴們就可以看到舊的訊息", + "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.": "您的訊息未傳送,因為其家伺服器已超過一項資源限制。請聯絡您的服務管理員以繼序使用服務。", + "Please contact your service administrator to continue using this service.": "請聯絡您的服務管理員以繼續使用此服務。", + "Increase performance by only loading room members on first view": "透過僅在第一次檢視時載入聊天室成員來增加效能", + "Lazy loading members not supported": "不支援延持載入成員", + "Lazy loading is not supported by your current homeserver.": "您目前的家伺服器不支援延遲載入。" } From a2db7dead19a85464df99ab1c4e1f55e92f8461a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20=C5=A0indel=C3=A1=C5=99?= Date: Sat, 18 Aug 2018 21:56:40 +0000 Subject: [PATCH 013/162] Translated using Weblate (Czech) Currently translated at 100.0% (1236 of 1236 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/cs/ --- src/i18n/strings/cs.json | 168 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 167 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json index 9ac753e285..04c22afcf0 100644 --- a/src/i18n/strings/cs.json +++ b/src/i18n/strings/cs.json @@ -1080,5 +1080,171 @@ "The platform you're on": "Platforma na které jsi", "The version of Riot.im": "Verze Riot.im", "Whether or not you're logged in (we don't record your user name)": "Jestli jsi, nebo nejsi přihlášen (tvou přezdívku neukládáme)", - "Your language of choice": "Tvá jazyková volba" + "Your language of choice": "Tvá jazyková volba", + "Which officially provided instance you are using, if any": "Přes kterou oficiální podporovanou instanci Riot.im jste pripojeni (jestli nehostujete Riot sami)", + "Whether or not you're using the Richtext mode of the Rich Text Editor": "Jestli při psaní zpráv používáte rozbalenou lištu formátování textu", + "Your homeserver's URL": "URL vámi používaného domovského serveru", + "Your identity server's URL": "URL Vámi používaného serveru totožností", + "e.g. %(exampleValue)s": "např. %(exampleValue)s", + "Every page you use in the app": "Každou stránku v aplikaci, kterou navštívíte", + "e.g. ": "např. ", + "Your User Agent": "Řetězec User Agent Vašeho zařízení", + "Your device resolution": "Rozlišení obrazovky Vašeho zařízení", + "The information being sent to us to help make Riot.im better includes:": "S cílem vylepšovat aplikaci Riot.im shromažďujeme následující údaje:", + "Where this page includes identifiable information, such as a room, user or group ID, that data is removed before being sent to the server.": "V případě, že se na stránce vyskytují identifikační údaje, jako například název místnosti, ID uživatele, místnosti a nebo skupiny, jsou tyto údaje před odesláním na server odstraněny.", + "A conference call could not be started because the intgrations server is not available": "Není možné uskutečnit konferenční hovor, integrační server není k dispozici", + "Call in Progress": "Probíhající hovor", + "A call is currently being placed!": "Právě probíhá jiný hovor!", + "A call is already in progress!": "Jeden hovor už probíhá!", + "Permission Required": "Vyžaduje oprávnění", + "You do not have permission to start a conference call in this room": "Nemáte oprávnění v této místnosti začít konferenční hovor", + "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s": "%(weekDayName)s, %(day)s %(monthName)s %(fullYear)s", + "Missing roomId.": "Chybějící ID místnosti.", + "Opens the Developer Tools dialog": "Otevře dialog nástrojů pro vývojáře", + "%(oldDisplayName)s changed their display name to %(displayName)s.": "%(oldDisplayName)s si změnil zobrazované jméno na %(displayName)s.", + "Always show encryption icons": "Vždy zobrazovat ikony stavu šifrovaní", + "Disable Community Filter Panel": "Zakázat panel Filtr komunity", + "Send analytics data": "Odesílat analytická data", + "Enable widget screenshots on supported widgets": "Povolit screenshot widgetu pro podporované widgety", + "Show empty room list headings": "Zobrazovat nadpisy prázdných seznamů místností", + "This event could not be displayed": "Tato událost nemohla být zobrazena", + "Your key share request has been sent - please check your other devices for key share requests.": "Žádost o sdílení klíče byla odeslána - prosím zkontrolujte si Vaše ostatí zařízení.", + "Key share requests are sent to your other devices automatically. If you rejected or dismissed the key share request on your other devices, click here to request the keys for this session again.": "Žádost o sdílení klíčů je automaticky odesílaná na Vaše ostatní zařízení. Jestli jste žádost odmítly nebo zrušili dialogové okno se žádostí na ostatních zařízeních, kliknutím sem ji můžete opakovaně pro tuto relaci vyžádat.", + "If your other devices do not have the key for this message you will not be able to decrypt them.": "Pokud Vaše ostatní zařízení nemají klíč pro tyto zprávy, nebudete je moci dešifrovat.", + "Key request sent.": "Žádost o klíč poslána.", + "Re-request encryption keys from your other devices.": "Znovu vyžádat šifrovací klíče z vašich ostatních zařízení.", + "Encrypting": "Šifruje", + "Encrypted, not sent": "Zašifrováno, ale neodesláno", + "Demote yourself?": "Snížit Vaši vlastní hodnost?", + "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.": "Tuto změnu nebudete moci vzít zpět, protože snižujete svoji vlastní hodnost, jste-li poslední privilegovaný uživatel v místnosti, bude nemožné vaši současnou hodnost získat zpět.", + "Demote": "Degradovat", + "Share Link to User": "Sdílet odkaz na uživatele", + "deleted": "smazáno", + "underlined": "podtrženo", + "inline-code": "vnořený kód", + "block-quote": "citace", + "bulleted-list": "seznam s odrážkami", + "numbered-list": "číselný seznam", + "At this time it is not possible to reply with a file so this will be sent without being a reply.": "V současné době nejde odpovědět se souborem, proto toto bude odesláno jako by to odpověď nebyla.", + "Send an encrypted reply…": "Odeslat šifrovanou odpověď …", + "Send a reply (unencrypted)…": "Odeslat odpověď (nešifrovaně) …", + "Send an encrypted message…": "Odeslat šifrovanou zprávu …", + "Send a message (unencrypted)…": "Odeslat zprávu (nešifrovaně) …", + "Unable to reply": "Není možné odpovědět", + "At this time it is not possible to reply with an emote.": "V odpovědi zatím nejde vyjádřit pocit.", + "Seen by %(displayName)s (%(userName)s) at %(dateTime)s": "%(displayName)s (%(userName)s) viděl %(dateTime)s", + "Replying": "Odpovídá", + "Share room": "Sdílet místnost", + "You have no historical rooms": "Nemáte žádné historické místnosti", + "System Alerts": "Systémová varování", + "To notify everyone in the room, you must be a": "Abyste mohli upozornit všechny v místnosti, musíte být", + "%(user)s is a %(userRole)s": "%(user)s je %(userRole)s", + "Muted Users": "Umlčení uživatelé", + "Internal room ID: ": "Vnitřní ID mistnosti: ", + "Room version number: ": "Číslo verze místnosti: ", + "There is a known vulnerability affecting this room.": "Pro tuto místnost existuje známa zranitelnost.", + "This room version is vulnerable to malicious modification of room state.": "Tato verze místnosti je zranitelná zlomyslnou modifikací stavu místnosti.", + "Click here to upgrade to the latest room version and ensure room integrity is protected.": "Pro zaručení integrity místnosti klikněte sem a upgradeujte místnost na nejnovější verzi.", + "Only room administrators will see this warning": "Jen administrátoři místnosti uvidí toto varování", + "You don't currently have any stickerpacks enabled": "Momentálně nemáte aktívní žádné balíčky s nálepkami", + "Add a stickerpack": "Přidat balíček s nálepkami", + "Stickerpack": "Balíček s nálepkami", + "Hide Stickers": "Skrýt nálepky", + "Show Stickers": "Zobrazit nálepky", + "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.": "V šifrovaných místnostech, jako je tato, jsou URL náhledy ve výchozím nastavení zakázané, aby bylo možné zajistit, že váš domácí server nemůže shromažďovat informace o odkazech, které v této místnosti vidíte.", + "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.": "Když někdo ve zprávě pošle URL adresu, může být zobrazen její náhled obsahující informace jako titulek, popis a obrázek z cílové stránky.", + "Code": "Kód", + "The email field must not be blank.": "E-mail nemůže být prázdný.", + "The user name field must not be blank.": "Uživatelské jméno nemůže být prázdné.", + "The phone number field must not be blank.": "Telefonní číslo nemůže být prázdné.", + "The password field must not be blank.": "Heslo nemůže být prázdné.", + "Please help improve Riot.im by sending anonymous usage data. This will use a cookie (please see our Cookie Policy).": "Prosím pomozte nám vylepšovat Riot.im odesíláním anonymních údajů o používaní. Na tento účel použijeme cookie (přečtěte si jak cookies používáme).", + "Please help improve Riot.im by sending anonymous usage data. This will use a cookie.": "Prosím pomozte nám vylepšovat Riot.im odesíláním anonymních údajů o používaní. Na tento účel použijeme cookie.", + "Yes, I want to help!": "Ano, chci pomoci!", + "Please contact your service administrator to continue using the service.": "Please contact your service administrator to continue using the service.\nProsím kontaktujte Vašeho administratora aby jste mohli pokračovat v používání Vašeho zařízení.", + "This homeserver has hit its Monthly Active User limit.": "Tento domovský server dosáhl svého měsíčního limitu pro aktivní uživatele.", + "This homeserver has exceeded one of its resource limits.": "Tento domovský server překročil některý z limitů.", + "Please contact your service administrator to get this limit increased.": "Prosím kontaktujte Vašeho administrátora pro zvýšení tohoto limitu.", + "This homeserver has hit its Monthly Active User limit so some users will not be able to log in.": "Tento domovský server dosáhl svého měsíčního limitu pro aktivní uživatele, proto se někteří uživatelé nebudou moci přihlásit.", + "This homeserver has exceeded one of its resource limits so some users will not be able to log in.": "Tento domovský server překročil některý z limitů, proto se někteří uživatelé nebudou moci přihlásit.", + "Warning: This widget might use cookies.": "Varování: tento widget může používat cookies.", + "Failed to remove widget": "Nepovedlo se odstranit widget", + "An error ocurred whilst trying to remove the widget from the room": "Při odstraňování widgetu z místnosti nastala chyba", + "Minimize apps": "Minimalizovat aplikace", + "Reload widget": "Obnovit widget", + "Popout widget": "Otevřít widget v novém okně", + "Picture": "Fotografie", + "Unable to load event that was replied to, it either does not exist or you do not have permission to view it.": "Není možné načíst událost, na kterou se odpovídalo. Buď neexistuje, nebo nemáte oprávnění ji zobrazit.", + "In reply to ": "V odpovědi na ", + "Preparing to send logs": "Příprava na odeslání záznamů", + "Logs sent": "Záznamy odeslány", + "Failed to send logs: ": "Nepodařilo se odeslat záznamy: ", + "Submit debug logs": "Odeslat ladící záznamy", + "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.": "Ladící záznamy obsahují data o používání aplikace včetně Vašeho uživatelského jména, ID nebo aliasy navštívených místností a skupin a uživatelská jména jiných uživatelů. Neobsahují zprávy.", + "Riot bugs are tracked on GitHub: create a GitHub issue.": "Bugy Riotu jsou na Githubu: vytvořit bug na Githubu.", + "GitHub issue link:": "Odkaz na hlášení na GitHubu:", + "Notes:": "Poznámky:", + "Community IDs cannot be empty.": "ID komunity nemůže být prázdné.", + "Failed to indicate account erasure": "Nepovedlo se potvrdit výmaz účtu", + "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.": "Toto učiní účet permanentně nepoužitelný. Nebudete se moci přihlásit a nikdo se nebude moci se stejným uživatelskym ID znovu zaregistrovat. Účet bude odstraněn ze všech místnosti a bude vymazán ze servru identity.Tato akce je nevratná.", + "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.": "Deaktivace účtu automaticky nesmaže zprávy, které jste poslali. Chcete-li je smazat, zaškrtněte prosím odpovídající pole níže.", + "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.": "Viditelnost zpráv v Matrixu je podobná e-mailu. Výmaz Vašich zpráv znamené, že už nebudou sdíleny s žádným novým nebo neregistrovaným uživatelem, ale registrovaní uživatelé, kteří už přístup ke zprávám mají, budou stále mít přístup k jejich kopii.", + "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)": "S deaktivací účtu si přeji smazat všechny mnou odeslané zprávy (Pozor: způsobí, že noví uživatelé uvidí nekompletní konverzace)", + "To continue, please enter your password:": "Pro pokračování, zadejte Vaše heslo:", + "password": "heslo", + "Upgrade Room Version": "Upgradeovat verzi místnosti", + "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:": "Upgradování této místnosti vyžaduje uzavření současné instance místnosti a vytvoření místností nové. Pro co možná nejhladší průběh:", + "Create a new room with the same name, description and avatar": "Vytvoříme místnost se stejným jménem, popisem a avatarem", + "Update any local room aliases to point to the new room": "Aktualizujeme všechny lokální aliasy místnosti tak, aby ukazovaly na novou místnost", + "Stop users from speaking in the old version of the room, and post a message advising users to move to the new room": "Přerušíme konverzace ve staré verzi místnosti a pošleme uživatelům zprávu o přechodu do nové mistnosti", + "Put a link back to the old room at the start of the new room so people can see old messages": "Na začátek nové místnosti umístíme odkaz na starou místnost tak, aby uživatelé mohli vidět staré zprávy", + "Log out and remove encryption keys?": "Odhlásit se a odstranit šifrovací klíče?", + "Clear Storage and Sign Out": "Vymazat uložiště a odhlásit se", + "Send Logs": "Odeslat záznamy", + "Refresh": "Obnovit", + "We encountered an error trying to restore your previous session.": "V průběhu obnovování Vaší minulé relace nastala chyba.", + "Clearing your browser's storage may fix the problem, but will sign you out and cause any encrypted chat history to become unreadable.": "Vymazání uložiště prohlížeče možna opraví Váš problem, zároveň se tím ale odhlásíte a historie Vašich šifrovaných konverzací se pro Vás může stát nečitelnou.", + "Share Room": "Sdílet místnost", + "Link to most recent message": "Odkaz na nejnovější zprávu", + "Share User": "Sdílet uživatele", + "Share Community": "Sdílet komunitu", + "Share Room Message": "Sdílet zprávu z místnosti", + "Link to selected message": "Odkaz na vybranou zprávu", + "COPY": "Kopírovat", + "Share Message": "Sdílet zprávu", + "Collapse Reply Thread": "Sbalit vlákno odpovědi", + "Unable to join community": "Není možné vstoupit do komunity", + "Unable to leave community": "Není možné opustit komunitu", + "Changes made to your community name and avatar might not be seen by other users for up to 30 minutes.": "Změny ve Vaší komunitě název a avatar možná nebudou viditelné pro ostatní uživatele po dobu až 30 minut.", + "Join this community": "Vstoupit do komunity", + "Leave this community": "Opustit komunitu", + "Who can join this community?": "Kdo může vstoupit do této komunity?", + "Everyone": "Všichni", + "This room is not public. You will not be able to rejoin without an invite.": "Tato místnost není veřejná. Bez pozvánky nebudete moci znovu vstoupit.", + "Can't leave Server Notices room": "Z místnosti \"Server Notices\" nejde odejit", + "This room is used for important messages from the Homeserver, so you cannot leave it.": "Tato místnost je určena pro důležité zprávy od domácího servru, a proto z ní nemůžete odejít.", + "Terms and Conditions": "Smluvní podmínky", + "To continue using the %(homeserverDomain)s homeserver you must review and agree to our terms and conditions.": "Chcete-li nadále používat domovský server %(homeserverDomain)s, měli byste si přečíst a odsouhlasit naše smluvní podmínky.", + "Review terms and conditions": "Přečíst smluvní podmínky", + "Did you know: you can use communities to filter your Riot.im experience!": "Věděli jste, že: práci s Riot.im si můžete zpříjemnit s použitím komunit!", + "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.": "Pro nastavení filtru, přetáhněte obrázek komunity na pantel foltrování na leve straně obrazovky. Potom můžete kdykoliv kliknout na obrazek komunity na tomto panelu a Riot.im Vám bude zobrazovat jen místnosti a lidi z dané komunity.", + "Show devices, send anyway or cancel.": "Zobrazit zařízení, i tak odeslat a nebo zrušit.", + "You can't send any messages until you review and agree to our terms and conditions.": "Dokud si nepřečtete a neodsouhlasíte naše smluvní podmínky, nebudete moci posílat žádné zprávy.", + "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.": "Vaše zpráva nebyla odeslána, protože tento domácí server dosáhl svého měsíčního limitu pro aktivní uživatele. Prosím kontaktujte Vašeho administratora pro další využívání služby.", + "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Vaše zpráva nebyla odeslána, protože tento domácí server dosáhl limitu. Prosím kontaktujte Vašeho administratora pro další využívání služby.", + "%(count)s of your messages have not been sent.|one": "Vaše zpráva nebyla odeslána.", + "%(count)s Resend all or cancel all now. You can also select individual messages to resend or cancel.|other": "Znovu poslat všechny nebo zrušit všechny. Můžete též vybrat jednotlivé zprávy pro znovu odeslání nebo zrušení.", + "%(count)s Resend all or cancel all now. You can also select individual messages to resend or cancel.|one": "Znovu poslat zprávu nebo zrušit zprávu.", + "Clear filter": "Zrušit filtr", + "Debug Logs Submission": "Odeslání ladících záznamů", + "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.": "Jestli jste odeslali hlášení o chybě na GitHub, ladící záznamy nám pomohou problém najít. Ladicí záznamy obsahuji data o používání aplikate, která obsahují uživatelské jmeno, ID nebo aliasy navštívených místnosti a uživatelská jména dalších uživatelů. Neobsahují zprávy.", + "Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.": "Soukromí je pro nás důležité a proto neshromažďujeme osobní udaje ani udaje na zakladě, kterých by Vás bylo možne identifikovat.", + "Learn more about how we use analytics.": "Dozvědět se více o tom, jak zpracováváme analytické údaje.", + "No Audio Outputs detected": "Nebyly rozpoznány žádné zvukové výstupy", + "Audio Output": "Zvukový výstup", + "Please contact your service administrator to continue using this service.": "Pro pokračování využívání této služby prosím kontaktujte Vašeho administrátora.", + "Try the app first": "Zkuste aplikaci", + "Increase performance by only loading room members on first view": "Zvýšit výkon nahráváním členů místnosti jen poprvé", + "Lazy loading members not supported": "Líné nahrávání členů není podporováno", + "Lazy loading is not supported by your current homeserver.": "Líné nahrávání není podporováno současným domácím serverem." } From aa94168242b43e6353f4d0895b52bf1938707350 Mon Sep 17 00:00:00 2001 From: cocker-cc Date: Sun, 19 Aug 2018 22:19:54 +0000 Subject: [PATCH 014/162] Translated using Weblate (German) Currently translated at 100.0% (1236 of 1236 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 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index a8fd77fe11..4d9bd7e882 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -190,7 +190,7 @@ "This email address is already in use": "Diese E-Mail-Adresse wird bereits verwendet", "This email address was not found": "Diese E-Mail-Adresse konnte nicht gefunden werden", "The file '%(fileName)s' exceeds this home server's size limit for uploads": "Die Datei '%(fileName)s' überschreitet das Größen-Limit für Uploads auf diesem Heimserver", - "The file '%(fileName)s' failed to upload": "Das Hochladen der Datei '%(fileName)s' schlug fehl", + "The file '%(fileName)s' failed to upload": "Das Hochladen der Datei '%(fileName)' schlug fehl", "The remote side failed to pick up": "Die Gegenstelle konnte nicht abheben", "This phone number is already in use": "Diese Telefonnummer wird bereits verwendet", "Unable to capture screen": "Der Bildschirm konnte nicht aufgenommen werden", @@ -748,7 +748,7 @@ "No rooms to show": "Keine anzeigbaren Räume", "Community Settings": "Community-Einstellungen", "Who would you like to add to this community?": "Wen möchtest du zu dieser Community hinzufügen?", - "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Warnung: Jede Person die du einer Community hinzufügst, wird für alle die die Community-ID kennen öffentlich sichtbar sein", + "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Warnung: Jede Person, die du einer Community hinzufügst, wird für alle, die die Community-ID kennen, öffentlich sichtbar sein", "Invite new community members": "Neue Community-Mitglieder einladen", "Invite to Community": "In die Community einladen", "Which rooms would you like to add to this community?": "Welche Räume möchtest du zu dieser Community hinzufügen?", @@ -915,7 +915,7 @@ "Display your community flair in rooms configured to show it.": "Zeige deinen Community-Flair in den Räumen, die es erlauben.", "This homeserver doesn't offer any login flows which are supported by this client.": "Dieser Heimserver verfügt über keinen, von diesem Client unterstütztes Anmeldeverfahren.", "Call Failed": "Anruf fehlgeschlagen", - "There are unknown devices in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "In diesem Raum befinden sich nicht verifizierte Geräte. Wenn du ohne sie zu verifizieren fortfährst, könnten Angreifer den Anruf mithören.", + "There are unknown devices in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "In diesem Raum befinden sich nicht-verifizierte Geräte. Wenn du fortfährst ohne sie zu verifizieren, könnten Angreifer den Anruf mithören.", "Review Devices": "Geräte ansehen", "Call Anyway": "Trotzdem anrufen", "Answer Anyway": "Trotzdem annehmen", @@ -950,7 +950,7 @@ "Community IDs cannot be empty.": "Community-IDs können nicht leer sein.", "Show devices, send anyway or cancel.": "Geräte anzeigen, trotzdem senden oder abbrechen.", "Learn more about how we use analytics.": "Lerne mehr darüber, wie wir die Analysedaten nutzen.", - "Where this page includes identifiable information, such as a room, user or group ID, that data is removed before being sent to the server.": "Wenn diese Seite identifizierbare Informationen sowie Raum, Nutzer oder Gruppen-ID enthalten, werden diese Daten entfernt bevor sie an den Server gesendet werden.", + "Where this page includes identifiable information, such as a room, user or group ID, that data is removed before being sent to the server.": "Wenn diese Seite identifizierbare Informationen wie Raum, Nutzer oder Gruppen-ID enthalten, werden diese Daten entfernt bevor sie an den Server gesendet werden.", "Whether or not you're logged in (we don't record your user name)": "Ob oder ob du nicht angemeldet bist (wir zeichnen deinen Benutzernamen nicht auf)", "Which officially provided instance you are using, if any": "Welche offiziell angebotene Instanz du nutzt, wenn es der Fall ist", "In reply to ": "Als Antwort auf ", @@ -1165,8 +1165,8 @@ "Reload widget": "Widget neu laden", "To notify everyone in the room, you must be a": "Notwendiges Berechtigungslevel, um jeden im Raum zu benachrichten:", "Muted Users": "Stummgeschaltete Benutzer", - "Please help improve Riot.im by sending anonymous usage data. This will use a cookie (please see our Cookie Policy).": "Bitte helfe uns Riot.im zu verbessern, in dem du anonyme Nutzungsdaten schickst. Dies wird ein Cookie benutzen (bitte beachte auch unsere Cookie-Richtlinie).", - "Please help improve Riot.im by sending anonymous usage data. This will use a cookie.": "Bitte helfe uns Riot.im zu verbessern, in dem du anonyme Nutzungsdaten schickst. Dies wird ein Cookie benutzen.", + "Please help improve Riot.im by sending anonymous usage data. This will use a cookie (please see our Cookie Policy).": "Bitte hilf uns Riot.im zu verbessern, in dem du anonyme Nutzungsdaten schickst. Dies wird ein Cookie benutzen (bitte beachte auch unsere Cookie-Richtlinie).", + "Please help improve Riot.im by sending anonymous usage data. This will use a cookie.": "Bitte hilf uns Riot.im zu verbessern, in dem du anonyme Nutzungsdaten schickst. Dies wird ein Cookie benutzen.", "Yes, I want to help!": "Ja, ich möchte helfen!", "Warning: This widget might use cookies.": "Warnung: Diese Widget mag Cookies verwenden.", "Failed to indicate account erasure": "Fehler beim Signalisieren der Account-Löschung", From dbe129cfefd3f0d21c22238747dc67024b3ed5cb Mon Sep 17 00:00:00 2001 From: Moo Date: Sun, 19 Aug 2018 18:24:53 +0000 Subject: [PATCH 015/162] Translated using Weblate (Lithuanian) Currently translated at 50.8% (629 of 1236 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 | 181 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 179 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/lt.json b/src/i18n/strings/lt.json index 0e98596e12..906bc8eb1f 100644 --- a/src/i18n/strings/lt.json +++ b/src/i18n/strings/lt.json @@ -46,7 +46,7 @@ "To return to your account in future you need to set a password": "Ateityje, norėdami grįžti prie savo paskyros turite nusistatyti slaptažodį", "Forget": "Pamiršti", "World readable": "Visiems skaitomas", - "Mute": "Užtildyti", + "Mute": "Nutildyti", "Hide panel": "Slėpti skydelį", "You cannot delete this image. (%(code)s)": "Jūs negalite ištrinti šio paveikslėlio. (%(code)s)", "Cancel Sending": "Atšaukti siuntimą", @@ -452,5 +452,182 @@ "Allow": "Leisti", "Delete Widget": "Ištrinti valdiklį", "Delete widget": "Ištrinti valdiklį", - "Failed to remove widget": "Nepavyko pašalinti valdiklį" + "Failed to remove widget": "Nepavyko pašalinti valdiklį", + "Scroll to bottom of page": "Slinkti į puslapio apačią", + "Show devices, send anyway or cancel.": "Rodyti įrenginius, vis tiek siųsti ar atsisakyti.", + "%(count)s of your messages have not been sent.|other": "Kai kurios iš jūsų žinučių nebuvo išsiųstos.", + "%(count)s of your messages have not been sent.|one": "Jūsų žinutė nebuvo išsiųsta.", + "Connectivity to the server has been lost.": "Jungiamumas su šiuo serveriu buvo prarastas.", + "Sent messages will be stored until your connection has returned.": "Išsiųstos žinutės bus saugomos tol, kol atsiras ryšys.", + "%(count)s new messages|other": "%(count)s naujų žinučių", + "%(count)s new messages|one": "%(count)s nauja žinutė", + "Active call": "Aktyvus skambutis", + "There's no one else here! Would you like to invite others or stop warning about the empty room?": "Čia daugiau nieko nėra! Ar norėtumėte pakviesti kitus ar išjungti įspėjimą apie tuščią kambarį?", + "You seem to be uploading files, are you sure you want to quit?": "Atrodo, kad jūs įkelinėjate failus, ar tikrai norite išeiti?", + "You seem to be in a call, are you sure you want to quit?": "Atrodo, kad dalyvaujate skambutyje, ar tikrai norite išeiti?", + "Failed to upload file": "Nepavyko įkelti failo", + "Server may be unavailable, overloaded, or the file too big": "Gali būti, kad serveris neprieinamas, perkrautas arba failas yra per didelis", + "Search failed": "Paieška nepavyko", + "Server may be unavailable, overloaded, or search timed out :(": "Gali būti, kad serveris neprieinamas, perkrautas arba pasibaigė paieškai skirtas laikas :(", + "No more results": "Daugiau nėra jokių rezultatų", + "Unknown room %(roomId)s": "Nežinomas kambarys %(roomId)s", + "Room": "Kambarys", + "Failed to save settings": "Nepavyko įrašyti nustatymų", + "Failed to reject invite": "Nepavyko atmesti pakvietimo", + "Fill screen": "Užpildyti ekraną", + "Click to unmute video": "Spustelėkite, norėdami įjungti vaizdą", + "Click to mute video": "Spustelėkite, norėdami išjungti vaizdą", + "Click to unmute audio": "Spustelėkite, norėdami įjungti garsą", + "Click to mute audio": "Spustelėkite, norėdami nutildyti garsą", + "Clear filter": "Išvalyti filtrą", + "Uploading %(filename)s and %(count)s others|other": "Įkeliamas %(filename)s ir dar %(count)s failai", + "Uploading %(filename)s and %(count)s others|zero": "Įkeliamas %(filename)s", + "Uploading %(filename)s and %(count)s others|one": "Įkeliamas %(filename)s ir dar %(count)s failas", + "Light theme": "Šviesi tema", + "Dark theme": "Tamsi tema", + "Status.im theme": "Status.im tema", + "Can't load user settings": "Nepavyksta įkelti naudotojo nustatymų", + "Server may be unavailable or overloaded": "Gali būti, kad serveris neprieinamas arba perkrautas", + "Success": "Pavyko", + "Remove Contact Information?": "Šalinti kontaktinę informaciją?", + "Remove %(threePid)s?": "Šalinti %(threePid)s?", + "Unable to remove contact information": "Nepavyko pašalinti kontaktinę informaciją", + "Interface Language": "Sąsajos kalba", + "User Interface": "Naudotojo sąsaja", + "": "", + "Device ID:": "Įrenginio ID:", + "Device key:": "Įrenginio raktas:", + "Ignored Users": "Nepaisomi naudotojai", + "Debug Logs Submission": "Derinimo žurnalų pateikimas", + "These are experimental features that may break in unexpected ways": "Šios yra eksperimentinės ypatybės, kurios veikti netikėtais būdais", + "Deactivate my account": "Pasyvinti mano paskyrą", + "Clear Cache": "Išvalyti podėlį", + "Clear Cache and Reload": "Išvalyti podėlį ir įkelti iš naujo", + "Updates": "Atnaujinimai", + "Check for update": "Tikrinti, ar yra atnaujinimų", + "Reject all %(invitedRooms)s invites": "Atmesti visus %(invitedRooms)s pakvietimus", + "Bulk Options": "Masiniai parametrai", + "You may need to manually permit Riot to access your microphone/webcam": "Jums gali tekti rankiniu būdu leisti Riot prieigą prie savo mikrofono/kameros", + "Missing Media Permissions, click here to request.": "Trūksta medijos leidimų, spustelėkite čia, norėdami užklausti.", + "No Audio Outputs detected": "Neaptikta jokių garso išvesčių", + "No Microphones detected": "Neaptikta jokių mikrofonų", + "No Webcams detected": "Neaptikta jokių kamerų", + "Default Device": "Numatytasis įrenginys", + "Audio Output": "Garso išvestis", + "Microphone": "Mikrofonas", + "Camera": "Kamera", + "VoIP": "VoIP", + "Email": "El. paštas", + "Add email address": "Pridėti el. pašto adresą", + "Profile": "Profilis", + "Account": "Paskyra", + "To return to your account in future you need to set a password": "Norėdami ateityje sugrįžti į savo paskyrą, turite nusistatyti slaptažodį", + "Logged in as:": "Esate prisijungę kaip:", + "click to reveal": "spustelėkite, norėdami atskleisti", + "matrix-react-sdk version:": "matrix-react-sdk versija:", + "riot-web version:": "riot-web versija:", + "olm version:": "olm versija:", + "Failed to send email": "Nepavyko išsiųsti el. laiško", + "The email address linked to your account must be entered.": "Privalo būti įvestas su jūsų paskyra susietas el. pašto adresas.", + "A new password must be entered.": "Privalo būti įvestas naujas slaptažodis.", + "New passwords must match each other.": "Nauji slaptažodžiai privalo sutapti.", + "I have verified my email address": "Aš patvirtinau savo el. pašto adresą", + "Your password has been reset": "Jūsų slaptažodis buvo atstatytas", + "Return to login screen": "Grįžti į prisijungimo ekraną", + "To reset your password, enter the email address linked to your account": "Norėdami atstatyti slaptažodį, įveskite su jūsų paskyra susietą el. pašto adresą", + "New password": "Naujas slaptažodis", + "Confirm your new password": "Patvirtinkite savo naują slaptažodį", + "Send Reset Email": "Siųsti atstatymo el. laišką", + "Create an account": "Sukurti paskyrą", + "Incorrect username and/or password.": "Neteisingas naudotojo vardas ir/ar slaptažodis.", + "Please note you are logging into the %(hs)s server, not matrix.org.": "Turėkite omenyje, kad jūs prisijungiate prie %(hs)s serverio, o ne matrix.org.", + "Sign in to get started": "Norėdami pradėti, prisijunkite", + "Failed to fetch avatar URL": "Nepavyko gauti avataro URL", + "Missing password.": "Trūksta slaptažodžio.", + "Passwords don't match.": "Slaptažodžiai nesutampa.", + "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Slaptažodis per trumpas (mažiausiai, %(MIN_PASSWORD_LENGTH)s).", + "This doesn't look like a valid email address.": "Tai nepanašu į teisingą el. pašto adresą.", + "This doesn't look like a valid phone number.": "Tai nepanašu į teisingą telefono numerį.", + "You need to enter a user name.": "Turite įvesti naudotojo vardą.", + "An unknown error occurred.": "Įvyko nežinoma klaida.", + "I already have an account": "Aš jau turiu paskyrą", + "Commands": "Komandos", + "Results from DuckDuckGo": "Rezultatai iš DuckDuckGo", + "Notify the whole room": "Pranešti visam kambariui", + "Users": "Naudotojai", + "unknown device": "nežinomas įrenginys", + "Ed25519 fingerprint": "Ed25519 kontrolinis kodas", + "User ID": "Naudotojo ID", + "Curve25519 identity key": "Curve25519 tapatybės raktas", + "none": "nėra", + "Algorithm": "Algoritmas", + "Decryption error": "Iššifravimo klaida", + "Session ID": "Seanso ID", + "End-to-end encryption information": "Ištisinio šifravimo informacija", + "Event information": "Įvykio informacija", + "Sender device information": "Siuntėjo įrenginio informacija", + "Passphrases must match": "Slaptafrazės privalo sutapti", + "Passphrase must not be empty": "Slaptafrazė negali būti tuščia", + "Export room keys": "Eksportuoti kambario raktus", + "Enter passphrase": "Įveskite slaptafrazę", + "Confirm passphrase": "Patvirtinkite slaptafrazę", + "Export": "Eksportuoti", + "Import room keys": "Importuoti kambario raktus", + "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "Eksportavimo failas bus apsaugotas slaptafraze. Norėdami iššifruoti failą, čia turėtumėte įvesti slaptafrazę.", + "File to import": "Failas, kurį importuoti", + "Import": "Importuoti", + "Your User Agent": "Jūsų naudotojo agentas", + "Review Devices": "Peržiūrėti įrenginius", + "You do not have permission to start a conference call in this room": "Jūs neturite leidimo šiame kambaryje pradėti konferencinį pokalbį", + "The file '%(fileName)s' exceeds this home server's size limit for uploads": "Failas \"%(fileName)s\" viršija šio namų serverio įkeliamų failų dydžio apribojimą", + "Room name or alias": "Kambario pavadinimas ar slapyvardis", + "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Neatrodo, kad jūsų el. pašto adresas šiame namų serveryje būtų susietas su Matrix ID.", + "Who would you like to communicate with?": "Su kuo norėtumėte susisiekti?", + "Missing room_id in request": "Užklausoje trūksta room_id", + "Missing user_id in request": "Užklausoje trūksta user_id", + "Unrecognised room alias:": "Neatpažintas kambario slapyvardis:", + "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!": "ĮSPĖJIMAS: RAKTO PATVIRTINIMAS NEPAVYKO! Pasirašymo raktas, skirtas %(userId)s ir įrenginiui %(deviceId)s yra \"%(fprint)s\", o tai nesutampa su pateiktu raktu \"%(fingerprint)s\". Tai gali reikšti, kad kažkas perima jūsų komunikavimą!", + "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Jūsų pateiktas pasirašymo raktas sutampa su pasirašymo raktus, kuris gautas iš naudotojo %(userId)s įrenginio %(deviceId)s. Įrenginys pažymėtas kaip patvirtintas.", + "VoIP conference started.": "VoIP konferencija pradėta.", + "VoIP conference finished.": "VoIP konferencija užbaigta.", + "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s pašalino kambario pavadinimą.", + "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s įjungė ištisinį šifravimą (%(algorithm)s algoritmas).", + "%(widgetName)s widget modified by %(senderName)s": "%(senderName)s modifikavo %(widgetName)s valdiklį", + "%(widgetName)s widget added by %(senderName)s": "%(senderName)s pridėjo %(widgetName)s valdiklį", + "%(widgetName)s widget removed by %(senderName)s": "%(senderName)s pašalino %(widgetName)s valdiklį", + "Failure to create room": "Nepavyko sukurti kambarį", + "Server may be unavailable, overloaded, or you hit a bug.": "Gali būti, kad serveris neprieinamas, perkrautas arba susidūrėte su klaida.", + "Use compact timeline layout": "Naudoti kompaktišką laiko juostos išdėstymą", + "Autoplay GIFs and videos": "Automatiškai atkurti GIF ir vaizdo įrašus", + "Never send encrypted messages to unverified devices from this device": "Niekada nesiųsti iš šio įrenginio šifruotų žinučių į nepatvirtintus įrenginius", + "Never send encrypted messages to unverified devices in this room from this device": "Niekada nesiųsti iš šio įrenginio šifruotas žinutes į nepatvirtintus įrenginius šiame kambaryje", + "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Tekstinė žinutė išsiųsta į +%(msisdn)s. Įveskite žinutėje esantį patvirtinimo kodą", + "Enter Code": "Įvesti kodą", + "Your home server does not support device management.": "Jūsų namų serveris nepalaiko įrenginių tvarkymą.", + "Delete %(count)s devices|other": "Ištrinti %(count)s įrenginius", + "This event could not be displayed": "Nepavyko parodyti šio įvykio", + "If your other devices do not have the key for this message you will not be able to decrypt them.": "Jeigu jūsų kituose įrenginiuose nėra rakto šiai žinutei, tuomet jūs negalėsite jos iššifruoti.", + "Re-request encryption keys from your other devices.": "Iš naujo užklausti šifravimo raktus iš jūsų kitų įrenginių.", + "Undecryptable": "Neiššifruojama", + "Encrypted, not sent": "Šifruota, neišsiųsta", + "Encrypted by a verified device": "Šifruota patvirtintu įrenginiu", + "Encrypted by an unverified device": "Šifruota nepatvirtintu įrenginiu", + "Kick": "Išmesti", + "Kick this user?": "Išmesti šį naudotoją?", + "Failed to kick": "Nepavyko išmesti", + "Unban": "Atblokuoti", + "Ban": "Užblokuoti", + "Unban this user?": "Atblokuoti šį naudotoją?", + "Ban this user?": "Užblokuoti šį naudotoją?", + "Failed to ban user": "Nepavyko užblokuoti naudotoją", + "Failed to toggle moderator status": "Nepavyko perjungti moderatoriaus būseną", + "Invited": "Pakviestas", + "Filter room members": "Filtruoti kambario dalyvius", + "Server unavailable, overloaded, or something else went wrong.": "Serveris neprieinamas, perkrautas arba nutiko kažkas kito.", + "%(duration)ss": "%(duration)s sek.", + "%(duration)sm": "%(duration)s min.", + "%(duration)sh": "%(duration)s val.", + "%(duration)sd": "%(duration)s d.", + "Seen by %(userName)s at %(dateTime)s": "%(userName)s matė ties %(dateTime)s", + "Seen by %(displayName)s (%(userName)s) at %(dateTime)s": "%(displayName)s (%(userName)s) matė ties %(dateTime)s" } From 7ec2b2d44ce20b1e2c108aa3a4ed0844b826b369 Mon Sep 17 00:00:00 2001 From: csybr Date: Mon, 20 Aug 2018 10:31:28 +0000 Subject: [PATCH 016/162] Translated using Weblate (Norwegian Nynorsk) Currently translated at 98.5% (1218 of 1236 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nn/ --- src/i18n/strings/nn.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/i18n/strings/nn.json b/src/i18n/strings/nn.json index fa07c596fe..9e2c6f2076 100644 --- a/src/i18n/strings/nn.json +++ b/src/i18n/strings/nn.json @@ -223,8 +223,8 @@ "Disable Community Filter Panel": "Skru Samfunnsfilterpanel av", "Disable Peer-to-Peer for 1:1 calls": "Skru Peer-til-Peer for 1:1-samtaler av", "Send analytics data": "Send statistikkdata", - "Never send encrypted messages to unverified devices from this device": "Send aldri enkrypterte meldingar til ugodkjende einingar frå denne eininga", - "Never send encrypted messages to unverified devices in this room from this device": "Send aldri enkrypterte meldingar til ugodkjende einingar i dette rommet frå denne eininga", + "Never send encrypted messages to unverified devices from this device": "Send aldri enkrypterte meldingar til ikkje-godkjende einingar frå denne eininga", + "Never send encrypted messages to unverified devices in this room from this device": "Send aldri enkrypterte meldingar til ikkje-godkjende einingar i dette rommet frå denne eininga", "Enable URL previews for this room (only affects you)": "Skru URL-førehandsvisingar på for dette rommet (påverkar deg åleine)", "Enable URL previews by default for participants in this room": "Skru URL-førehandsvisingar på som utgangspunkt for deltakarar i dette rommet", "Room Colour": "Romfarge", @@ -253,7 +253,7 @@ "Enter Code": "Skriv inn Koden", "Submit": "Send inn", "Phone": "Telefon", - "Add phone number": "Legg til telefonnummer", + "Add phone number": "Legg telefonnummer til", "Add": "Legg til", "Failed to upload profile picture!": "Fekk ikkje til å lasta opp profilbilete!", "Upload new:": "Last opp ny:", @@ -790,7 +790,7 @@ "Device key": "Einingsnykel", "In future this verification process will be more sophisticated.": "I framtida kjem denne godkjenningsprosessen til å vera betre utvikla.", "Verify device": "Godkjenn eining", - "I verify that the keys match": "Eg godkjenner at nyklane samsvarar", + "I verify that the keys match": "Eg stadfestar at nyklane samsvarar", "Back": "Attende", "Event sent!": "Hending send!", "Event Type": "Hendingsort", @@ -1182,7 +1182,7 @@ "Custom": "Sjølvsett", "Failed to set Direct Message status of room": "Fekk ikkje til å setja Direktemelding-tilstanden til rommet", "Did you know: you can use communities to filter your Riot.im experience!": "Visste du at: du kan bruka samfunn for å filtrera Riot.im-opplevinga di!", - "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.": "For å setja opp eit filter, drag ein samfunnsavatar bort til filterpanelet til venstre på skjermen. Du kan klikka på ein avatar i filterpanelet når som helst for å berre sjå romma og folka tilknytta det samfunnet.", + "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.": "For å setja opp eit filter, drag ein samfunnsavatar bort til filterpanelet til venstre på skjermen. Du kan klikka på ein avatar i filterpanelet når som helst for å sjå berre romma og folka tilknytta det samfunnet.", "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Lag eit samfunn for å føra saman brukarar og rom! Bygg din eiga heimeside for å kreva din del av Matrix-verda.", "Hide panel": "Gøym panel", "Unable to look up room ID from server": "Klarte ikkje å henta rom-ID frå tenaren", From 7a125c3ad4c1878ca3c92d17b70f4db1f036f96d Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 17 Aug 2018 15:05:16 +0000 Subject: [PATCH 017/162] Translated using Weblate (Russian) Currently translated at 98.8% (1222 of 1236 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/ru/ --- src/i18n/strings/ru.json | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 47f46279c4..e3cc761c30 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -1218,5 +1218,21 @@ "An error ocurred whilst trying to remove the widget from the room": "Произошла ошибка при удалении виджета из комнаты", "System Alerts": "Системные оповещения", "Please contact your service administrator to continue using this service.": "Для продолжения использования этого сервиса обратитесь к администратору.", - "Room version number: ": "Номер версии комнаты: " + "Room version number: ": "Номер версии комнаты: ", + "Internal room ID: ": "Внутренний ID комнаты: ", + "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": "Только администраторы комнат увидят это предупреждение", + "Please contact your service administrator to continue using the service.": "Пожалуйста, обратитесь к вашему администратору, чтобы продолжить использование сервиса.", + "Please contact your service administrator to get this limit increased.": "Пожалуйста, обратитесь к вашему администратору, чтобы увеличить этот лимит.", + "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": "Разместим ссылку на старую комнату, чтобы люди могли видеть старые сообщения", + "Please contact your service administrator to continue using this service.": "Пожалуйста, обратитесь к вашему администратору, чтобы продолжить использовать этот сервис.", + "Increase performance by only loading room members on first view": "Увеличьте производительность, загрузив только список участников комнаты", + "Lazy loading members not supported": "Задержка загрузки элементов не поддерживается" } From 12e71aa8504d12867f0a0ae4dff64d34f6b53e41 Mon Sep 17 00:00:00 2001 From: Miguel L Date: Mon, 20 Aug 2018 12:57:06 +0000 Subject: [PATCH 018/162] Translated using Weblate (Spanish) Currently translated at 98.8% (1222 of 1236 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 | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index 6c2ce3bf11..a54e97cebd 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -1216,5 +1216,16 @@ "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.", "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." + "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: ", + "Room version number: ": "Número de versión de la sala: ", + "There is a known vulnerability affecting this room.": "Hay una vulnerabilidad conocida que afecta a esta sala.", + "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." } From 50f398ff4aff53635f134c23703f073feadef9d0 Mon Sep 17 00:00:00 2001 From: Miguel L Date: Mon, 20 Aug 2018 13:07:49 +0000 Subject: [PATCH 019/162] Translated using Weblate (Spanish) Currently translated at 100.0% (1236 of 1236 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 | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index a54e97cebd..9a23a8368b 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -1227,5 +1227,19 @@ "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 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.", + "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.", + "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": "La carga lenta de los miembros no está soportada", + "Lazy loading is not supported by your current homeserver.": "La carga lenta no está soportada por su servidor doméstico actual.", + "System Alerts": "Alertas de Sistema" } From ab10b5493bf4e536741e3c68155e92867bfbbcd5 Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 20 Aug 2018 16:20:59 +0100 Subject: [PATCH 020/162] Support room creation events For https://github.com/vector-im/riot-web/issues/7164 --- res/css/_components.scss | 1 + res/css/views/messages/_CreateEvent.scss | 35 +++++++++++ src/components/views/messages/RoomCreate.js | 64 +++++++++++++++++++++ src/components/views/rooms/EventTile.js | 8 ++- src/i18n/strings/en_EN.json | 20 ++----- 5 files changed, 113 insertions(+), 15 deletions(-) create mode 100644 res/css/views/messages/_CreateEvent.scss create mode 100644 src/components/views/messages/RoomCreate.js diff --git a/res/css/_components.scss b/res/css/_components.scss index 173939e143..13fefd5885 100644 --- a/res/css/_components.scss +++ b/res/css/_components.scss @@ -67,6 +67,7 @@ @import "./views/groups/_GroupUserSettings.scss"; @import "./views/login/_InteractiveAuthEntryComponents.scss"; @import "./views/login/_ServerConfig.scss"; +@import "./views/messages/_CreateEvent.scss"; @import "./views/messages/_DateSeparator.scss"; @import "./views/messages/_MEmoteBody.scss"; @import "./views/messages/_MFileBody.scss"; diff --git a/res/css/views/messages/_CreateEvent.scss b/res/css/views/messages/_CreateEvent.scss new file mode 100644 index 0000000000..47de2c9753 --- /dev/null +++ b/res/css/views/messages/_CreateEvent.scss @@ -0,0 +1,35 @@ +/* +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. +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. +*/ + +.mx_CreateEvent { + background-color: $info-plinth-bg-color; + padding-left: 20px; + padding-right: 20px; + padding-top: 10px; + padding-bottom: 10px; +} + +.mx_CreateEvent_image { + float: left; + padding-right: 20px; +} + +.mx_CreateEvent_header { + font-weight: bold; +} + +.mx_CreateEvent_link { +} diff --git a/src/components/views/messages/RoomCreate.js b/src/components/views/messages/RoomCreate.js new file mode 100644 index 0000000000..8159741ae1 --- /dev/null +++ b/src/components/views/messages/RoomCreate.js @@ -0,0 +1,64 @@ +/* +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. +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. +*/ + +import React from 'react'; +import PropTypes from 'prop-types'; + +import dis from '../../../dispatcher'; +import sdk from '../../../index'; +import { makeEventPermalink } from '../../../matrix-to'; +import { _t } from '../../../languageHandler'; + +module.exports = React.createClass({ + displayName: 'RoomCreate', + + propTypes: { + /* the MatrixEvent to show */ + mxEvent: PropTypes.object.isRequired, + }, + + _onLinkClicked: function(e) { + e.preventDefault(); + + const predecessor = this.props.mxEvent.getContent()['predecessor']; + + dis.dispatch({ + action: 'view_room', + event_id: predecessor['event_id'], + highlighted: true, + room_id: predecessor['room_id'], + }); + }, + + render: function() { + const predecessor = this.props.mxEvent.getContent()['predecessor']; + if (predecessor === undefined) { + return
; // We should never have been instaniated in this case + } + return
+ +
+ {_t("This room is a continuation of another conversation.")} +
+ + {_t("Click here to see older messages.")} + +
; + }, +}); diff --git a/src/components/views/rooms/EventTile.js b/src/components/views/rooms/EventTile.js index 7e73c01330..8dcc2139a7 100644 --- a/src/components/views/rooms/EventTile.js +++ b/src/components/views/rooms/EventTile.js @@ -47,6 +47,7 @@ const eventTileTypes = { }; const stateEventTileTypes = { + 'm.room.create': 'messages.RoomCreate', 'm.room.member': 'messages.TextualEvent', 'm.room.name': 'messages.TextualEvent', 'm.room.avatar': 'messages.RoomAvatarEvent', @@ -483,7 +484,7 @@ 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'); + 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 @@ -535,6 +536,9 @@ module.exports = withMatrixClient(React.createClass({ if (this.props.tileShape === "notif") { avatarSize = 24; needsSenderProfile = true; + } else if (tileHandler === 'messages.RoomCreate') { + avatarSize = 0; + needsSenderProfile = false; } else if (isInfoMessage) { // a small avatar, with no sender profile, for // joins/parts/etc @@ -745,6 +749,8 @@ module.exports.haveTileForEvent = function(e) { if (handler === undefined) return false; if (handler === 'messages.TextualEvent') { return TextForEvent.textForEvent(e) !== ''; + } else if (handler === 'messages.RoomCreate') { + return Boolean(e.getContent()['predecessor']); } else { return true; } diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index fcc9bcc8be..db2537307d 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -205,6 +205,7 @@ "Authentication check failed: incorrect password?": "Authentication check failed: incorrect password?", "Failed to join room": "Failed to join room", "Message Pinning": "Message Pinning", + "Increase performance by only loading room members on first view": "Increase performance by only loading room members on first view", "Disable Emoji suggestions while typing": "Disable Emoji suggestions while typing", "Use compact timeline layout": "Use compact timeline layout", "Hide removed messages": "Hide removed messages", @@ -543,10 +544,6 @@ "Internal room ID: ": "Internal room ID: ", "Room version number: ": "Room version number: ", "Add a topic": "Add a topic", - "There is a known vulnerability affecting this room.": "There is a known vulnerability affecting this room.", - "This room version is vulnerable to malicious modification of room state.": "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.": "Click here to upgrade to the latest room version and ensure room integrity is protected.", - "Only room administrators will see this warning": "Only room administrators will see this warning", "Search…": "Search…", "This Room": "This Room", "All Rooms": "All Rooms", @@ -603,6 +600,8 @@ "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s changed the avatar for %(roomName)s", "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s removed the room avatar.", "%(senderDisplayName)s changed the room avatar to ": "%(senderDisplayName)s changed the room avatar to ", + "This room is a continuation of another conversation.": "This room is a continuation of another conversation.", + "Click here to see older messages.": "Click here to see older messages.", "Copied!": "Copied!", "Failed to copy": "Failed to copy", "Add an Integration": "Add an Integration", @@ -865,12 +864,6 @@ "Ignore request": "Ignore request", "Loading device info...": "Loading device info...", "Encryption key request": "Encryption key request", - "Upgrade Room Version": "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:": "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": "Create a new room with the same name, description and avatar", - "Update any local room aliases to point to the new room": "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": "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": "Put a link back to the old room at the start of the new room so people can see old messages", "Sign out": "Sign out", "Log out and remove encryption keys?": "Log out and remove encryption keys?", "Clear Storage and Sign Out": "Clear Storage and Sign Out", @@ -1121,6 +1114,8 @@ "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", "Clear Cache": "Clear Cache", "Clear Cache and Reload": "Clear Cache and Reload", @@ -1231,8 +1226,5 @@ "Import": "Import", "Failed to set direct chat tag": "Failed to set direct chat tag", "Failed to remove tag %(tagName)s from room": "Failed to remove tag %(tagName)s from room", - "Failed to add tag %(tagName)s to room": "Failed to add tag %(tagName)s to room", - "Increase performance by only loading room members on first view": "Increase performance by only loading room members on first view", - "Lazy loading members not supported": "Lazy load members not supported", - "Lazy loading is not supported by your current homeserver.": "Lazy loading is not supported by your current homeserver." + "Failed to add tag %(tagName)s to room": "Failed to add tag %(tagName)s to room" } From 7f8cd203a8407e074f945fc890645c3f13485650 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 21 Aug 2018 15:56:56 +0100 Subject: [PATCH 021/162] Support m.room.tombstone events For https://github.com/vector-im/riot-web/issues/7164 --- res/css/views/rooms/_MessageComposer.scss | 22 ++++++++ src/components/views/rooms/MessageComposer.js | 51 ++++++++++++++++++- src/i18n/strings/en_EN.json | 2 + 3 files changed, 73 insertions(+), 2 deletions(-) diff --git a/res/css/views/rooms/_MessageComposer.scss b/res/css/views/rooms/_MessageComposer.scss index e84240a705..ab7d4d7b34 100644 --- a/res/css/views/rooms/_MessageComposer.scss +++ b/res/css/views/rooms/_MessageComposer.scss @@ -1,5 +1,6 @@ /* 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. @@ -22,6 +23,27 @@ limitations under the License. position: relative; } +.mx_MessageComposer_replaced_wrapper { + margin-left: auto; + margin-right: auto; +} + +.mx_MessageComposer_replaced_valign { + height: 60px; + display: table-cell; + vertical-align: middle; +} + +.mx_MessageComposer_roomReplaced_icon { + float: left; + margin-right: 20px; + margin-top: 5px; +} + +.mx_MessageComposer_roomReplaced_header { + font-weight: bold; +} + .mx_MessageComposer_autocomplete_wrapper { position: relative; height: 0; diff --git a/src/components/views/rooms/MessageComposer.js b/src/components/views/rooms/MessageComposer.js index a7e02d16ae..cbce4cec81 100644 --- a/src/components/views/rooms/MessageComposer.js +++ b/src/components/views/rooms/MessageComposer.js @@ -1,6 +1,6 @@ /* Copyright 2015, 2016 OpenMarket Ltd -Copyright 2017 New Vector Ltd +Copyright 2017, 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. @@ -25,6 +25,7 @@ import dis from '../../../dispatcher'; import RoomViewStore from '../../../stores/RoomViewStore'; import SettingsStore, {SettingLevel} from "../../../settings/SettingsStore"; import Stickerpicker from './Stickerpicker'; +import { makeRoomPermalink } from '../../../matrix-to'; const formatButtonList = [ _td("bold"), @@ -51,7 +52,9 @@ export default class MessageComposer extends React.Component { this.onToggleMarkdownClicked = this.onToggleMarkdownClicked.bind(this); this.onInputStateChanged = this.onInputStateChanged.bind(this); this.onEvent = this.onEvent.bind(this); + this._onRoomStateEvents = this._onRoomStateEvents.bind(this); this._onRoomViewStoreUpdate = this._onRoomViewStoreUpdate.bind(this); + this._onTombstoneClick = this._onTombstoneClick.bind(this); this.state = { inputState: { @@ -61,6 +64,7 @@ export default class MessageComposer extends React.Component { }, showFormatting: SettingsStore.getValue('MessageComposer.showFormatting'), isQuoting: Boolean(RoomViewStore.getQuotingEvent()), + tombstone: this._getRoomTombstone(), }; } @@ -70,12 +74,14 @@ export default class MessageComposer extends React.Component { // marked as encrypted. // XXX: fragile as all hell - fixme somehow, perhaps with a dedicated Room.encryption event or something. MatrixClientPeg.get().on("event", this.onEvent); + MatrixClientPeg.get().on("RoomState.events", this._onRoomStateEvents); this._roomStoreToken = RoomViewStore.addListener(this._onRoomViewStoreUpdate); } componentWillUnmount() { if (MatrixClientPeg.get()) { MatrixClientPeg.get().removeListener("event", this.onEvent); + MatrixClientPeg.get().removeListener("RoomState.events", this._onRoomStateEvents); } if (this._roomStoreToken) { this._roomStoreToken.remove(); @@ -88,6 +94,18 @@ export default class MessageComposer extends React.Component { this.forceUpdate(); } + _onRoomStateEvents(ev, state) { + if (ev.getRoomId() !== this.props.room.roomId) return; + + if (ev.getType() === 'm.room.tombstone') { + this.setState({tombstone: this._getRoomTombstone()}); + } + } + + _getRoomTombstone() { + return this.props.room.currentState.getStateEvents('m.room.tombstone', ''); + } + _onRoomViewStoreUpdate() { const isQuoting = Boolean(RoomViewStore.getQuotingEvent()); if (this.state.isQuoting === isQuoting) return; @@ -207,6 +225,17 @@ export default class MessageComposer extends React.Component { this.messageComposerInput.enableRichtext(!this.state.inputState.isRichTextEnabled); } + _onTombstoneClick(ev) { + ev.preventDefault(); + + const replacementRoomId = this.state.tombstone.getContent()['replacement_room']; + dis.dispatch({ + action: 'view_room', + highlighted: true, + room_id: replacementRoomId, + }); + } + render() { const me = this.props.room.getMember(MatrixClientPeg.get().credentials.userId); const uploadInputStyle = {display: 'none'}; @@ -262,7 +291,7 @@ export default class MessageComposer extends React.Component {
; } - const canSendMessages = this.props.room.currentState.maySendMessage( + const canSendMessages = !this.state.tombstone && this.props.room.currentState.maySendMessage( MatrixClientPeg.get().credentials.userId); if (canSendMessages) { @@ -322,6 +351,24 @@ export default class MessageComposer extends React.Component { callButton, videoCallButton, ); + } else if (this.state.tombstone) { + const replacementRoomId = this.state.tombstone.getContent()['replacement_room']; + + const AccessibleButton = sdk.getComponent('elements.AccessibleButton'); + controls.push(
+
+ + + {_t("This room has been replaced and is no longer active.")} +
+ + {_t("The conversation continues here.")} + +
+
); } else { controls.push(
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index fcc9bcc8be..0cf48e242e 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -393,6 +393,8 @@ "At this time it is not possible to reply with a file so this will be sent without being a reply.": "At this time it is not possible to reply with a file so this will be sent without being a reply.", "Upload Files": "Upload Files", "Are you sure you want to upload the following files?": "Are you sure you want to upload the following files?", + "This room has been replaced and is no longer active.": "This room has been replaced and is no longer active.", + "The conversation continues here.": "The conversation continues here.", "Encrypted room": "Encrypted room", "Unencrypted room": "Unencrypted room", "Hangup": "Hangup", From 8d6d1be992206a39dbac00f88c03e965f07f3dc3 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 21 Aug 2018 16:40:04 +0100 Subject: [PATCH 022/162] Typo --- src/components/views/rooms/RoomUpgradeWarningBar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/views/rooms/RoomUpgradeWarningBar.js b/src/components/views/rooms/RoomUpgradeWarningBar.js index a464d95140..75a5901fc9 100644 --- a/src/components/views/rooms/RoomUpgradeWarningBar.js +++ b/src/components/views/rooms/RoomUpgradeWarningBar.js @@ -22,7 +22,7 @@ import Modal from '../../../Modal'; import { _t } from '../../../languageHandler'; module.exports = React.createClass({ - displayName: 'RoomUpgardeWarningBar', + displayName: 'RoomUpgradeWarningBar', propTypes: { room: PropTypes.object.isRequired, From c4235ca20a713c5707ab0a56ee1ec487011c8076 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 21 Aug 2018 17:50:59 +0100 Subject: [PATCH 023/162] Add the image --- res/img/room-continuation.svg | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 res/img/room-continuation.svg diff --git a/res/img/room-continuation.svg b/res/img/room-continuation.svg new file mode 100644 index 0000000000..dc7e15462a --- /dev/null +++ b/res/img/room-continuation.svg @@ -0,0 +1,6 @@ + + + + + + From cd4b520574d8c97104fc70821f45927a45fad2c6 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 21 Aug 2018 17:52:13 +0100 Subject: [PATCH 024/162] Add image dimensions To avoid popping when the image loads & make sure the SVG appears the right size --- res/css/views/messages/_CreateEvent.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/res/css/views/messages/_CreateEvent.scss b/res/css/views/messages/_CreateEvent.scss index 47de2c9753..c095fc26af 100644 --- a/res/css/views/messages/_CreateEvent.scss +++ b/res/css/views/messages/_CreateEvent.scss @@ -25,6 +25,8 @@ limitations under the License. .mx_CreateEvent_image { float: left; padding-right: 20px; + width: 72px; + height: 34px; } .mx_CreateEvent_header { From c54578d529fb68401395316b69f227a7e387893f Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 21 Aug 2018 17:56:28 +0100 Subject: [PATCH 025/162] Forgot the image file --- res/img/room_replaced.svg | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 res/img/room_replaced.svg diff --git a/res/img/room_replaced.svg b/res/img/room_replaced.svg new file mode 100644 index 0000000000..fa5abd1c9f --- /dev/null +++ b/res/img/room_replaced.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + From 42bb8e4ebd47e98172506e82d6954a6e1878f7a0 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 21 Aug 2018 17:57:15 +0100 Subject: [PATCH 026/162] Add image dimensions --- res/css/views/rooms/_MessageComposer.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/res/css/views/rooms/_MessageComposer.scss b/res/css/views/rooms/_MessageComposer.scss index ab7d4d7b34..e6a532d072 100644 --- a/res/css/views/rooms/_MessageComposer.scss +++ b/res/css/views/rooms/_MessageComposer.scss @@ -38,6 +38,8 @@ limitations under the License. float: left; margin-right: 20px; margin-top: 5px; + width: 31px; + height: 31px; } .mx_MessageComposer_roomReplaced_header { From 6201d4e9bb24938650996994242f72f2df1faa01 Mon Sep 17 00:00:00 2001 From: random Date: Tue, 21 Aug 2018 15:15:27 +0000 Subject: [PATCH 027/162] Translated using Weblate (Italian) Currently translated at 99.8% (1234 of 1236 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 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index 04e7c20e86..721c0382f7 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -1111,7 +1111,7 @@ "Messages in group chats": "Messaggi nelle chat di gruppo", "Yesterday": "Ieri", "Error encountered (%(errorDetail)s).": "Errore riscontrato (%(errorDetail)s).", - "Login": "Entra", + "Login": "Accedi", "Low Priority": "Priorità bassa", "What's New": "Novità", "Set Password": "Imposta Password", @@ -1249,5 +1249,6 @@ "Put a link back to the old room at the start of the new room so people can see old messages": "Inseriremo un link alla vecchia stanza all'inizio della di quella nuova in modo che la gente possa vedere i messaggi precedenti", "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.": "Il tuo messaggio non è stato inviato perchè questo homeserver ha raggiunto il suo limite di utenti attivi mensili. Contatta l'amministratore del servizio per continuare ad usarlo.", "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Il tuo messaggio non è stato inviato perchè questo homeserver ha oltrepassato un limite di risorse. Contatta l'amministratore del servizio per continuare ad usarlo.", - "Please contact your service administrator to continue using this service.": "Contatta l'amministratore del servizio per continuare ad usarlo." + "Please contact your service administrator to continue using this service.": "Contatta l'amministratore del servizio per continuare ad usarlo.", + "Increase performance by only loading room members on first view": "Aumenta le prestazioni caricando solo i membri della stanza alla prima occhiata" } From 4a8fcd34294671c3f2c474677f76e9778f763810 Mon Sep 17 00:00:00 2001 From: Moo Date: Tue, 21 Aug 2018 20:47:56 +0000 Subject: [PATCH 028/162] Translated using Weblate (Lithuanian) Currently translated at 54.2% (671 of 1236 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 | 44 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/lt.json b/src/i18n/strings/lt.json index 906bc8eb1f..9657109608 100644 --- a/src/i18n/strings/lt.json +++ b/src/i18n/strings/lt.json @@ -629,5 +629,47 @@ "%(duration)sh": "%(duration)s val.", "%(duration)sd": "%(duration)s d.", "Seen by %(userName)s at %(dateTime)s": "%(userName)s matė ties %(dateTime)s", - "Seen by %(displayName)s (%(userName)s) at %(dateTime)s": "%(displayName)s (%(userName)s) matė ties %(dateTime)s" + "Seen by %(displayName)s (%(userName)s) at %(dateTime)s": "%(displayName)s (%(userName)s) matė ties %(dateTime)s", + "Show these rooms to non-members on the community page and room list?": "Ar rodyti šiuos kambarius ne dalyviams bendruomenės puslapyje ir kambarių sąraše?", + "Invite new room members": "Pakviesti naujus kambario dalyvius", + "Changes colour scheme of current room": "Pakeičia esamo kambario spalvų rinkinį", + "Kicks user with given id": "Išmeta naudotoją su nurodytu id", + "Bans user with given id": "Užblokuoja naudotoja su nurodytu id", + "Unbans user with given id": "Atblokuoja naudotoją su nurodytu id", + "%(senderName)s banned %(targetName)s.": "%(senderName)s užblokavo naudotoją %(targetName)s.", + "%(senderName)s unbanned %(targetName)s.": "%(senderName)s atblokavo naudotoją %(targetName)s.", + "%(senderName)s kicked %(targetName)s.": "%(senderName)s išmetė naudotoją %(targetName)s.", + "(not supported by this browser)": "(nėra palaikoma šios naršyklės)", + "(no answer)": "(nėra atsakymo)", + "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s padarė kambario ateities istoriją matomą visiems kambario dalyviams nuo to laiko, kai jie buvo pakviesti.", + "%(senderName)s made future room history visible to all room members.": "%(senderName)s padarė kambario ateities istoriją matomą visiems kambario dalyviams.", + "%(senderName)s made future room history visible to anyone.": "%(senderName)s padarė kambario ateities istoriją matomą bet kam.", + "%(names)s and %(count)s others are typing|one": "%(names)s ir dar vienas naudotojas rašo", + "Your browser does not support the required cryptography extensions": "Jūsų naršyklė nepalaiko reikalingų kriptografijos plėtinių", + "Not a valid Riot keyfile": "Negaliojantis Riot rakto failas", + "Authentication check failed: incorrect password?": "Tapatybės nustatymo patikrinimas patyrė nesėkmę: neteisingas slaptažodis?", + "Send analytics data": "Siųsti analitinius duomenis", + "Incoming voice call from %(name)s": "Gaunamasis balso skambutis nuo %(name)s", + "Incoming video call from %(name)s": "Gaunamasis vaizdo skambutis nuo %(name)s", + "Incoming call from %(name)s": "Gaunamasis skambutis nuo %(name)s", + "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.": "Šiuo metu slaptažodžio pakeitimas atstatys bet kokius ištisinio šifravimo raktus visuose įrenginiuose ir tokiu būdu pavers šifruotą pokalbių istoriją neperskaitoma, nebent, iš pradžių, savo kambario raktus eksportuosite, o po to, juos importuosite iš naujo. Ateityje tai bus patobulinta.", + "Change Password": "Keisti slaptažodį", + "Authentication": "Tapatybės nustatymas", + "The maximum permitted number of widgets have already been added to this room.": "Į šį kambarį jau yra pridėtas didžiausias leidžiamas valdiklių skaičius.", + "Your key share request has been sent - please check your other devices for key share requests.": "Jūsų rakto bendrinimo užklausa išsiųsta - patikrinkite kitus savo įrenginius, ar juose nėra rakto bendrinimo užklausų.", + "Key share requests are sent to your other devices automatically. If you rejected or dismissed the key share request on your other devices, click here to request the keys for this session again.": "Rakto bendrinimo užklausos yra išsiunčiamos į jūsų kitus įrenginius automatiškai. Jeigu savo kitame įrenginyje atmetėte ar nepaisėte rakto užklausos, spustelėkite čia, norėdami dar kartą užklausti raktų šiam seansui.", + "Please select the destination room for this message": "Pasirinkite šiai žinutei paskirties kambarį", + "No devices with registered encryption keys": "Nėra jokių įrenginių su registruotais šifravimo raktais", + "Make Moderator": "Padaryti moderatoriumi", + "Level:": "Lygis:", + "Hangup": "Padėti ragelį", + "No pinned messages.": "Nėra jokių prisegtų žinučių.", + "Online for %(duration)s": "Prisijungęs %(duration)s", + "Idle for %(duration)s": "Neveiklus %(duration)s", + "Offline for %(duration)s": "Atsijungęs %(duration)s", + "Idle": "Neveiklus", + "Offline": "Atsijungęs", + "Failed to set avatar.": "Nepavyko nustatyti avataro.", + "Forget room": "Pamiršti kambarį", + "Share room": "Bendrinti kambarį" } From 9a2ecf9e004453081e56654ef85732f3c1554e97 Mon Sep 17 00:00:00 2001 From: csybr Date: Tue, 21 Aug 2018 12:00:54 +0000 Subject: [PATCH 029/162] Translated using Weblate (Norwegian Nynorsk) Currently translated at 98.7% (1220 of 1236 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nn/ --- src/i18n/strings/nn.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/nn.json b/src/i18n/strings/nn.json index 9e2c6f2076..95183cad2d 100644 --- a/src/i18n/strings/nn.json +++ b/src/i18n/strings/nn.json @@ -950,7 +950,7 @@ "Review terms and conditions": "Sjå over Vilkår og Føresetnader", "Old cryptography data detected": "Gamal kryptografidata vart oppdagen", "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 frå ei eldre utgåve av Riot vart oppdagen. I den eldre utgåva hadde dette gjort at ende-til-ende-kryptografi ikkje verkar som det skal. Ende-til-ende-enkrypterte meldingar som vert utveksla nyleg med den gamle utgåva er det kanskje ikkje mogeleg å dekryptera i denne utgåva. Dette fører kanskje òg til at meldingar som vart utveksla med denne utgåva ikkje verkar. Viss du opplever vansker, logg ut og inn att. For å spara på meldingshistoria, hent nyklane dine ut og inn at.", - "Logout": "Utlogging", + "Logout": "Loggar ut", "Your Communities": "Dine Samfunn", "Error whilst fetching joined communities": "Noko gjekk gale med innhentinga av samfunna du er i", "Create a new community": "Lag eit nytt samfunn", @@ -1223,5 +1223,7 @@ "There is a known vulnerability affecting this room.": "Ein kjend sårbarheit påverkar dette rommet.", "This room version is vulnerable to malicious modification of room state.": "Denne romutgåva er sårbar til vondsinna endring på romtilstanden.", "Only room administrators will see this warning": "Berre romadministratorar vil sjå denne åtvaringa", - "Please contact your service administrator to continue using the service.": "Ver venleg og tak kontakt med tenesteadministratoren for å halda fram med å bruka tenesten." + "Please contact your service administrator to continue using the service.": "Ver venleg og tak kontakt med tenesteadministratoren for å halda fram med å bruka tenesten.", + "This homeserver has hit its Monthly Active User limit.": "Heimtenaren har truffe den Månadlege Grensa si for Aktive Brukarar.", + "This homeserver has exceeded one of its resource limits.": "Heimtenaren har gått over ei av ressursgrensene sine." } From 8eaead9c1895483c87401c38d0756499b9c3888a Mon Sep 17 00:00:00 2001 From: Moo Date: Tue, 21 Aug 2018 20:48:39 +0000 Subject: [PATCH 030/162] Translated using Weblate (Russian) Currently translated at 98.8% (1222 of 1236 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/ru/ --- src/i18n/strings/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index e3cc761c30..25e0d0b78d 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -861,7 +861,7 @@ "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "Сообщение отправлено на %(emailAddress)s. После перехода по ссылке в отправленном вам письме, щелкните ниже.", "Room Notification": "Уведомления комнаты", "Drop here to tag direct chat": "Перетащите сюда, чтобы пометить как личный чат", - "Drop here to restore": "Перетащиет сюда, чтобы вернуть", + "Drop here to restore": "Перетащите сюда, чтобы вернуть", "Drop here to demote": "Перетащите сюда, чтобы понизить", "Community Invites": "Приглашения в сообщества", "Notify the whole room": "Уведомить всю комнату", From e70eee964163780a87a9f161efc824b58ada04e8 Mon Sep 17 00:00:00 2001 From: vejetaryenvampir Date: Mon, 20 Aug 2018 19:26:20 +0000 Subject: [PATCH 031/162] Translated using Weblate (Turkish) Currently translated at 60.1% (744 of 1236 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/tr/ --- src/i18n/strings/tr.json | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/i18n/strings/tr.json b/src/i18n/strings/tr.json index 04f78dc1ee..851d556757 100644 --- a/src/i18n/strings/tr.json +++ b/src/i18n/strings/tr.json @@ -574,11 +574,11 @@ "Add User": "Kullanıcı Ekle", "This Home Server would like to make sure you are not a robot": "Bu Ana Sunucu robot olmadığınızdan emin olmak istiyor", "Sign in with CAS": "CAS ile oturum açın", - "Custom Server Options": "Özel Sunucu Seçenekleri", + "Custom Server Options": "Özelleştirilebilir Sunucu Seçenekleri", "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Özel Sunucu Seçeneklerini diğer Matrix sunucularına giriş yapmak için farklı bir Ana Sunucu URL'si belirleyerek kullanabilirsiniz.", "This allows you to use this app with an existing Matrix account on a different home server.": "Bu, sizin bu uygulamayı varolan Matrix hesabınızla farklı Ana Sunucularda kullanmanıza izin verir.", "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Ayrıca özel bir kimlik sunucusu da ayarlayabilirsiniz ancak bu e-posta adresine dayalı olarak kullanıcılarla olan etkileşimi engeller.", - "Dismiss": "Uzaklaştır", + "Dismiss": "Kapat", "Please check your email to continue registration.": "Kayıt işlemine devam etmek için lütfen e-postanızı kontrol edin.", "Token incorrect": "Belirteç(Token) hatalı", "Please enter the code it contains:": "Lütfen içerdiği kodu girin:", @@ -751,5 +751,10 @@ "View Source": "Kaynağı Görüntüle", "Collapse panel": "Katlanır 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!": "Geçerli tarayıcınız ile birlikte , uygulamanın görünüş ve kullanım hissi tamamen hatalı olabilir ve bazı ya da tüm özellikler çalışmayabilir. Yine de denemek isterseniz devam edebilirsiniz ancak karşılaşabileceğiniz sorunlar karşısında kendi başınasınız !", - "There are advanced notifications which are not shown here": "Burada gösterilmeyen gelişmiş bildirimler var" + "There are advanced notifications which are not shown here": "Burada gösterilmeyen gelişmiş bildirimler var", + "The platform you're on": "Bulunduğun platform", + "The version of Riot.im": "Riot.im'in sürümü", + "Whether or not you're logged in (we don't record your user name)": "Ne olursa olsun giriş yaptın (kullanıcı adınızı kaydetmeyiz)", + "Your language of choice": "Seçtiginiz diliniz", + "Which officially provided instance you are using, if any": "" } From 2ba69b61d8fccdd2637a1ba2e2084a3993142ac8 Mon Sep 17 00:00:00 2001 From: Slavi Pantaleev Date: Wed, 22 Aug 2018 14:56:43 +0000 Subject: [PATCH 032/162] Translated using Weblate (Bulgarian) Currently translated at 98.3% (1216 of 1236 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 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/bg.json b/src/i18n/strings/bg.json index 18cdd5afdb..3e8d2368e1 100644 --- a/src/i18n/strings/bg.json +++ b/src/i18n/strings/bg.json @@ -1231,5 +1231,7 @@ "Internal room ID: ": "Вътрешен идентификатор на стаята: ", "Room version number: ": "Версия на стаята: ", "This homeserver has hit its Monthly Active User limit. Please contact your service administrator to continue using the service.": "Този сървър достигна лимита си за активни потребители на месец. Моля, свържете се с администратора на услугата, за да продължите да я използвате.", - "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.": "Този сървър достигна лимита си за активни потребители на месец и някои потребители няма да успеят да влязат в профила си. Моля, свържете се с администратора на услугата за да се увеличи този лимит." + "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.": "Този сървър достигна лимита си за активни потребители на месец и някои потребители няма да успеят да влязат в профила си. Моля, свържете се с администратора на услугата за да се увеличи този лимит.", + "There is a known vulnerability affecting this room.": "Има пропуск в сигурността засягащ тази стая.", + "This room version is vulnerable to malicious modification of room state.": "Тази версия на стаята е уязвима към злонамерена модификация на състоянието й." } From 99b020b4b0eb101fa47314ce3939dc340d2d9076 Mon Sep 17 00:00:00 2001 From: Slavi Pantaleev Date: Wed, 22 Aug 2018 17:31:12 +0000 Subject: [PATCH 033/162] Translated using Weblate (Bulgarian) Currently translated at 100.0% (1236 of 1236 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 | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/bg.json b/src/i18n/strings/bg.json index 3e8d2368e1..2e6e680a7b 100644 --- a/src/i18n/strings/bg.json +++ b/src/i18n/strings/bg.json @@ -1233,5 +1233,25 @@ "This homeserver has hit its Monthly Active User limit. Please contact your service administrator to continue using the service.": "Този сървър достигна лимита си за активни потребители на месец. Моля, свържете се с администратора на услугата, за да продължите да я използвате.", "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.": "Този сървър достигна лимита си за активни потребители на месец и някои потребители няма да успеят да влязат в профила си. Моля, свържете се с администратора на услугата за да се увеличи този лимит.", "There is a known vulnerability affecting this room.": "Има пропуск в сигурността засягащ тази стая.", - "This room version is vulnerable to malicious modification of room state.": "Тази версия на стаята е уязвима към злонамерена модификация на състоянието й." + "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": "Само администратори на стаята виждат това предупреждение", + "Please contact your service administrator to continue using the service.": "Моля, свържете се с администратора на услугата за да продължите да я използвате.", + "This homeserver has hit its Monthly Active User limit.": "Този сървър е достигнал лимита си за активни потребители на месец.", + "This homeserver has exceeded one of its resource limits.": "Този сървър е надвишил някой от лимитите си.", + "Please contact your service administrator to get this limit increased.": "Моля, свържете се с администратора на услугата за да се увеличи този лимит.", + "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.": "Този сървър е достигнал някой от лимите си, така че някои потребители не биха успели да влязат.", + "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": "Поставим връзка в новата стая, водещо обратно към старата, за да може хората да виждат старите съобщения", + "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.": "Съобщението Ви не бе изпратено, защото този сървър е някой от лимитите си. Моля, свържете се с администратора на услугата за да продължите да я използвате.", + "Please contact your service administrator to continue using this service.": "Моля, свържете се с администратора на услугата за да продължите да я използвате.", + "Increase performance by only loading room members on first view": "Повишаване на бързодействието чрез отложено зареждане на членовете в стаите", + "Lazy loading members not supported": "Отложеното зареждане на членовете не се поддържа", + "Lazy loading is not supported by your current homeserver.": "Отложеното зареждане на членовете не се поддържа от текущия сървър." } From f2821d6e763cce00cf2df6df5da3a9f7ca3d197e Mon Sep 17 00:00:00 2001 From: csybr Date: Wed, 22 Aug 2018 21:50:01 +0000 Subject: [PATCH 034/162] Translated using Weblate (Norwegian Nynorsk) Currently translated at 98.7% (1220 of 1236 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nn/ --- src/i18n/strings/nn.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/i18n/strings/nn.json b/src/i18n/strings/nn.json index 95183cad2d..c8c9dacd95 100644 --- a/src/i18n/strings/nn.json +++ b/src/i18n/strings/nn.json @@ -337,9 +337,9 @@ "Kick this user?": "Spark denne brukaren ut?", "Failed to kick": "Fekk ikkje til å sparka ut", "Unban": "Slepp inn att", - "Ban": "Utesteng", + "Ban": "Steng ute", "Unban this user?": "Slepp denne brukaren inn att?", - "Ban this user?": "Utesteng denne brukaren?", + "Ban this user?": "Steng denne brukaren ute?", "Failed to ban user": "Fekk ikkje til å utestenga brukar", "Demote yourself?": "Senk høgda di?", "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.": "Du kan ikkje gjera om på denne endringa sidan du senkar høgda di. Viss du er den siste opphøgda brukaren i rommet vert det umogeleg å få høgda att.", @@ -356,7 +356,7 @@ "Mention": "Nemn", "Invite": "Byd inn", "Enable inline URL previews by default": "Skru URL-førehandsvisingar i tekstfeltet på", - "Share Link to User": "Del Lenkje til Brukar", + "Share Link to User": "Del Brukarlenkje", "User Options": "Brukarinnstillingar", "Direct chats": "Direktesamtaler", "Unmute": "Fjern stilning", From f1e1553ef50d22258de12aecbca3fcf33d2f6b5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Thu, 23 Aug 2018 09:02:54 +0000 Subject: [PATCH 035/162] Translated using Weblate (French) Currently translated at 100.0% (1228 of 1228 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 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index d94a32258d..9894e4073a 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -1253,5 +1253,7 @@ "Please contact your service administrator to continue using this service.": "Veuillez contacter l'administrateur de votre service pour continuer à l'utiliser.", "Increase performance by only loading room members on first view": "Améliorer les performances en ne chargeant les participants des salons qu'au premier affichage", "Lazy loading members not supported": "La chargement différé des participants n'est pas pris en charge", - "Lazy loading is not supported by your current homeserver.": "Le chargement différé n'est pas pris en charge par votre serveur d'accueil actuel." + "Lazy loading is not supported by your current homeserver.": "Le chargement différé n'est pas pris en charge par votre serveur d'accueil actuel.", + "Sorry, your homeserver is too old to participate in this room.": "Désolé, votre serveur d'accueil est trop vieux pour participer à ce salon.", + "Please contact your homeserver administrator.": "Veuillez contacter l'administrateur de votre serveur d'accueil." } From 1488417c3e8f9f91a4db18616d73c1a75471405f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20V=C3=A1gner?= Date: Thu, 23 Aug 2018 12:11:11 +0000 Subject: [PATCH 036/162] Translated using Weblate (Slovak) Currently translated at 100.0% (1228 of 1228 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/sk/ --- src/i18n/strings/sk.json | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index a343c44066..4da149b5f1 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -1222,5 +1222,22 @@ "numbered-list": "Číselný zoznam", "Failed to remove widget": "Nepodarilo sa odstrániť widget", "An error ocurred whilst trying to remove the widget from the room": "Pri odstraňovaní widgetu z miestnosti sa vyskytla chyba", - "You can't send any messages until you review and agree to our terms and conditions.": "Nemôžete posielať žiadne správy, kým si neprečítate a neodsúhlasíte naše zmluvné podmienky." + "You can't send any messages until you review and agree to our terms and conditions.": "Nemôžete posielať žiadne správy, kým si neprečítate a neodsúhlasíte naše zmluvné podmienky.", + "Sorry, your homeserver is too old to participate in this room.": "Prepáčte, nie je možné prijímať a odosielať do tejto miestnosti, pretože váš domovský server je zastaralý.", + "Please contact your homeserver administrator.": "Prosím, kontaktujte správcu domovského servera.", + "Increase performance by only loading room members on first view": "Zvýšiť výkon načítaním zoznamu členov pri prvom zobrazení", + "System Alerts": "Systémové upozornenia", + "Internal room ID: ": "Interné ID miestnosti: ", + "Room version number: ": "Číslo verzie miestnosti: ", + "Please contact your service administrator to continue using the service.": "Prosím, kontaktujte správcu služieb aby ste službu mohli naďalej používať.", + "This homeserver has hit its Monthly Active User limit.": "Bol dosiahnutý mesačný limit počtu aktívnych používateľov tohoto domovského servera.", + "This homeserver has exceeded one of its resource limits.": "Bol prekročený limit využitia prostriedkov pre tento domovský server.", + "Please contact your service administrator to get this limit increased.": "Prosím, kontaktujte správcu služieb a pokúste sa tento limit navýšiť.", + "This homeserver has hit its Monthly Active User limit so some users will not be able to log in.": "Bol dosiahnutý mesačný limit počtu aktívnych používateľov a niektorí používatelia sa nebudú môcť prihlásiť.", + "This homeserver has exceeded one of its resource limits so some users will not be able to log in.": "Bol prekročený limit využitia prostriedkov pre tento domovský server a niektorí používatelia sa nebudú môcť prihlásiť.", + "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.": "Vaša správa nebola odoslaná, pretože bol dosiahnutý mesačný limit počtu aktívnych používateľov tohoto domovského servera. Prosím, kontaktujte správcu služieb aby ste službu mohli naďalej používať.", + "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Vaša správa nebola odoslaná, pretože bol prekročený limit prostriedkov tohoto domovského servera. Prosím, kontaktujte správcu služieb aby ste službu mohli naďalej používať.", + "Lazy loading members not supported": "Načítanie zoznamu členov pri prvom zobrazení nie je podporované", + "Lazy loading is not supported by your current homeserver.": "Oneskorené načítanie nepodporuje váš domovský server.", + "Please contact your service administrator to continue using this service.": "Prosím, kontaktujte správcu služieb aby ste mohli službu ďalej používať." } From 58701d26ae5790f5c44645e8daf338c9dd4526e2 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Thu, 23 Aug 2018 13:17:56 +0000 Subject: [PATCH 037/162] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (1228 of 1228 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 3a7d08fb8a..ad4a01fca0 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -1252,6 +1252,8 @@ "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "您的訊息未傳送,因為其家伺服器已超過一項資源限制。請聯絡您的服務管理員以繼序使用服務。", "Please contact your service administrator to continue using this service.": "請聯絡您的服務管理員以繼續使用此服務。", "Increase performance by only loading room members on first view": "透過僅在第一次檢視時載入聊天室成員來增加效能", - "Lazy loading members not supported": "不支援延持載入成員", - "Lazy loading is not supported by your current homeserver.": "您目前的家伺服器不支援延遲載入。" + "Lazy loading members not supported": "不支援延遲載入成員", + "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.": "請聯絡您的家伺服器的管理員。" } From b468ffea635f2cc5e0fad0b0ca87ad74927f2ca4 Mon Sep 17 00:00:00 2001 From: Szimszon Date: Thu, 23 Aug 2018 18:29:26 +0000 Subject: [PATCH 038/162] Translated using Weblate (Hungarian) Currently translated at 100.0% (1228 of 1228 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 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 5334fba225..f94d9fc9fb 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -1253,5 +1253,7 @@ "Please contact your service administrator to continue using this service.": "A szolgáltatás további használatához kérlek vedd fel a kapcsolatot a szolgáltatás adminisztrátorával.", "Increase performance by only loading room members on first view": "A teljesítmény növelése érdekében a szoba tagsága csak az első megtekintéskor töltődik be", "Lazy loading members not supported": "A tagok késleltetett betöltése nem támogatott", - "Lazy loading is not supported by your current homeserver.": "A késleltetett betöltés nem támogatott ennél a Matrix szervernél." + "Lazy loading is not supported by your current homeserver.": "A késleltetett betöltés nem támogatott ennél a Matrix szervernél.", + "Sorry, your homeserver is too old to participate in this room.": "Sajnáljuk, a Matrix szervered nem elég friss ahhoz, hogy részt vegyen ebben a szobában.", + "Please contact your homeserver administrator.": "Kérlek vedd fel a kapcsolatot a Matrix szerver adminisztrátorával." } From 6c3ca166f04a37053a908e8202a4f45d66f4c0c3 Mon Sep 17 00:00:00 2001 From: cocker-cc Date: Thu, 23 Aug 2018 17:49:35 +0000 Subject: [PATCH 039/162] Translated using Weblate (German) Currently translated at 99.9% (1227 of 1228 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 | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 4d9bd7e882..e5cb0de3d9 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -442,7 +442,7 @@ "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Du kannst auch einen angepassten Idantitätsserver angeben aber dies wird typischerweise Interaktionen mit anderen Nutzern auf Basis der E-Mail-Adresse verhindern.", "Please check your email to continue registration.": "Bitte prüfe deine E-Mails, um mit der Registrierung fortzufahren.", "Token incorrect": "Token fehlerhaft", - "Please enter the code it contains:": "Bitte gebe den Code ein, den sie enthält:", + "Please enter the code it contains:": "Bitte gib den darin enthaltenen Code ein:", "powered by Matrix": "betrieben mit Matrix", "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Wenn du keine E-Mail-Adresse angibst, wirst du nicht in der Lage sein, dein Passwort zurückzusetzen. Bist du sicher?", "You are registering with %(SelectedTeamName)s": "Du registrierst dich mit %(SelectedTeamName)s", @@ -1221,7 +1221,7 @@ "numbered-list": "Liste mit Nummern", "Failed to remove widget": "Widget konnte nicht entfernt werden", "An error ocurred whilst trying to remove the widget from the room": "Ein Fehler trat auf, während versucht wurde das Widget aus diesem Raum zu entfernen", - "inline-code": "Quellcode im Satz", + "inline-code": "Quellcode in der Zeile", "block-quote": "Quellcode im Block", "This homeserver has hit its Monthly Active User limit": "Dieser Heimserver hat sein Limit für monatlich aktive Nutzer erreicht", "Please contact your service administrator to continue using this service.": "Bitte kontaktiere deinen Administrator um diesen Dienst weiter zu nutzen.", @@ -1253,5 +1253,7 @@ "Please contact your service administrator to continue using this service.": "Bitte kontaktiere deinen Systemadministrator um diesen Dienst weiter zu nutzen.", "Increase performance by only loading room members on first view": "Verbessere Performanz, indem Raum-Mitglieder erst beim ersten Ansehen geladen werden", "Lazy loading members not supported": "Verzögertes Laden von Mitgliedern nicht unterstützt", - "Lazy loading is not supported by your current homeserver.": "Verzögertes Laden wird von deinem aktuellen Heimserver." + "Lazy loading is not supported by your current homeserver.": "Verzögertes Laden wird von deinem aktuellen Heimserver.", + "Sorry, your homeserver is too old to participate in this room.": "Sorry, dein Homeserver ist zu alt, um an diesem Raum teilzunehmen.", + "Please contact your homeserver administrator.": "Bitte setze dich mit dem Administrator deines Homeservers in Verbindung." } From 58450b6b0fdf1ec59a8fc2235d326206c76a0e32 Mon Sep 17 00:00:00 2001 From: Slavi Pantaleev Date: Fri, 24 Aug 2018 05:57:18 +0000 Subject: [PATCH 040/162] Translated using Weblate (Bulgarian) Currently translated at 100.0% (1228 of 1228 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 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/bg.json b/src/i18n/strings/bg.json index 2e6e680a7b..c13d166c69 100644 --- a/src/i18n/strings/bg.json +++ b/src/i18n/strings/bg.json @@ -1252,6 +1252,8 @@ "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Съобщението Ви не бе изпратено, защото този сървър е някой от лимитите си. Моля, свържете се с администратора на услугата за да продължите да я използвате.", "Please contact your service administrator to continue using this service.": "Моля, свържете се с администратора на услугата за да продължите да я използвате.", "Increase performance by only loading room members on first view": "Повишаване на бързодействието чрез отложено зареждане на членовете в стаите", - "Lazy loading members not supported": "Отложеното зареждане на членовете не се поддържа", - "Lazy loading is not supported by your current homeserver.": "Отложеното зареждане на членовете не се поддържа от текущия сървър." + "Lazy loading members not supported": "Отложеното зареждане на членове не се поддържа", + "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.": "Моля, свържете се се със сървърния администратор." } From 18ed6eb63c3075efeda709505b77615c7d8c0544 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 24 Aug 2018 11:35:21 +0100 Subject: [PATCH 041/162] Rener terms & conditions in settings If configured in config file --- src/components/structures/UserSettings.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/components/structures/UserSettings.js b/src/components/structures/UserSettings.js index f4dc92aca4..ea700272b6 100644 --- a/src/components/structures/UserSettings.js +++ b/src/components/structures/UserSettings.js @@ -921,6 +921,25 @@ module.exports = React.createClass({
; }, + _renderTermsAndConditionsLinks: function() { + if (SdkConfig.get().terms_and_conditions_links) { + const tncLinks = []; + for (const tncEntry of SdkConfig.get().terms_and_conditions_links) { + tncLinks.push(); + } + return
+

{ _t("Terms and Conditions") }

+
+ {tncLinks} +
+
; + } else { + return null; + } + }, + _renderClearCache: function() { return

{ _t("Clear Cache") }

@@ -1407,6 +1426,8 @@ module.exports = React.createClass({ { this._renderDeactivateAccount() } + { this._renderTermsAndConditionsLinks() } +
); From c03abddd1c7c3208cd62cf56cc47814b4c15c7c8 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 24 Aug 2018 11:38:38 +0100 Subject: [PATCH 042/162] s/terms and conditions/legal/ --- src/components/structures/UserSettings.js | 2 +- src/i18n/strings/en_EN.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/structures/UserSettings.js b/src/components/structures/UserSettings.js index ea700272b6..53e1ddea71 100644 --- a/src/components/structures/UserSettings.js +++ b/src/components/structures/UserSettings.js @@ -930,7 +930,7 @@ module.exports = React.createClass({ ); } return
-

{ _t("Terms and Conditions") }

+

{ _t("Legal") }

{tncLinks}
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index b560c7e71b..2371ba0ca6 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -1117,6 +1117,7 @@ "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", From 88207716003d11791da03f29e8d35e0ef78fc6e5 Mon Sep 17 00:00:00 2001 From: Krombel Date: Thu, 23 Aug 2018 21:06:37 +0000 Subject: [PATCH 043/162] Translated using Weblate (German) Currently translated at 100.0% (1228 of 1228 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 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index e5cb0de3d9..e2f2b64401 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -260,7 +260,7 @@ "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s hat den zukünftigen Chatverlauf sichtbar gemacht für alle Raum-Mitglieder (ab dem Zeitpunkt, an dem sie beigetreten sind).", "%(senderName)s made future room history visible to all room members.": "%(senderName)s hat den zukünftigen Chatverlauf sichtbar gemacht für: Alle Raum-Mitglieder.", "%(senderName)s made future room history visible to anyone.": "%(senderName)s hat den zukünftigen Chatverlauf sichtbar gemacht für Alle.", - "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s hat den zukünftigen Chatverlauf sichtbar gemacht für unbekannt (%(visibility)s).", + "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s hat den zukünftigen Chatverlauf für Unbekannte sichtbar gemacht (%(visibility)s).", "Missing room_id in request": "Fehlende room_id in Anfrage", "Missing user_id in request": "Fehlende user_id in Anfrage", "(not supported by this browser)": "(wird von diesem Browser nicht unterstützt)", @@ -1149,7 +1149,7 @@ "Always show encryption icons": "Immer Verschlüsselungssymbole zeigen", "At this time it is not possible to reply with a file so this will be sent without being a reply.": "Aktuell ist es nicht möglich mit einer Datei zu antworten, sodass diese gesendet wird ohne eine Antwort zu sein.", "Unable to reply": "Antworten nicht möglich", - "Unable to load event that was replied to, it either does not exist or you do not have permission to view it.": "Das Ereignis auf das geantwortet wurde könnte nicht geladen werden, da es entweder nicht existiert oder du keine Berechtigung hast, dieses anzusehen.", + "Unable to load event that was replied to, it either does not exist or you do not have permission to view it.": "Das Ereignis auf das geantwortet wurde konnte nicht geladen werden. Entweder es existiert nicht oder du hast keine Berechtigung, dieses anzusehen.", "Riot bugs are tracked on GitHub: create a GitHub issue.": "Riot-Fehler werden auf GitHub festgehalten: Erzeuge ein GitHub-Issue.", "Log out and remove encryption keys?": "Abmelden und alle Verschlüsselungs-Schlüssel löschen?", "Send Logs": "Sende Protokoll", From d2bfaca9a54b65de3cd9a84f5448388ceb47c0b0 Mon Sep 17 00:00:00 2001 From: Bamstam Date: Fri, 24 Aug 2018 10:55:29 +0000 Subject: [PATCH 044/162] Translated using Weblate (German) Currently translated at 100.0% (1228 of 1228 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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index e2f2b64401..19ac865bca 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -839,7 +839,7 @@ "%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)shaben das Profilbild geändert", "%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)shat das Profilbild %(count)s-mal geändert", "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)shat das Profilbild geändert", - "%(names)s and %(count)s others are typing|one": "%(names)s und eine weitere Person schreiben", + "%(names)s and %(count)s others are typing|one": "%(names)s und noch jemand schreiben", "Disinvite this user?": "Einladung für diesen Benutzer zurückziehen?", "Kick this user?": "Diesen Benutzer kicken?", "Unban this user?": "Verbannung für diesen Benutzer aufheben?", From 04c0dd95261a3f30536f5b8d2552f2e368fa370c Mon Sep 17 00:00:00 2001 From: Slavi Pantaleev Date: Fri, 24 Aug 2018 05:58:07 +0000 Subject: [PATCH 045/162] Translated using Weblate (Bulgarian) Currently translated at 100.0% (1228 of 1228 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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/bg.json b/src/i18n/strings/bg.json index c13d166c69..ed0d372043 100644 --- a/src/i18n/strings/bg.json +++ b/src/i18n/strings/bg.json @@ -1253,7 +1253,7 @@ "Please contact your service administrator to continue using this service.": "Моля, свържете се с администратора на услугата за да продължите да я използвате.", "Increase performance by only loading room members on first view": "Повишаване на бързодействието чрез отложено зареждане на членовете в стаите", "Lazy loading members not supported": "Отложеното зареждане на членове не се поддържа", - "Lazy loading is not supported by your current homeserver.": "Отложеното зареждане на членовете не се поддържа от текущия сървър.", + "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.": "Моля, свържете се се със сървърния администратор." } From 69cd499e280a3eafa0ee6dffcb632d28629c51c5 Mon Sep 17 00:00:00 2001 From: Nikolas Date: Fri, 24 Aug 2018 10:57:12 +0000 Subject: [PATCH 046/162] Translated using Weblate (German) Currently translated at 100.0% (1228 of 1228 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 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 19ac865bca..6a85edeb31 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -929,9 +929,9 @@ "Warning": "Warnung", "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.": "Es wurden Daten von einer älteren Version von Riot entdeckt. Dies wird zu Fehlern in der Ende-zu-Ende-Verschlüsselung der älteren Version geführt haben. Ende-zu-Ende verschlüsselte Nachrichten, die ausgetauscht wruden, während die ältere Version genutzt wurde, werden in dieser Version nicht entschlüsselbar sein. Es kann auch zu Fehlern mit Nachrichten führen, die mit dieser Version versendet werden. Wenn du Probleme feststellst, melde dich ab und wieder an. Um die Historie zu behalten, ex- und reimportiere deine Schlüssel.", "Send an encrypted reply…": "Verschlüsselte Antwort senden…", - "Send a reply (unencrypted)…": "Antwort senden (unverschlüsselt)…", + "Send a reply (unencrypted)…": "Unverschlüsselte Antwort senden…", "Send an encrypted message…": "Verschlüsselte Nachricht senden…", - "Send a message (unencrypted)…": "Nachricht senden (unverschlüsselt)…", + "Send a message (unencrypted)…": "Unverschlüsselte Nachricht senden…", "Replying": "Antwortet", "Minimize apps": "Apps minimieren", "%(count)s of your messages have not been sent.|one": "Deine Nachricht wurde nicht gesendet.", From 06a2942afeae2bdf9eb58c6b91bcb60284dd34f0 Mon Sep 17 00:00:00 2001 From: csybr Date: Fri, 24 Aug 2018 11:22:45 +0000 Subject: [PATCH 047/162] Translated using Weblate (Norwegian Nynorsk) Currently translated at 99.1% (1217 of 1228 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nn/ --- src/i18n/strings/nn.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/i18n/strings/nn.json b/src/i18n/strings/nn.json index c8c9dacd95..805143c2a3 100644 --- a/src/i18n/strings/nn.json +++ b/src/i18n/strings/nn.json @@ -411,13 +411,13 @@ "%(duration)sm": "%(duration)sm", "%(duration)sh": "%(duration)st", "%(duration)sd": "%(duration)sd", - "Online for %(duration)s": "På nett i %(duration)s", + "Online for %(duration)s": "tilkopla i %(duration)s", "Idle for %(duration)s": "Fråverande i %(duration)s", - "Offline for %(duration)s": "Av nett i %(duration)s", + "Offline for %(duration)s": "Fråkopla i %(duration)s", "Unknown for %(duration)s": "Ukjend i %(duration)s", - "Online": "På nett", + "Online": "Tilkopla", "Idle": "Fråverande", - "Offline": "Av nett", + "Offline": "Fråkopla", "Unknown": "Ukjend", "Seen by %(userName)s at %(dateTime)s": "%(userName)s såg dette %(dateTime)s", "Seen by %(displayName)s (%(userName)s) at %(dateTime)s": "%(displayName)s %(userName)s såg dette %(dateTime)s", @@ -813,9 +813,9 @@ "Clear Storage and Sign Out": "Tøm Lager og Logg Ut", "Send Logs": "Send Loggar", "Refresh": "Hent fram på nytt", - "Unable to restore session": "Kunne ikkje henta økta fram att", - "We encountered an error trying to restore your previous session.": "Noko gjekk gale med framhentinga av den førre økta di.", - "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.": "Viss du har bruka ei nyare utgåve av Riot før, kan det henda at økta di ikkje passar inn i denne utgåva. Lukk dette vindauget og gå attende til den nyare utgåva.", + "Unable to restore session": "Kunne ikkje henta øykta fram att", + "We encountered an error trying to restore your previous session.": "Noko gjekk gale med framhentinga av den førre øykta di.", + "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.": "Viss du har bruka ei nyare utgåve av Riot før, kan det henda at øykta di ikkje passar inn i denne utgåva. Lukk dette vindauget og gå attende til den nyare utgåva.", "Clearing your browser's storage may fix the problem, but will sign you out and cause any encrypted chat history to become unreadable.": "Det kan henda at å tømma nettlesarlageret rettar opp i det, men det loggar deg ut og kan gjera den enkrypterte pratehistoria uleseleg.", "Invalid Email Address": "Ugangbar Emailadresse", "This doesn't appear to be a valid email address": "Det ser ikkje ut til at emailadressa er gangbar", @@ -944,7 +944,7 @@ "Can't leave Server Notices room": "Kan ikkje fara frå Tenarvarsel-rommet", "This room is used for important messages from the Homeserver, so you cannot leave it.": "Dette rommet er for viktige meldingar frå Heimtenaren, so du kan ikkje fara frå det.", "Signed Out": "Logga Ut", - "For security, this session has been signed out. Please sign in again.": "Av sikkerheitsgrunnar har denne økta vorte logga ut. Ver venleg og logg inn att.", + "For security, this session has been signed out. Please sign in again.": "Av sikkerheitsgrunnar har denne øykta vorte logga ut. Ver venleg og logg inn att.", "Terms and Conditions": "Vilkår og Føresetnader", "To continue using the %(homeserverDomain)s homeserver you must review and agree to our terms and conditions.": "For å framleis bruka %(homeserverDomain)s sin heimtenar må du sjå over og seia deg einig i våre Vilkår og Føresetnader.", "Review terms and conditions": "Sjå over Vilkår og Føresetnader", @@ -1140,7 +1140,7 @@ "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.": "Å endra passordet ditt attendestiller førebelst alle ende-til-ende-enkrypteringsnyklar på alle einingar, slik at enkryptert pratehistorie vert uleseleg, med mindre du fyrst hentar romnyklane dine ut og hentar dei inn att etterpå. I framtida vil denne prosessen vera betre.", "Export E2E room keys": "Hent E2E-romnyklar ut", "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Det kan henda at du stilte dei inn på ein annan klient enn Riot. Du kan ikkje stilla på dei i Riot men dei gjeld framleis", - "Key share requests are sent to your other devices automatically. If you rejected or dismissed the key share request on your other devices, click here to request the keys for this session again.": "Nykeldelingsførespurnader vert sende til dei andre einingane dine av seg sjølv. Viss du sa nei til eller avviste førespurnadene på dei andre einingane, klikk her for å beda om nyklane for denne økta på nytt.", + "Key share requests are sent to your other devices automatically. If you rejected or dismissed the key share request on your other devices, click here to request the keys for this session again.": "Nykeldelingsførespurnader vert sende til dei andre einingane dine av seg sjølv. Viss du sa nei til eller avviste førespurnadene på dei andre einingane, klikk her for å beda om nyklane for denne øykta på nytt.", "Jump to read receipt": "Hopp til lest-lappen", "Filter room members": "Filtrer rommedlemer", "inline-code": "kode-i-tekst", @@ -1211,7 +1211,7 @@ "Failed to remove tag %(tagName)s from room": "Fekk ikkje til å fjerna merket %(tagName)s frå rommet", "Failed to add tag %(tagName)s to room": "Fekk ikkje til å leggja merket %(tagName)s til i rommet", "Hide read receipts": "Gøym lest-lappar", - "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.": "Av sikkerheitsmessige grunnar vil det å logga ut sletta alle ende-til-ende-enkrypteringsnyklar frå nettlesaren. Viss du vil kunna dekryptera samtalehistoria di på framtidige Riot-økter, ver venleg og hent ut romnyklande dine og tak vare på dei.", + "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.": "Av sikkerheitsmessige grunnar vil det å logga ut sletta alle ende-til-ende-enkrypteringsnyklar frå nettlesaren. Viss du vil kunna dekryptera samtalehistoria di på framtidige Riot-øykter, ver venleg og hent ut romnyklande dine og tak vare på dei.", "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.": "Dette tillèt deg å henta nyklane for meldingar du har sendt i enkrypterte rom ut til ei lokal fil. Då kan du henta fila inn til ein annan Matrix-klient i framtida, slik at den klienten òg kan dekryptera meldingane.", "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.": "Å henta filen ut tillèt kven som helst som kan lesa ho å dekryptera alle enkrypterte meldingar du kan sjå, so du bør passa på å halda ho trygg. For å hjelpa til med dette bør du skriva ei passetning inn i feltet under, som vil brukast til å enkryptere den uthenta dataen. Det vil berre vera mogeleg å henta dataen inn med den same passetninga.", "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.": "Dette tillèt deg å henta enkrypteringsnyklar som du tidlegare henta ut frå ein annan Matrix-klient inn. Du vil so kunna dekryptera alle meldingane som den andre klienten kunne dekryptera.", From 192547b9e3dcbcf4eed0bf2b614ba1d32cd31bff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Thu, 23 Aug 2018 09:02:54 +0000 Subject: [PATCH 048/162] Translated using Weblate (French) Currently translated at 100.0% (1229 of 1229 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 9894e4073a..b48cc0b80c 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -1255,5 +1255,6 @@ "Lazy loading members not supported": "La chargement différé des participants n'est pas pris en charge", "Lazy loading is not supported by your current homeserver.": "Le chargement différé n'est pas pris en charge par votre serveur d'accueil actuel.", "Sorry, your homeserver is too old to participate in this room.": "Désolé, votre serveur d'accueil est trop vieux pour participer à ce salon.", - "Please contact your homeserver administrator.": "Veuillez contacter l'administrateur de votre serveur d'accueil." + "Please contact your homeserver administrator.": "Veuillez contacter l'administrateur de votre serveur d'accueil.", + "Legal": "Légal" } From 03d8716ac6d3cb9c8a72e585dff54dbcbfbd8f83 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Thu, 23 Aug 2018 13:18:23 +0000 Subject: [PATCH 049/162] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (1229 of 1229 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index ad4a01fca0..327b06cff1 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -1255,5 +1255,6 @@ "Lazy loading members not supported": "不支援延遲載入成員", "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.": "請聯絡您的家伺服器的管理員。" + "Please contact your homeserver administrator.": "請聯絡您的家伺服器的管理員。", + "Legal": "法律" } From 67d04f0f25bf9b55926592c305a201c2e76b42c6 Mon Sep 17 00:00:00 2001 From: Slavi Pantaleev Date: Fri, 24 Aug 2018 05:58:07 +0000 Subject: [PATCH 050/162] Translated using Weblate (Bulgarian) Currently translated at 100.0% (1229 of 1229 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/bg.json b/src/i18n/strings/bg.json index ed0d372043..8d340c3e6d 100644 --- a/src/i18n/strings/bg.json +++ b/src/i18n/strings/bg.json @@ -1255,5 +1255,6 @@ "Lazy loading members not supported": "Отложеното зареждане на членове не се поддържа", "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.": "Моля, свържете се се със сървърния администратор." + "Please contact your homeserver administrator.": "Моля, свържете се се със сървърния администратор.", + "Legal": "Юридически" } From 25fb30bf7ddefbdf449c1defca923ade114dfb68 Mon Sep 17 00:00:00 2001 From: Szimszon Date: Thu, 23 Aug 2018 18:29:39 +0000 Subject: [PATCH 051/162] Translated using Weblate (Hungarian) Currently translated at 100.0% (1229 of 1229 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 f94d9fc9fb..38a38057b6 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -1255,5 +1255,6 @@ "Lazy loading members not supported": "A tagok késleltetett betöltése nem támogatott", "Lazy loading is not supported by your current homeserver.": "A késleltetett betöltés nem támogatott ennél a Matrix szervernél.", "Sorry, your homeserver is too old to participate in this room.": "Sajnáljuk, a Matrix szervered nem elég friss ahhoz, hogy részt vegyen ebben a szobában.", - "Please contact your homeserver administrator.": "Kérlek vedd fel a kapcsolatot a Matrix szerver adminisztrátorával." + "Please contact your homeserver administrator.": "Kérlek vedd fel a kapcsolatot a Matrix szerver adminisztrátorával.", + "Legal": "Jogi" } From 21cc3f2467ca5185a17d11a2274738aedaa57f67 Mon Sep 17 00:00:00 2001 From: random Date: Mon, 27 Aug 2018 08:29:29 +0000 Subject: [PATCH 052/162] Translated using Weblate (Italian) Currently translated at 100.0% (1229 of 1229 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 721c0382f7..dc46da4ede 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -1250,5 +1250,10 @@ "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.": "Il tuo messaggio non è stato inviato perchè questo homeserver ha raggiunto il suo limite di utenti attivi mensili. Contatta l'amministratore del servizio per continuare ad usarlo.", "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Il tuo messaggio non è stato inviato perchè questo homeserver ha oltrepassato un limite di risorse. Contatta l'amministratore del servizio per continuare ad usarlo.", "Please contact your service administrator to continue using this service.": "Contatta l'amministratore del servizio per continuare ad usarlo.", - "Increase performance by only loading room members on first view": "Aumenta le prestazioni caricando solo i membri della stanza alla prima occhiata" + "Increase performance by only loading room members on first view": "Aumenta le prestazioni caricando solo i membri della stanza alla prima occhiata", + "Sorry, your homeserver is too old to participate in this room.": "Spiacenti, il tuo homeserver è troppo vecchio per partecipare a questa stanza.", + "Please contact your homeserver administrator.": "Contatta l'amministratore del tuo homeserver.", + "Lazy loading members not supported": "Il caricamento pigro dei membri non è supportato", + "Lazy loading is not supported by your current homeserver.": "Il caricamento pigro non è supportato dal tuo attuale homeserver.", + "Legal": "Informazioni legali" } From 5be206d8dbf01345808ee544fcc76c14736f27f8 Mon Sep 17 00:00:00 2001 From: Nikolas Date: Fri, 24 Aug 2018 10:57:12 +0000 Subject: [PATCH 053/162] Translated using Weblate (German) Currently translated at 100.0% (1229 of 1229 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 6a85edeb31..dff76dbf94 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1255,5 +1255,6 @@ "Lazy loading members not supported": "Verzögertes Laden von Mitgliedern nicht unterstützt", "Lazy loading is not supported by your current homeserver.": "Verzögertes Laden wird von deinem aktuellen Heimserver.", "Sorry, your homeserver is too old to participate in this room.": "Sorry, dein Homeserver ist zu alt, um an diesem Raum teilzunehmen.", - "Please contact your homeserver administrator.": "Bitte setze dich mit dem Administrator deines Homeservers in Verbindung." + "Please contact your homeserver administrator.": "Bitte setze dich mit dem Administrator deines Homeservers in Verbindung.", + "Legal": "Rechte" } From 36665d3c6993e18566d41d5d008ee90eb3733eda Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Mon, 27 Aug 2018 17:40:31 +0200 Subject: [PATCH 054/162] Fix: dont show 1:1 avatar for room with only 2 members loaded --- src/components/views/avatars/RoomAvatar.js | 62 +++++----------------- 1 file changed, 14 insertions(+), 48 deletions(-) diff --git a/src/components/views/avatars/RoomAvatar.js b/src/components/views/avatars/RoomAvatar.js index 821448207f..c3336ce36a 100644 --- a/src/components/views/avatars/RoomAvatar.js +++ b/src/components/views/avatars/RoomAvatar.js @@ -19,6 +19,7 @@ import {ContentRepo} from "matrix-js-sdk"; import MatrixClientPeg from "../../../MatrixClientPeg"; import Modal from '../../../Modal'; import sdk from "../../../index"; +import DMRoomMap from '../../../utils/DMRoomMap'; module.exports = React.createClass({ displayName: 'RoomAvatar', @@ -109,56 +110,21 @@ module.exports = React.createClass({ getOneToOneAvatar: function(props) { if (!props.room) return null; - const mlist = props.room.currentState.members; - const userIds = []; - const leftUserIds = []; - // for .. in optimisation to return early if there are >2 keys - for (const uid in mlist) { - if (mlist.hasOwnProperty(uid)) { - if (["join", "invite"].includes(mlist[uid].membership)) { - userIds.push(uid); - } else { - leftUserIds.push(uid); - } - } - if (userIds.length > 2) { - return null; - } + const otherUserId = DMRoomMap.shared().getUserIdForRoomId(props.room.roomId); + if (!otherUserId) { + return null; } - - if (userIds.length == 2) { - let theOtherGuy = null; - if (mlist[userIds[0]].userId == MatrixClientPeg.get().credentials.userId) { - theOtherGuy = mlist[userIds[1]]; - } else { - theOtherGuy = mlist[userIds[0]]; - } - return theOtherGuy.getAvatarUrl( - MatrixClientPeg.get().getHomeserverUrl(), - Math.floor(props.width * window.devicePixelRatio), - Math.floor(props.height * window.devicePixelRatio), - props.resizeMethod, - false, - ); - } else if (userIds.length == 1) { - // The other 1-1 user left, leaving just the current user, so show the left user's avatar - if (leftUserIds.length === 1) { - return mlist[leftUserIds[0]].getAvatarUrl( - MatrixClientPeg.get().getHomeserverUrl(), - props.width, props.height, props.resizeMethod, - false, - ); - } - return mlist[userIds[0]].getAvatarUrl( - MatrixClientPeg.get().getHomeserverUrl(), - Math.floor(props.width * window.devicePixelRatio), - Math.floor(props.height * window.devicePixelRatio), - props.resizeMethod, - false, - ); - } else { - return null; + const otherMember = props.room.getMember(otherUserId); + if (!otherMember) { + return null; } + return otherMember.getAvatarUrl( + MatrixClientPeg.get().getHomeserverUrl(), + Math.floor(props.width * window.devicePixelRatio), + Math.floor(props.height * window.devicePixelRatio), + props.resizeMethod, + false, + ); }, onRoomAvatarClick: function() { From 6a077655e9f60f86b8776e6ca2113c043f7f5226 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Mon, 27 Aug 2018 18:48:21 +0200 Subject: [PATCH 055/162] bring back old behaviour to also show member avatars if not marked as 1:1 room --- src/components/views/avatars/RoomAvatar.js | 43 +++++++++++++++------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/src/components/views/avatars/RoomAvatar.js b/src/components/views/avatars/RoomAvatar.js index c3336ce36a..48c3d2a0d2 100644 --- a/src/components/views/avatars/RoomAvatar.js +++ b/src/components/views/avatars/RoomAvatar.js @@ -108,23 +108,38 @@ module.exports = React.createClass({ }, getOneToOneAvatar: function(props) { - if (!props.room) return null; + const room = props.room; + if (!room) { + return null; + } + let otherMember = null; + const otherUserId = DMRoomMap.shared().getUserIdForRoomId(room.roomId); + if (otherUserId) { + otherMember = room.getMember(otherUserId); + } else { + // if the room is not marked as a 1:1, but only has max 2 members + // then still try to show any avatar (pref. other member) + const totalMemberCount = room.getJoinedMemberCount() + + room.getInvitedMemberCount(); + const members = room.currentState.getMembers(); + if (totalMemberCount == 2) { + const myUserId = MatrixClientPeg.get().getUserId(); + otherMember = members.find(m => m.userId !== myUserId); + } else if(totalMemberCount == 1) { + otherMember = members[0]; + } - const otherUserId = DMRoomMap.shared().getUserIdForRoomId(props.room.roomId); - if (!otherUserId) { - return null; } - const otherMember = props.room.getMember(otherUserId); - if (!otherMember) { - return null; + if (otherMember) { + return otherMember.getAvatarUrl( + MatrixClientPeg.get().getHomeserverUrl(), + Math.floor(props.width * window.devicePixelRatio), + Math.floor(props.height * window.devicePixelRatio), + props.resizeMethod, + false, + ); } - return otherMember.getAvatarUrl( - MatrixClientPeg.get().getHomeserverUrl(), - Math.floor(props.width * window.devicePixelRatio), - Math.floor(props.height * window.devicePixelRatio), - props.resizeMethod, - false, - ); + return null; }, onRoomAvatarClick: function() { From 06160f5fae35672f3608e4a9435e707e8c964f0f Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Mon, 27 Aug 2018 18:52:33 +0200 Subject: [PATCH 056/162] fix lint --- src/components/views/avatars/RoomAvatar.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/views/avatars/RoomAvatar.js b/src/components/views/avatars/RoomAvatar.js index 48c3d2a0d2..e0105159fb 100644 --- a/src/components/views/avatars/RoomAvatar.js +++ b/src/components/views/avatars/RoomAvatar.js @@ -125,10 +125,9 @@ module.exports = React.createClass({ if (totalMemberCount == 2) { const myUserId = MatrixClientPeg.get().getUserId(); otherMember = members.find(m => m.userId !== myUserId); - } else if(totalMemberCount == 1) { + } else if (totalMemberCount == 1) { otherMember = members[0]; } - } if (otherMember) { return otherMember.getAvatarUrl( From db05121e2ee8e53f8379954ad7296cc57d303cb9 Mon Sep 17 00:00:00 2001 From: Kenneth Larsson Date: Mon, 27 Aug 2018 21:37:32 +0000 Subject: [PATCH 057/162] Translated using Weblate (Swedish) Currently translated at 100.0% (1229 of 1229 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 | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json index 9f806495cf..8eb4743ad6 100644 --- a/src/i18n/strings/sv.json +++ b/src/i18n/strings/sv.json @@ -1227,5 +1227,22 @@ "This homeserver has hit its Monthly Active User limit": "Hemservern har nått sin månatliga gräns för användaraktivitet", "Please contact your service administrator to continue using this service.": "Kontakta din serviceadministratör för att fortsätta använda servicen.", "Show empty room list headings": "Visa tomma rumsrubriker", - "System Alerts": "Systemvarningar" + "System Alerts": "Systemvarningar", + "Sorry, your homeserver is too old to participate in this room.": "Tyvärr, din hemserver är för gammal för att delta i detta rum.", + "Please contact your homeserver administrator.": "Vänligen kontakta din hemserver-administratör.", + "Increase performance by only loading room members on first view": "Öka prestanda genom att bara ladda rumsdeltagare vid första visning", + "Internal room ID: ": "Internt rums-ID: ", + "Room version number: ": "Rumsversionsnummer: ", + "Please contact your service administrator to continue using the service.": "Kontakta din serviceadministratör för att fortsätta använda tjänsten.", + "This homeserver has hit its Monthly Active User limit.": "Hemservern har nått sin månatliga gräns för användaraktivitet.", + "This homeserver has exceeded one of its resource limits.": "Hemservern har överskridit en av sina resursgränser.", + "Please contact your service administrator to get this limit increased.": "Kontakta din serviceadministratör för att få denna gräns ökad.", + "This homeserver has hit its Monthly Active User limit so some users will not be able to log in.": "Hemservern har nått sin månatliga gräns för användaraktivitet så vissa användare kommer inte kunna logga in.", + "This homeserver has exceeded one of its resource limits so some users will not be able to log in.": "Hemservern har överskridit en av sina resursgränser så vissa användare kommer inte kunna logga in.", + "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.": "Ditt meddelande skickades inte för hemservern har nått sin månatliga gräns för användaraktivitet. Kontakta din serviceadministratör för att fortsätta använda servicen.", + "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Ditt meddelande skickades inte för hemservern har överskridit en av sina resursgränser. Kontakta din serviceadministratör för att fortsätta använda servicen.", + "Lazy loading members not supported": "Behovsladdning av medlemmar stöds inte", + "Lazy loading is not supported by your current homeserver.": "Behovsladdning stöds inte av din nuvarande hemserver.", + "Legal": "Juridiskt", + "Please contact your service administrator to continue using this service.": "Kontakta din serviceadministratör för att fortsätta använda servicen." } From 7d90e3ae21ddc6a33c7b5d2f79b01b21463aa3fb Mon Sep 17 00:00:00 2001 From: Xose M Date: Tue, 28 Aug 2018 05:43:34 +0000 Subject: [PATCH 058/162] Translated using Weblate (Galician) Currently translated at 100.0% (1229 of 1229 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/gl/ --- src/i18n/strings/gl.json | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/gl.json b/src/i18n/strings/gl.json index 41ab6a54d0..932ca95ca9 100644 --- a/src/i18n/strings/gl.json +++ b/src/i18n/strings/gl.json @@ -1219,5 +1219,26 @@ "The user name field must not be blank.": "O campo de nome de usuario non pode quedar en branco.", "The phone number field must not be blank.": "O número de teléfono non pode quedar en branco.", "The password field must not be blank.": "O campo do contrasinal non pode quedar en branco.", - "You can't send any messages until you review and agree to our terms and conditions.": "Non vai poder enviar mensaxes ata que revise e acepte os nosos termos e condicións." + "You can't send any messages until you review and agree to our terms and conditions.": "Non vai poder enviar mensaxes ata que revise e acepte os nosos termos e condicións.", + "A call is currently being placed!": "Xa se estableceu a chamada!", + "Sorry, your homeserver is too old to participate in this room.": "Lametámolo, o seu servidor de inicio é vello de máis para participar en esta sala.", + "Please contact your homeserver administrator.": "Por favor, contacte coa administración do seu servidor.", + "Increase performance by only loading room members on first view": "Aumente o rendemento cargando só membros da sala na vista inicial", + "System Alerts": "Alertas do Sistema", + "Internal room ID: ": "ID interno da sala: ", + "Room version number: ": "Número de versión da sala: ", + "Please contact your service administrator to continue using the service.": "Por favor contacte coa administración do servizo para seguir utilizando o servizo.", + "This homeserver has hit its Monthly Active User limit.": "Este servidor acadou o límite mensual de usuarias activas.", + "This homeserver has exceeded one of its resource limits.": "Este servidor excedeu un dos seus límites de recursos.", + "Please contact your service administrator to get this limit increased.": "Por favor contacte coa administración do servizo 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 acadou o Límite Mensual de usuarias activas polo que algunhas usuarias non poderán conectar.", + "This homeserver has exceeded one of its resource limits so some users will not be able to log in.": "Este servidor excedeu un dos límites de recursos polo que algunhas usuarias no poderán conectar.", + "Failed to remove widget": "Fallo ao eliminar o widget", + "An error ocurred whilst trying to remove the widget from the room": "Algo fallou mentras se intentaba eliminar o widget da sala", + "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.": "A súa mensaxe non foi enviada porque este servidor acadou o Límite Mensual de Usuaria Activa. Por favor contacte coa administración do servizo para continuar utilizando o servizo.", + "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "A súa mensaxe non foi enviada porque o servidor superou o límite de recursos. Por favor contacte coa administración do servizo para continuar utilizando o servizo.", + "Lazy loading members not supported": "A cargar preguiceira de membros non está soportada", + "Lazy loading is not supported by your current homeserver.": "A carga preguiceira non está soportada polo servidor actual.", + "Legal": "Legal", + "Please contact your service administrator to continue using this service.": "Por favor contacte coa administración do servizo para continuar utilizando o servizo." } From e44ca8df3e9898db7d6c8179415035fc1b985ef6 Mon Sep 17 00:00:00 2001 From: Krombel Date: Mon, 27 Aug 2018 11:59:12 +0000 Subject: [PATCH 059/162] Translated using Weblate (German) Currently translated at 100.0% (1229 of 1229 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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index dff76dbf94..41dbf5506e 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1256,5 +1256,5 @@ "Lazy loading is not supported by your current homeserver.": "Verzögertes Laden wird von deinem aktuellen Heimserver.", "Sorry, your homeserver is too old to participate in this room.": "Sorry, dein Homeserver ist zu alt, um an diesem Raum teilzunehmen.", "Please contact your homeserver administrator.": "Bitte setze dich mit dem Administrator deines Homeservers in Verbindung.", - "Legal": "Rechte" + "Legal": "Rechtliches" } From 2064cfca77f02a41cc949c075c17884690c02e87 Mon Sep 17 00:00:00 2001 From: random Date: Mon, 27 Aug 2018 08:31:12 +0000 Subject: [PATCH 060/162] Translated using Weblate (Italian) Currently translated at 100.0% (1229 of 1229 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 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index dc46da4ede..78ee961578 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -1253,7 +1253,7 @@ "Increase performance by only loading room members on first view": "Aumenta le prestazioni caricando solo i membri della stanza alla prima occhiata", "Sorry, your homeserver is too old to participate in this room.": "Spiacenti, il tuo homeserver è troppo vecchio per partecipare a questa stanza.", "Please contact your homeserver administrator.": "Contatta l'amministratore del tuo homeserver.", - "Lazy loading members not supported": "Il caricamento pigro dei membri non è supportato", - "Lazy loading is not supported by your current homeserver.": "Il caricamento pigro non è supportato dal tuo attuale homeserver.", + "Lazy loading members not supported": "Il caricamento lento dei membri non è supportato", + "Lazy loading is not supported by your current homeserver.": "Il caricamento lento non è supportato dal tuo attuale homeserver.", "Legal": "Informazioni legali" } From b97c2035871d1008101c53e339675a0375161d57 Mon Sep 17 00:00:00 2001 From: csybr Date: Sun, 26 Aug 2018 14:03:48 +0000 Subject: [PATCH 061/162] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 9.3% (115 of 1229 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nb_NO/ --- src/i18n/strings/nb_NO.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/nb_NO.json b/src/i18n/strings/nb_NO.json index 9a2b859854..5641880501 100644 --- a/src/i18n/strings/nb_NO.json +++ b/src/i18n/strings/nb_NO.json @@ -112,5 +112,6 @@ "Quote": "Sitat", "Collapse panel": "Skjul panel", "Saturday": "Lørdag", - "There are advanced notifications which are not shown here": "Det er avanserte varsler som ikke vises her" + "There are advanced notifications which are not shown here": "Det er avanserte varsler som ikke vises her", + "Dismiss": "Avvis" } From 38bab898f228897bbf750a7f5e209e7f68ebf36a Mon Sep 17 00:00:00 2001 From: csybr Date: Fri, 24 Aug 2018 14:22:02 +0000 Subject: [PATCH 062/162] Translated using Weblate (Norwegian Nynorsk) Currently translated at 99.0% (1217 of 1229 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nn/ --- src/i18n/strings/nn.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/i18n/strings/nn.json b/src/i18n/strings/nn.json index 805143c2a3..db09273e6d 100644 --- a/src/i18n/strings/nn.json +++ b/src/i18n/strings/nn.json @@ -237,7 +237,7 @@ "Messages containing my user name": "Meldingar som inneheld brukarnamnet mitt", "Messages in one-to-one chats": "Meldingar i ein-til-ein-samtaler", "Messages in group chats": "Meldingar i gruppesamtaler", - "When I'm invited to a room": "Når eg er bode inn til eit rom", + "When I'm invited to a room": "Når eg er boden inn til eit rom", "Call invitation": "Samtaleinnbydingar", "Messages sent by bot": "Meldingar sendt frå ein bot", "Active call (%(roomName)s)": "Pågåande samtale (%(roomName)s)", @@ -299,7 +299,7 @@ "Advanced notification settings": "Omfattande varselinnstillingar", "There are advanced notifications which are not shown here": "Det er omfattande varsel som ikkje er vist her", "Enable desktop notifications": "Skru skrivebordsvarsel på", - "Show message in desktop notification": "Vis meldingen i eit skriverbordsvarsel", + "Show message in desktop notification": "Vis meldinga i eit skriverbordsvarsel", "Enable audible notifications in web client": "Skru høyrlege varsel i nettklienten på", "Off": "Av", "On": "På", @@ -1183,7 +1183,7 @@ "Failed to set Direct Message status of room": "Fekk ikkje til å setja Direktemelding-tilstanden til rommet", "Did you know: you can use communities to filter your Riot.im experience!": "Visste du at: du kan bruka samfunn for å filtrera Riot.im-opplevinga di!", "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.": "For å setja opp eit filter, drag ein samfunnsavatar bort til filterpanelet til venstre på skjermen. Du kan klikka på ein avatar i filterpanelet når som helst for å sjå berre romma og folka tilknytta det samfunnet.", - "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Lag eit samfunn for å føra saman brukarar og rom! Bygg din eiga heimeside for å kreva din del av Matrix-verda.", + "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Lag eit samfunn for å føra saman brukarar og rom! Bygg di eiga heimeside for å kreva din del av Matrix-verda.", "Hide panel": "Gøym panel", "Unable to look up room ID from server": "Klarte ikkje å henta rom-ID frå tenaren", "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.": "Meldinga di vart ikkje send fordi heimtenaren har truffe si Månadlege Grense for Aktive Brukarar. Ver venleg og tak kontakt med tenesteadministratoren din for å halda frama med å bruka tenesten.", From e9e5abfcc5e8e0337ddab67e8d0371df49c3f281 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Wed, 29 Aug 2018 10:30:25 +0200 Subject: [PATCH 063/162] show a spinner in the memberlist while loading the members --- src/components/views/rooms/MemberList.js | 29 ++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js index 6f6188e0b5..ff410ce556 100644 --- a/src/components/views/rooms/MemberList.js +++ b/src/components/views/rooms/MemberList.js @@ -35,7 +35,16 @@ module.exports = React.createClass({ this.memberDict = this.getMemberDict(); const members = this.roomMembers(); - return { + return {loading: true}; + }, + + componentDidMount: async function() { + await this._waitForMembersToLoad(); + this.memberDict = this.getMemberDict(); + const members = this.roomMembers(); + + this.setState({ + loading: false, members: members, filteredJoinedMembers: this._filterMembers(members, 'join'), filteredInvitedMembers: this._filterMembers(members, 'invite'), @@ -45,10 +54,8 @@ module.exports = React.createClass({ truncateAtJoined: INITIAL_LOAD_NUM_MEMBERS, truncateAtInvited: INITIAL_LOAD_NUM_INVITED, searchQuery: "", - }; - }, + }); - componentWillMount: function() { const cli = MatrixClientPeg.get(); cli.on("RoomState.members", this.onRoomStateMember); cli.on("RoomMember.name", this.onRoomMemberName); @@ -84,6 +91,15 @@ module.exports = React.createClass({ this._updateList.cancelPendingCall(); }, + _waitForMembersToLoad: async function() { + if (!this.props.roomId) return {}; + const cli = MatrixClientPeg.get(); + const room = cli.getRoom(this.props.roomId); + if (room) { + await room.loadMembersIfNeeded(); + } + }, + /* onRoomTimeline: function(ev, room, toStartOfTimeline, removed, data) { // ignore anything but real-time updates at the end of the room: @@ -393,6 +409,11 @@ module.exports = React.createClass({ }, render: function() { + if (this.state.loading) { + const Spinner = sdk.getComponent("elements.Spinner"); + return
; + } + const TruncatedList = sdk.getComponent("elements.TruncatedList"); const GeminiScrollbarWrapper = sdk.getComponent("elements.GeminiScrollbarWrapper"); From f9c40390e95060c1d457bdc7e03c9379bf70d5b7 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Wed, 29 Aug 2018 11:09:55 +0200 Subject: [PATCH 064/162] set state after setting _showPresence to avoid all members to appear offline on matrix.org --- src/components/views/rooms/MemberList.js | 27 ++++++++++++------------ 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js index ff410ce556..b418eef121 100644 --- a/src/components/views/rooms/MemberList.js +++ b/src/components/views/rooms/MemberList.js @@ -43,19 +43,6 @@ module.exports = React.createClass({ this.memberDict = this.getMemberDict(); const members = this.roomMembers(); - this.setState({ - loading: false, - members: members, - filteredJoinedMembers: this._filterMembers(members, 'join'), - filteredInvitedMembers: this._filterMembers(members, 'invite'), - - // ideally we'd size this to the page height, but - // in practice I find that a little constraining - truncateAtJoined: INITIAL_LOAD_NUM_MEMBERS, - truncateAtInvited: INITIAL_LOAD_NUM_INVITED, - searchQuery: "", - }); - const cli = MatrixClientPeg.get(); cli.on("RoomState.members", this.onRoomStateMember); cli.on("RoomMember.name", this.onRoomMemberName); @@ -74,6 +61,20 @@ module.exports = React.createClass({ if (enablePresenceByHsUrl && enablePresenceByHsUrl[hsUrl] !== undefined) { this._showPresence = enablePresenceByHsUrl[hsUrl]; } + // set the state after determining _showPresence to make sure it's + // taken into account while rerendering + this.setState({ + loading: false, + members: members, + filteredJoinedMembers: this._filterMembers(members, 'join'), + filteredInvitedMembers: this._filterMembers(members, 'invite'), + + // ideally we'd size this to the page height, but + // in practice I find that a little constraining + truncateAtJoined: INITIAL_LOAD_NUM_MEMBERS, + truncateAtInvited: INITIAL_LOAD_NUM_INVITED, + searchQuery: "", + }); }, componentWillUnmount: function() { From 11d9e96d62176bcd5c5639efe029286431ae0897 Mon Sep 17 00:00:00 2001 From: csybr Date: Wed, 29 Aug 2018 11:52:57 +0000 Subject: [PATCH 065/162] Translated using Weblate (Norwegian Nynorsk) Currently translated at 99.0% (1217 of 1229 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nn/ --- src/i18n/strings/nn.json | 78 ++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/src/i18n/strings/nn.json b/src/i18n/strings/nn.json index db09273e6d..58b156a08a 100644 --- a/src/i18n/strings/nn.json +++ b/src/i18n/strings/nn.json @@ -212,7 +212,7 @@ "Show timestamps in 12 hour format (e.g. 2:30pm)": "Vis tidspunkt i 12-timarsform (t.d. 2:30pm)", "Always show message timestamps": "Vis alltid meldingstidspunkt", "Autoplay GIFs and videos": "Spel av GIFar og videoar med ein gong", - "Always show encryption icons": "Vis alltid enkrypteringsikon", + "Always show encryption icons": "Vis alltid krypteringsikon", "Hide avatars in user and room mentions": "Gøym avatarar i brukar- og romnemningar", "Disable big emoji in chat": "Skru store emojiar i samtaler av", "Don't send typing notifications": "Ikkje send skrivevarsel", @@ -223,8 +223,8 @@ "Disable Community Filter Panel": "Skru Samfunnsfilterpanel av", "Disable Peer-to-Peer for 1:1 calls": "Skru Peer-til-Peer for 1:1-samtaler av", "Send analytics data": "Send statistikkdata", - "Never send encrypted messages to unverified devices from this device": "Send aldri enkrypterte meldingar til ikkje-godkjende einingar frå denne eininga", - "Never send encrypted messages to unverified devices in this room from this device": "Send aldri enkrypterte meldingar til ikkje-godkjende einingar i dette rommet frå denne eininga", + "Never send encrypted messages to unverified devices from this device": "Send aldri krypterte meldingar til ikkje-godkjende einingar frå denne eininga", + "Never send encrypted messages to unverified devices in this room from this device": "Send aldri krypterte meldingar til ikkje-godkjende einingar i dette rommet frå denne eininga", "Enable URL previews for this room (only affects you)": "Skru URL-førehandsvisingar på for dette rommet (påverkar deg åleine)", "Enable URL previews by default for participants in this room": "Skru URL-førehandsvisingar på som utgangspunkt for deltakarar i dette rommet", "Room Colour": "Romfarge", @@ -319,13 +319,13 @@ "Your key share request has been sent - please check your other devices for key share requests.": "Nykeldelingsforespurnaden din vart send - ver venleg og sjekk dei andre einingane dine for nykeldelingsforespurnadar.", "If your other devices do not have the key for this message you will not be able to decrypt them.": "Viss dei andre einingane dine ikkje har nykelen til denne meldinga kan du ikkje dekryptera ho.", "Key request sent.": "Nykelforespurnad er send.", - "Re-request encryption keys from your other devices.": "Spør på nytt om enkrypteringsnyklar frå dei andre einingane dine.", + "Re-request encryption keys from your other devices.": "Spør på nytt om krypteringsnyklar frå dei andre einingane dine.", "Undecryptable": "Kan ikkje dekrypterast", - "Encrypting": "Enkryptering er i gang", - "Encrypted, not sent": "Enkryptert, men ikkje send", - "Encrypted by a verified device": "Enkryptert av ei godkjent eining", - "Encrypted by an unverified device": "Enkryptert av ei ikkje-godkjent eining", - "Unencrypted message": "Ikkje-enkryptert melding", + "Encrypting": "Krypteringa er i gang", + "Encrypted, not sent": "Kryptert, men ikkje sendt", + "Encrypted by a verified device": "Kryptert av ei godkjent eining", + "Encrypted by an unverified device": "Kryptert av ei ikkje-godkjent eining", + "Unencrypted message": "Ikkje-kryptert melding", "Please select the destination room for this message": "Ver venleg og vel målrommet for denne meldinga", "Blacklisted": "Svartelista", "Verified": "Godkjend", @@ -349,7 +349,7 @@ "Failed to change power level": "Fekk ikkje til å endra makthøgda", "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Du kjem ikkje til å kunna gjera om på denne endringa sidan du set brukaren si høgd opp til di eiga.", "Are you sure?": "Er du sikker?", - "No devices with registered encryption keys": "Inga einingar med oppskrivne enkrypteringsnykler", + "No devices with registered encryption keys": "Ingen einingar med oppskrivne krypteringsnykler", "Devices": "Einingar", "Unignore": "Slutt å oversjå", "Ignore": "Oversjå", @@ -379,17 +379,17 @@ "At this time it is not possible to reply with a file so this will be sent without being a reply.": "Det er førebels ikkje mogeleg å svara med ei fil, so dette vil verta send utan å vera eit svar.", "Upload Files": "Last opp Filer", "Are you sure you want to upload the following files?": "Er du sikker på at du vil lasta opp dei fylgjande filene?", - "Encrypted room": "Enkryptert rom", + "Encrypted room": "Kryptert rom", "Unencrypted room": "Ikkje-enkrypert rom", "Hangup": "Legg på", "Voice call": "Røystesamtale", "Video call": "Videosamtale", "Upload file": "Last ei fil opp", "Show Text Formatting Toolbar": "Vis Tekstformverktøylinje", - "Send an encrypted reply…": "Send eit enkryptert svar…", - "Send a reply (unencrypted)…": "Send eit svar (ikkje-enkryptert)…", - "Send an encrypted message…": "Send ei enkryptert melding…", - "Send a message (unencrypted)…": "Send ei melding (ikkje-enkryptert)…", + "Send an encrypted reply…": "Send eit kryptert svar…", + "Send a reply (unencrypted)…": "Send eit svar (ikkje-kryptert)…", + "Send an encrypted message…": "Send ei kryptert melding…", + "Send a message (unencrypted)…": "Send ei melding (ikkje-kryptert)…", "You do not have permission to post to this room": "Du har ikkje tillating til å sende meldingar i dette rommet", "Turn Markdown on": "Skru Mardown på", "Turn Markdown off": "Skru Markdown av", @@ -482,15 +482,15 @@ "The visibility of existing history will be unchanged": "Synlegheita på den noverande historia vert ikkje endra", "unknown error code": "ukjend errorkode", "Failed to forget room %(errCode)s": "Fekk ikkje til å gløyma rommet %(errCode)s", - "End-to-end encryption is in beta and may not be reliable": "Ende-til-ende-enkryptering vert betatesta og er kanskje ikkje påliteleg", + "End-to-end encryption is in beta and may not be reliable": "Ende-til-ende-kryptering vert betatesta og er kanskje ikkje påliteleg", "You should not yet trust it to secure data": "Du bør førebels ikkje stole på at ho kan sikra data", "Devices will not yet be able to decrypt history from before they joined the room": "Einingar kan førebels ikkje dekryptera historia frå før dei kom inn i rommet", - "Once encryption is enabled for a room it cannot be turned off again (for now)": "Når enkryptering er skrudd på i eit rom kan ho (førebels) ikkje skruast av att", - "Encrypted messages will not be visible on clients that do not yet implement encryption": "Enkrypterte meldingar visast ikkje hjå klientar som førebels ikkje implementerar enkryptering", - "Enable encryption": "Skru enkryptering på", + "Once encryption is enabled for a room it cannot be turned off again (for now)": "Når kryptering er skrudd på i eit rom kan ho (førebels) ikkje skruast av att", + "Encrypted messages will not be visible on clients that do not yet implement encryption": "Krypterte meldingar visast ikkje hjå klientar som førebels ikkje implementerer kryptering", + "Enable encryption": "Skru kryptering på", "(warning: cannot be disabled again!)": "(åtvaring: kan ikkje skruast av att!)", - "Encryption is enabled in this room": "Enkryptering er skrudd på i dette rommet", - "Encryption is not enabled in this room": "Enkryptering er ikkje skrudd på i dette rommet", + "Encryption is enabled in this room": "Kryptering er skrudd på i dette rommet", + "Encryption is not enabled in this room": "Kryptering er ikkje skrudd på i dette rommet", "The default role for new room members is": "Rolla nye medlemer har i utgangspunktet er", "To send messages, you must be a": "For å senda meldingar må du vera ein", "To invite users into the room, you must be a": "For å byda brukarar inn til rommet må du vera ein", @@ -500,7 +500,7 @@ "To remove other users' messages, you must be a": "For å fjerna andre brukarar sine meldingar må du vera ein", "To notify everyone in the room, you must be a": "For å varsla alle i rommet må du vera ein", "No users have specific privileges in this room": "Ingen brukarar har særeigne rettar i dette rommet", - "%(user)s is a %(userRole)s": "%(user)s er ein %(userRole)s", + "%(user)s is a %(userRole)s": "%(user)s er %(userRole)s", "Privileged Users": "Brukarar med Særrett", "Muted Users": "Stilna Brukarar", "Banned users": "Utestengde Brukarar", @@ -557,7 +557,7 @@ "You have disabled URL previews by default.": "Du har skrudd URL-førehandsvisingar av i utgangspunktet.", "URL previews are enabled by default for participants in this room.": "URL-førehandsvisingar er skrudd på i utgangspunktet for dette rommet.", "URL previews are disabled by default for participants in this room.": "URL-førehandsvisingar er skrudd av i utgangspunktet for dette rommet.", - "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.": "I enkrypterte rom, slik som denne, er URL-førehandsvisingar skrudd av i utgangspunktet for å forsikra at heimtenaren din (der førehandsvisinger lagast) ikkje kan samla informasjon om lenkjer som du ser i dette rommet.", + "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.": "I krypterte rom, slik som denne, er URL-førehandsvisingar skrudd av i utgangspunktet for å forsikra at heimtenaren din (der førehandsvisinger lagast) ikkje kan samla informasjon om lenkjer som du ser i dette rommet.", "URL Previews": "URL-førehandsvisingar", "Sunday": "søndag", "Monday": "måndag", @@ -654,7 +654,7 @@ "Downloading update...": "Lastar oppdatering ned...", "Warning": "Åtvaring", "Unknown Address": "Ukjend Adresse", - "NOTE: Apps are not end-to-end encrypted": "MERK DEG: Æppar er ikkje ende-til-ende-enkrypterte", + "NOTE: Apps are not end-to-end encrypted": "MERK DEG: Æppar er ikkje ende-til-ende-krypterte", "Warning: This widget might use cookies.": "Åtvaring: Denne widgeten brukar kanskje datakaker.", "Do you want to load widget from URL:": "Vil du lasta widgeten frå URL:", "Allow": "Tillat", @@ -801,22 +801,22 @@ "Toolbox": "Verktøykasse", "Developer Tools": "Utviklarverktøy", "An error has occurred.": "Noko gjekk gale.", - "You added a new device '%(displayName)s', which is requesting encryption keys.": "Du la til den nye eininga '%(displayName)s', som spør om enkrypteringsnyklar.", - "Your unverified device '%(displayName)s' is requesting encryption keys.": "Den ikkje-godkjende eininga di '%(displayName)s' spør om enkrypteringsnyklar.", + "You added a new device '%(displayName)s', which is requesting encryption keys.": "Du la til den nye eininga '%(displayName)s', som spør om krypteringsnyklar.", + "Your unverified device '%(displayName)s' is requesting encryption keys.": "Den ikkje-godkjende eininga di '%(displayName)s' spør om krypteringsnyklar.", "Start verification": "Byrj godkjenning", "Share without verifying": "Del utan å godkjenna", "Ignore request": "Oversjå førespurnad", "Loading device info...": "Lastar einingsinfo inn...", - "Encryption key request": "Enkrypteringsnykel-førespurnad", + "Encryption key request": "Krypteringsnykel-førespurnad", "Sign out": "Logg ut", - "Log out and remove encryption keys?": "Logg ut og fjern enkrypteringsnyklar?", + "Log out and remove encryption keys?": "Logg ut og fjern krypteringsnyklar?", "Clear Storage and Sign Out": "Tøm Lager og Logg Ut", "Send Logs": "Send Loggar", "Refresh": "Hent fram på nytt", "Unable to restore session": "Kunne ikkje henta øykta fram att", "We encountered an error trying to restore your previous session.": "Noko gjekk gale med framhentinga av den førre øykta di.", "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.": "Viss du har bruka ei nyare utgåve av Riot før, kan det henda at øykta di ikkje passar inn i denne utgåva. Lukk dette vindauget og gå attende til den nyare utgåva.", - "Clearing your browser's storage may fix the problem, but will sign you out and cause any encrypted chat history to become unreadable.": "Det kan henda at å tømma nettlesarlageret rettar opp i det, men det loggar deg ut og kan gjera den enkrypterte pratehistoria uleseleg.", + "Clearing your browser's storage may fix the problem, but will sign you out and cause any encrypted chat history to become unreadable.": "Det kan henda at å tømma nettlesarlageret rettar opp i det, men det loggar deg ut og kan gjera den krypterte pratehistoria uleseleg.", "Invalid Email Address": "Ugangbar Emailadresse", "This doesn't appear to be a valid email address": "Det ser ikkje ut til at emailadressa er gangbar", "Verification Pending": "Ventar på Godkjenning", @@ -891,7 +891,7 @@ "Topic": "Emne", "Make this room private": "Gjer dette rommet privat", "Share message history with new users": "Del meldingshistoria med nye brukarar", - "Encrypt room": "Enkrypter rommet", + "Encrypt room": "Krypter rommet", "You must register to use this functionality": "Du må melda deg inn for å bruka denne funksjonen", "You must join the room to see its files": "Du må fare inn i rommet for å sjå filene dets", "There are no visible files in this room": "Det er ingen synlege filer i dette rommet", @@ -949,7 +949,7 @@ "To continue using the %(homeserverDomain)s homeserver you must review and agree to our terms and conditions.": "For å framleis bruka %(homeserverDomain)s sin heimtenar må du sjå over og seia deg einig i våre Vilkår og Føresetnader.", "Review terms and conditions": "Sjå over Vilkår og Føresetnader", "Old cryptography data detected": "Gamal kryptografidata vart oppdagen", - "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 frå ei eldre utgåve av Riot vart oppdagen. I den eldre utgåva hadde dette gjort at ende-til-ende-kryptografi ikkje verkar som det skal. Ende-til-ende-enkrypterte meldingar som vert utveksla nyleg med den gamle utgåva er det kanskje ikkje mogeleg å dekryptera i denne utgåva. Dette fører kanskje òg til at meldingar som vart utveksla med denne utgåva ikkje verkar. Viss du opplever vansker, logg ut og inn att. For å spara på meldingshistoria, hent nyklane dine ut og inn at.", + "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 frå ei eldre utgåve av Riot vart oppdagen. I den eldre utgåva hadde dette gjort at ende-til-ende-kryptografi ikkje verkar som det skal. Ende-til-ende-krypterte meldingar som vert utveksla nyleg med den gamle utgåva er det kanskje ikkje mogeleg å dekryptera i denne utgåva. Dette fører kanskje òg til at meldingar som vart utveksla med denne utgåva ikkje verkar. Viss du opplever vansker, logg ut og inn att. For å spara på meldingshistoria, hent nyklane dine ut og inn at.", "Logout": "Loggar ut", "Your Communities": "Dine Samfunn", "Error whilst fetching joined communities": "Noko gjekk gale med innhentinga av samfunna du er i", @@ -1123,10 +1123,10 @@ "Curve25519 identity key": "Curve25519-identitetsnykel", "none": "ingen", "Algorithm": "Algoritme", - "unencrypted": "ikkje-enkryptert", + "unencrypted": "ikkje-kryptert", "Decryption error": "Noko gjekk gale med dekrypteringa", "Session ID": "Økt-ID", - "End-to-end encryption information": "Ende-til-ende-enkrypteringsinfo", + "End-to-end encryption information": "Ende-til-ende-krypteringsinfo", "Event information": "Hendingsinfo", "Sender device information": "Info om avsendareininga", "Passphrases must match": "Passetningane må vera like", @@ -1137,7 +1137,7 @@ "Call Timeout": "Tidsavbrot i Samtala", "Enable automatic language detection for syntax highlighting": "Skru automatisk måloppdaging på for syntax-understreking", "Show empty room list headings": "Vis overskrift på tomme romlister", - "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.": "Å endra passordet ditt attendestiller førebelst alle ende-til-ende-enkrypteringsnyklar på alle einingar, slik at enkryptert pratehistorie vert uleseleg, med mindre du fyrst hentar romnyklane dine ut og hentar dei inn att etterpå. I framtida vil denne prosessen vera betre.", + "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.": "Å endra passordet ditt attendestiller førebelst alle ende-til-ende-krypteringsnyklar på alle einingar, slik at kryptert pratehistorie vert uleseleg, med mindre du fyrst hentar romnyklane dine ut og hentar dei inn att etterpå. I framtida vil denne prosessen vera betre.", "Export E2E room keys": "Hent E2E-romnyklar ut", "You might have configured them in a client other than Riot. You cannot tune them in Riot but they still apply": "Det kan henda at du stilte dei inn på ein annan klient enn Riot. Du kan ikkje stilla på dei i Riot men dei gjeld framleis", "Key share requests are sent to your other devices automatically. If you rejected or dismissed the key share request on your other devices, click here to request the keys for this session again.": "Nykeldelingsførespurnader vert sende til dei andre einingane dine av seg sjølv. Viss du sa nei til eller avviste førespurnadene på dei andre einingane, klikk her for å beda om nyklane for denne øykta på nytt.", @@ -1197,7 +1197,7 @@ "Clear Cache and Reload": "Tøm Buffar og Last inn att", "Profile": "Brukar", "Access Token:": "Tilgangs-Teikn:", - "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.": "Å attendestilla passordet vil førebels attendestilla alle ende-til-ende-enkrypteringsnyklar på alle einingar, slik at enkrypterte samtaler vert uleselege, med mindre du fyrst hentar romnyklane ut og hentar dei inn att etterpå. Dette vil forbetrast i framtida.", + "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.": "Å attendestilla passordet vil førebels attendestilla alle ende-til-ende-krypteringsnyklar på alle einingar, slik at krypterte samtaler vert uleselege, med mindre du fyrst hentar romnyklane ut og hentar dei inn att etterpå. Dette vil forbetrast i framtida.", "This homeserver has hit its Monthly Active User limit": "Heimtenaren har truffe den Månadlege Grensa si for Aktive Brukarar", "This homeserver doesn't offer any login flows which are supported by this client.": "Heimtenaren tilbyd ingen nye innloggingsstraumar som støttast av denne klienten.", "Claimed Ed25519 fingerprint key": "Gjorde krav på Ed25519-fingeravtrykksnykel", @@ -1211,10 +1211,10 @@ "Failed to remove tag %(tagName)s from room": "Fekk ikkje til å fjerna merket %(tagName)s frå rommet", "Failed to add tag %(tagName)s to room": "Fekk ikkje til å leggja merket %(tagName)s til i rommet", "Hide read receipts": "Gøym lest-lappar", - "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.": "Av sikkerheitsmessige grunnar vil det å logga ut sletta alle ende-til-ende-enkrypteringsnyklar frå nettlesaren. Viss du vil kunna dekryptera samtalehistoria di på framtidige Riot-øykter, ver venleg og hent ut romnyklande dine og tak vare på dei.", - "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.": "Dette tillèt deg å henta nyklane for meldingar du har sendt i enkrypterte rom ut til ei lokal fil. Då kan du henta fila inn til ein annan Matrix-klient i framtida, slik at den klienten òg kan dekryptera meldingane.", - "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.": "Å henta filen ut tillèt kven som helst som kan lesa ho å dekryptera alle enkrypterte meldingar du kan sjå, so du bør passa på å halda ho trygg. For å hjelpa til med dette bør du skriva ei passetning inn i feltet under, som vil brukast til å enkryptere den uthenta dataen. Det vil berre vera mogeleg å henta dataen inn med den same passetninga.", - "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.": "Dette tillèt deg å henta enkrypteringsnyklar som du tidlegare henta ut frå ein annan Matrix-klient inn. Du vil so kunna dekryptera alle meldingane som den andre klienten kunne dekryptera.", + "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.": "Av sikkerheitsmessige grunnar vil det å logga ut sletta alle ende-til-ende-krypteringsnyklar frå nettlesaren. Viss du vil kunna dekryptera samtalehistoria di på framtidige Riot-øykter, ver venleg og hent ut romnyklande dine og tak vare på dei.", + "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.": "Dette tillèt deg å henta nyklane for meldingar du har sendt i krypterte rom ut til ei lokal fil. Då kan du henta fila inn til ein annan Matrix-klient i framtida, slik at den klienten òg kan dekryptera meldingane.", + "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.": "Å henta filen ut tillèt kven som helst som kan lesa ho å dekryptera alle krypterte meldingar du kan sjå, so du bør passa på å halda ho trygg. For å hjelpa til med dette bør du skriva ei passetning inn i feltet under, som vil brukast til å kryptere den uthenta dataen. Det vil berre vera mogeleg å henta dataen inn med den same passetninga.", + "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.": "Dette tillèt deg å henta krypteringsnyklar som du tidlegare henta ut frå ein annan Matrix-klient inn. Du vil so kunna dekryptera alle meldingane som den andre klienten kunne dekryptera.", "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "Uthentingsfila vil verta verna med ei passetning. Du bør skriva passetninga inn her for å dekryptera fila.", "Internal room ID: ": "Indre rom-ID: ", "Room version number: ": "Romutgåvenummer: ", From 63938a3f9f4799fe656ca250d2342ebe83f718e5 Mon Sep 17 00:00:00 2001 From: David Baker Date: Wed, 29 Aug 2018 18:09:37 +0100 Subject: [PATCH 066/162] Slash command to discard megolm session For faster crypto debugging Requires https://github.com/matrix-org/matrix-js-sdk/pull/704 --- src/SlashCommands.js | 15 +++++++++++++++ src/i18n/strings/en_EN.json | 2 ++ 2 files changed, 17 insertions(+) diff --git a/src/SlashCommands.js b/src/SlashCommands.js index 9c9573ae21..3a8e77293b 100644 --- a/src/SlashCommands.js +++ b/src/SlashCommands.js @@ -1,5 +1,6 @@ /* 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. @@ -470,6 +471,19 @@ export const CommandMap = { description: _td('Displays action'), hideCompletionAfterSpace: true, }), + + discardsession: new Command({ + name: 'discardsession', + description: _td('Forces the current outbound group session in an encrypted room to be discarded'), + runFn: function(roomId) { + try { + MatrixClientPeg.get().forceDiscardSession(roomId); + } catch (e) { + return reject(e.message); + } + return success(); + }, + }), }; /* eslint-enable babel/no-invalid-this */ @@ -477,6 +491,7 @@ export const CommandMap = { // helpful aliases const aliases = { j: "join", + newballsplease: "discardsession", }; diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 2371ba0ca6..643bf06089 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -145,6 +145,8 @@ "Verified key": "Verified key", "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.", "Displays action": "Displays action", + "Forces the current outbound group session in an encrypted room to be discarded": "Forces the current outbound group session in an encrypted room to be discarded", + "Error Discarding Session": "Error Discarding Session", "Unrecognised command:": "Unrecognised command:", "Reason": "Reason", "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s accepted the invitation for %(displayName)s.", From 6cbe4144d4c648f34e1ff01ce0e678d91536eb13 Mon Sep 17 00:00:00 2001 From: David Baker Date: Wed, 29 Aug 2018 18:28:16 +0100 Subject: [PATCH 067/162] unused import --- src/components/views/messages/RoomCreate.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/views/messages/RoomCreate.js b/src/components/views/messages/RoomCreate.js index 8159741ae1..0bb832f8ea 100644 --- a/src/components/views/messages/RoomCreate.js +++ b/src/components/views/messages/RoomCreate.js @@ -18,7 +18,6 @@ import React from 'react'; import PropTypes from 'prop-types'; import dis from '../../../dispatcher'; -import sdk from '../../../index'; import { makeEventPermalink } from '../../../matrix-to'; import { _t } from '../../../languageHandler'; From 0a8f62b92e2a281a03235a63c13b3feb8761f189 Mon Sep 17 00:00:00 2001 From: Szimszon Date: Wed, 29 Aug 2018 17:52:41 +0000 Subject: [PATCH 068/162] Translated using Weblate (Hungarian) Currently translated at 100.0% (1247 of 1247 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 | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 38a38057b6..888ad80e17 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -1256,5 +1256,13 @@ "Lazy loading is not supported by your current homeserver.": "A késleltetett betöltés nem támogatott ennél a Matrix szervernél.", "Sorry, your homeserver is too old to participate in this room.": "Sajnáljuk, a Matrix szervered nem elég friss ahhoz, hogy részt vegyen ebben a szobában.", "Please contact your homeserver administrator.": "Kérlek vedd fel a kapcsolatot a Matrix szerver adminisztrátorával.", - "Legal": "Jogi" + "Legal": "Jogi", + "This room has been replaced and is no longer active.": "Ezt a szobát lecseréltük és nem aktív többé.", + "The conversation continues here.": "A beszélgetés itt folytatódik.", + "Upgrade room to version %(ver)s": "A szoba frissítése %(ver)s verzióra", + "This room is a continuation of another conversation.": "Ebben a szobában folytatódik egy másik beszélgetés.", + "Click here to see older messages.": "Ide kattintva megnézheted a régi üzeneteket.", + "Failed to upgrade room": "A szoba frissítése sikertelen", + "The room upgrade could not be completed": "A szoba frissítését nem sikerült befejezni", + "Upgrade this room to version %(version)s": "A szoba frissítése %(version)s verzióra" } From 023035a7dd2a0cd0007a55ac33bf5e6ec0fda208 Mon Sep 17 00:00:00 2001 From: Kenneth Larsson Date: Wed, 29 Aug 2018 19:06:30 +0000 Subject: [PATCH 069/162] Translated using Weblate (Swedish) Currently translated at 100.0% (1247 of 1247 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 | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json index 8eb4743ad6..da167bb4e3 100644 --- a/src/i18n/strings/sv.json +++ b/src/i18n/strings/sv.json @@ -1244,5 +1244,23 @@ "Lazy loading members not supported": "Behovsladdning av medlemmar stöds inte", "Lazy loading is not supported by your current homeserver.": "Behovsladdning stöds inte av din nuvarande hemserver.", "Legal": "Juridiskt", - "Please contact your service administrator to continue using this service.": "Kontakta din serviceadministratör för att fortsätta använda servicen." + "Please contact your service administrator to continue using this service.": "Kontakta din serviceadministratör för att fortsätta använda servicen.", + "This room has been replaced and is no longer active.": "Detta rum har ersatts och är inte längre aktivt.", + "The conversation continues here.": "Konversationen fortsätter här.", + "Upgrade room to version %(ver)s": "Uppgradera rummet till version %(ver)s", + "There is a known vulnerability affecting this room.": "Det finns en känd sårbarhet som påverkar detta rum.", + "This room version is vulnerable to malicious modification of room state.": "Denna rumsversion är sårbar för skadlig modifiering av rumstillstånd.", + "Click here to upgrade to the latest room version and ensure room integrity is protected.": "Klicka här för att uppgradera till senaste rumsversionen och se till att rumsintegriteten är skyddad.", + "Only room administrators will see this warning": "Endast rumsadministratörer kommer att se denna varning", + "This room is a continuation of another conversation.": "Detta rum är en fortsättning på en annan konversation.", + "Click here to see older messages.": "Klicka här för att se äldre meddelanden.", + "Failed to upgrade room": "Det gick inte att uppgradera rum", + "The room upgrade could not be completed": "Rumsuppgraderingen kunde inte slutföras", + "Upgrade this room to version %(version)s": "Uppgradera detta rum till version %(version)s", + "Upgrade Room Version": "Uppgradera rumsversion", + "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:": "Uppgradering av detta rum kräver att nuvarande rumsinstans stängs och ersätts av ett nytt rum. För att ge rumsmedlemmarna bästa möjliga upplevelse, kommer vi att:", + "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" } From 47609feb2c8d501747ab1a3147b2adeffbc1e3d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Wed, 29 Aug 2018 20:57:18 +0000 Subject: [PATCH 070/162] Translated using Weblate (French) Currently translated at 100.0% (1247 of 1247 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 | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index b48cc0b80c..c80117cf89 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -1256,5 +1256,13 @@ "Lazy loading is not supported by your current homeserver.": "Le chargement différé n'est pas pris en charge par votre serveur d'accueil actuel.", "Sorry, your homeserver is too old to participate in this room.": "Désolé, votre serveur d'accueil est trop vieux pour participer à ce salon.", "Please contact your homeserver administrator.": "Veuillez contacter l'administrateur de votre serveur d'accueil.", - "Legal": "Légal" + "Legal": "Légal", + "This room has been replaced and is no longer active.": "Ce salon a été remplacé et n'est plus actif.", + "The conversation continues here.": "La discussion continue ici.", + "Upgrade room to version %(ver)s": "Mettre à jour le salon vers la version %(ver)s", + "This room is a continuation of another conversation.": "Ce salon est la suite d'une autre discussion.", + "Click here to see older messages.": "Cliquer ici pour voir les vieux messages.", + "Failed to upgrade room": "Échec de la mise à niveau du salon", + "The room upgrade could not be completed": "La mise à niveau du salon n'a pas pu être effectuée", + "Upgrade this room to version %(version)s": "Mettre à niveau ce salon vers la version %(version)s" } From 91544b42e748fcc6f0c213bd5fe2b58c86ada8d5 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Thu, 30 Aug 2018 00:41:50 +0000 Subject: [PATCH 071/162] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (1247 of 1247 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 327b06cff1..536628c3b1 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -1256,5 +1256,13 @@ "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": "法律", + "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" } From 5afb3bfb2959a3d61e8a024a042080785fafc7d2 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Thu, 30 Aug 2018 10:53:25 +0200 Subject: [PATCH 072/162] patch up DMs marked to self (can happy if any client has a bug here) --- src/utils/DMRoomMap.js | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/utils/DMRoomMap.js b/src/utils/DMRoomMap.js index d95eda490d..93ff565080 100644 --- a/src/utils/DMRoomMap.js +++ b/src/utils/DMRoomMap.js @@ -70,10 +70,46 @@ export default class DMRoomMap { _onAccountData(ev) { if (ev.getType() == 'm.direct') { - this.userToRooms = this.matrixClient.getAccountData('m.direct').getContent(); + let userToRooms = this.matrixClient.getAccountData('m.direct').getContent(); + const myUserId = this.matrixClient.getUserId(); + if (userToRooms[myUserId]) { + userToRooms = this._patchUpSelfDMs(userToRooms); + this.matrixClient.setAccountData('m.direct', userToRooms); + } + this.userToRooms = userToRooms; this._populateRoomToUser(); } } + /** + * some client bug somewhere is causing some DMs to be marked + * with ourself, not the other user. Fix it by guessing the other user and + * modifying userToRooms + */ + _patchUpSelfDMs(userToRooms) { + const myUserId = this.matrixClient.getUserId(); + const selfRoomIds = userToRooms[myUserId]; + if (selfRoomIds) { + const guessedUserIds = selfRoomIds.map((roomId) => { + const room = this.matrixClient.getRoom(roomId); + return room.guessDMUserId(); + }); + delete userToRooms[myUserId]; + guessedUserIds.forEach((userId, i) => { + if (!userId) { + // if not able to guess the other user (unlikely) + // still put it in the map so the room stays marked + // as a DM, we just wont be able to show an avatar. + userId = ""; + } + const roomId = selfRoomIds[i]; + const roomIds = userToRooms[userId]; + if (!roomIds) { + roomIds = userToRooms[userId] = []; + } + roomIds.push(roomId); + }); + } + } getDMRoomsForUserId(userId) { // Here, we return the empty list if there are no rooms, From d7868dbe3346a99aedc8facfb9d6cf83b6c8a5ab Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Thu, 30 Aug 2018 10:54:01 +0200 Subject: [PATCH 073/162] delegate avatar selection to room for rooms with two members (but not in m.direct) --- src/components/views/avatars/RoomAvatar.js | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/components/views/avatars/RoomAvatar.js b/src/components/views/avatars/RoomAvatar.js index e0105159fb..7b9cb10d51 100644 --- a/src/components/views/avatars/RoomAvatar.js +++ b/src/components/views/avatars/RoomAvatar.js @@ -119,15 +119,7 @@ module.exports = React.createClass({ } else { // if the room is not marked as a 1:1, but only has max 2 members // then still try to show any avatar (pref. other member) - const totalMemberCount = room.getJoinedMemberCount() + - room.getInvitedMemberCount(); - const members = room.currentState.getMembers(); - if (totalMemberCount == 2) { - const myUserId = MatrixClientPeg.get().getUserId(); - otherMember = members.find(m => m.userId !== myUserId); - } else if (totalMemberCount == 1) { - otherMember = members[0]; - } + otherMember = room.getAvatarFallbackMember(); } if (otherMember) { return otherMember.getAvatarUrl( From f8baa0f7296ccf028f049b8fb2176dde8b4387d2 Mon Sep 17 00:00:00 2001 From: Osoitz Date: Thu, 30 Aug 2018 09:31:19 +0000 Subject: [PATCH 074/162] Translated using Weblate (Basque) Currently translated at 100.0% (1247 of 1247 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 | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/eu.json b/src/i18n/strings/eu.json index c89f0b44f0..703602ea9f 100644 --- a/src/i18n/strings/eu.json +++ b/src/i18n/strings/eu.json @@ -1231,5 +1231,38 @@ "Internal room ID: ": "Gelaren barne IDa: ", "Room version number: ": "Gelaren bertsio zenbakia: ", "This homeserver has hit its Monthly Active User limit. Please contact your service administrator to continue using the service.": "Hasiera zerbitzari honek hileko erabiltzaile aktiboen muga jo du. Jarri zerbitzuaren administratzailearekin kontaktuan zerbitzua erabiltzen jarraitzeko.", - "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.": "Hasiera zerbitzari honek hileko erabiltzaile aktiboen muga jo du eta ezin izango duzu saioa hasi. Jarri zerbitzuaren administratzailearekin kontaktuan muga hau handitu dezan." + "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.": "Hasiera zerbitzari honek hileko erabiltzaile aktiboen muga jo du eta ezin izango duzu saioa hasi. Jarri zerbitzuaren administratzailearekin kontaktuan muga hau handitu dezan.", + "Sorry, your homeserver is too old to participate in this room.": "Zure hasiera-zerbitzaria zaharregia da gela honetan parte hartzeko.", + "Please contact your homeserver administrator.": "Jarri zure hasiera-zerbitzariaren administratzailearekin kontaktuan.", + "Increase performance by only loading room members on first view": "Hobetu errendimendua gelako kideak lehen ikustaldian besterik ez kargatuz", + "This room has been replaced and is no longer active.": "Gela hau ordeztu da eta ez dago aktibo jada.", + "The conversation continues here.": "Elkarrizketak hemen darrai.", + "Upgrade room to version %(ver)s": "Eguneratu gela %(ver)s bertsiora", + "There is a known vulnerability affecting this room.": "Gela honi eragiten dion ahulezia ezagun bat dago.", + "This room version is vulnerable to malicious modification of room state.": "Gela bertsio honek gelaren egoera gaiztoki aldatzea baimentzen duen ahulezia bat du.", + "Click here to upgrade to the latest room version and ensure room integrity is protected.": "Sakatu hemen gela azken bertsiora eguneratzeko eta gelaren osotasuna babestuta dagoela egiaztatzeko.", + "Only room administrators will see this warning": "Gelaren administratzaileek besterik ez dute abisu hau ikusiko", + "This room is a continuation of another conversation.": "Gela hau aurreko elkarrizketa baten jarraipena da.", + "Click here to see older messages.": "Egin klik hemen mezu zaharrak ikusteko.", + "Please contact your service administrator to continue using the service.": "Jarri kontaktuan zerbitzuaren administratzailearekin zerbitzu hau erabiltzen jarraitzeko.", + "This homeserver has hit its Monthly Active User limit.": "Hasiera zerbitzari honek bere hilabeteko erabiltzaile aktiboen muga gainditu du.", + "This homeserver has exceeded one of its resource limits.": "Hasiera zerbitzari honek bere baliabide mugetako bat gainditu du.", + "Please contact your service administrator to get this limit increased.": "Jarri kontaktuan zerbitzuaren administratzailearekin muga hau areagotzeko.", + "This homeserver has hit its Monthly Active User limit so some users will not be able to log in.": "Hasiera zerbitzari honek hilabeteko erabiltzaile aktiboen muga jo du erabiltzaile batzuk ezin izango dute saioa hasi.", + "This homeserver has exceeded one of its resource limits so some users will not be able to log in.": "Hasiera zerbitzari honek bere baliabide mugetako bat jo du erabiltzaile batzuk ezin izango dute saioa hasi.", + "Failed to upgrade room": "Huts egin du gela eguneratzea", + "The room upgrade could not be completed": "Ezin izan da gelaren eguneraketa osatu", + "Upgrade this room to version %(version)s": "Eguneratu gela hau %(version)s bertsiora", + "Upgrade Room Version": "Eguneratu gelaren bertsioa", + "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:": "Gela hau eguneratzeak instantzian uneko gela itxi eta berri bat sortzea dakar. Erabiltzaileei ahalik eta esperientzia onena emateko hau egingo dugu:", + "Create a new room with the same name, description and avatar": "Izen, deskripzio eta abatar bereko beste gela bat sortu", + "Update any local room aliases to point to the new room": "Tokiko gelaren ezizen guztiak gela berrira apuntatu ditzaten eguneratu", + "Stop users from speaking in the old version of the room, and post a message advising users to move to the new room": "Erabiltzaileei gelaren bertsio zaharrean hitz egiten jarraitzea eragotzi, eta erabiltzaileei gela berrira mugitzea aholkatzeko mezu bat bidali", + "Put a link back to the old room at the start of the new room so people can see old messages": "Gela berriaren hasieran gela zaharrera esteka bat jarri jendeak mezu zaharrak ikus ditzan", + "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.": "Zure mezua ez da bidali zure hasiera zerbitzariak hilabeteko erabiltzaile aktiboen muga jo duelako. Jarri kontaktuan zerbitzuaren administratzailearekin zerbitzua erabiltzen jarraitzeko.", + "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Zure mezua ez da bidali zure hasiera zerbitzariak baliabide mugaren bat jo duelako. Jarri kontaktuan zerbitzuaren administratzailearekin zerbitzua erabiltzen jarraitzeko.", + "Lazy loading members not supported": "Kideen karga alferrerako euskarririk ez", + "Lazy loading is not supported by your current homeserver.": "Zure hasiera zerbitzariak ez du onartzen karga alferra.", + "Legal": "Legezkoa", + "Please contact your service administrator to continue using this service.": "Jarri kontaktuan zerbitzuaren administratzailearekin zerbitzu hau erabiltzen jarraitzeko." } From caff60d56d85b9db0bca1e9e238fd2507c7c2c62 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Thu, 30 Aug 2018 11:37:13 +0200 Subject: [PATCH 075/162] fix var decl --- src/utils/DMRoomMap.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/DMRoomMap.js b/src/utils/DMRoomMap.js index 93ff565080..7974ab5681 100644 --- a/src/utils/DMRoomMap.js +++ b/src/utils/DMRoomMap.js @@ -102,7 +102,7 @@ export default class DMRoomMap { userId = ""; } const roomId = selfRoomIds[i]; - const roomIds = userToRooms[userId]; + let roomIds = userToRooms[userId]; if (!roomIds) { roomIds = userToRooms[userId] = []; } From 379ddfff2961faf381d12560ec78095314ed8018 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Thu, 30 Aug 2018 11:50:57 +0200 Subject: [PATCH 076/162] dont reassign userToRooms as we're just patching it up, also better check if we really have self DMs --- src/utils/DMRoomMap.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/utils/DMRoomMap.js b/src/utils/DMRoomMap.js index 7974ab5681..1db8e7f970 100644 --- a/src/utils/DMRoomMap.js +++ b/src/utils/DMRoomMap.js @@ -72,8 +72,9 @@ export default class DMRoomMap { if (ev.getType() == 'm.direct') { let userToRooms = this.matrixClient.getAccountData('m.direct').getContent(); const myUserId = this.matrixClient.getUserId(); - if (userToRooms[myUserId]) { - userToRooms = this._patchUpSelfDMs(userToRooms); + const selfDMs = userToRooms[myUserId]; + if (selfDMs && selfDMs.length) { + this._patchUpSelfDMs(userToRooms); this.matrixClient.setAccountData('m.direct', userToRooms); } this.userToRooms = userToRooms; From 85b6f157c1314d51b904f62cdef5080cf690efce Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Thu, 30 Aug 2018 12:01:13 +0200 Subject: [PATCH 077/162] only patch m.direct data on server once per session to avoid request storm --- src/utils/DMRoomMap.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/utils/DMRoomMap.js b/src/utils/DMRoomMap.js index 1db8e7f970..ff0a7cbbf0 100644 --- a/src/utils/DMRoomMap.js +++ b/src/utils/DMRoomMap.js @@ -27,6 +27,8 @@ export default class DMRoomMap { constructor(matrixClient) { this.matrixClient = matrixClient; this.roomToUser = null; + // see _onAccountData + this._hasSentOutPatchDirectAccountDataPatch = false; // XXX: Force-bind the event handler method because it // doesn't call it with our object as the 'this' @@ -75,7 +77,13 @@ export default class DMRoomMap { const selfDMs = userToRooms[myUserId]; if (selfDMs && selfDMs.length) { this._patchUpSelfDMs(userToRooms); - this.matrixClient.setAccountData('m.direct', userToRooms); + // to avoid multiple devices fighting to correct + // the account data, only try to send the corrected + // version once. + if (!this._hasSentOutPatchDirectAccountDataPatch) { + this._hasSentOutPatchDirectAccountDataPatch = true; + this.matrixClient.setAccountData('m.direct', userToRooms); + } } this.userToRooms = userToRooms; this._populateRoomToUser(); From d8f15e11594fde3dc1feda692d32b53659ff8be1 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Thu, 30 Aug 2018 12:06:34 +0200 Subject: [PATCH 078/162] make sure we still have the room --- src/utils/DMRoomMap.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/DMRoomMap.js b/src/utils/DMRoomMap.js index ff0a7cbbf0..7767e6bc8b 100644 --- a/src/utils/DMRoomMap.js +++ b/src/utils/DMRoomMap.js @@ -100,7 +100,7 @@ export default class DMRoomMap { if (selfRoomIds) { const guessedUserIds = selfRoomIds.map((roomId) => { const room = this.matrixClient.getRoom(roomId); - return room.guessDMUserId(); + return room && room.guessDMUserId(); }); delete userToRooms[myUserId]; guessedUserIds.forEach((userId, i) => { From 332c190c633cb77e2ca68995eeff4101d463ea00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Wed, 29 Aug 2018 20:58:20 +0000 Subject: [PATCH 079/162] Translated using Weblate (French) Currently translated at 100.0% (1247 of 1247 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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index c80117cf89..22a61d214c 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -1259,7 +1259,7 @@ "Legal": "Légal", "This room has been replaced and is no longer active.": "Ce salon a été remplacé et n'est plus actif.", "The conversation continues here.": "La discussion continue ici.", - "Upgrade room to version %(ver)s": "Mettre à jour le salon vers la version %(ver)s", + "Upgrade room to version %(ver)s": "Mettre à niveau le salon vers la version %(ver)s", "This room is a continuation of another conversation.": "Ce salon est la suite d'une autre discussion.", "Click here to see older messages.": "Cliquer ici pour voir les vieux messages.", "Failed to upgrade room": "Échec de la mise à niveau du salon", From fad6816d5ef56374cc3a5c66b4216756be59f956 Mon Sep 17 00:00:00 2001 From: Krombel Date: Wed, 29 Aug 2018 18:07:54 +0000 Subject: [PATCH 080/162] Translated using Weblate (German) Currently translated at 100.0% (1247 of 1247 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 | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 41dbf5506e..f50c1180f8 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -190,7 +190,7 @@ "This email address is already in use": "Diese E-Mail-Adresse wird bereits verwendet", "This email address was not found": "Diese E-Mail-Adresse konnte nicht gefunden werden", "The file '%(fileName)s' exceeds this home server's size limit for uploads": "Die Datei '%(fileName)s' überschreitet das Größen-Limit für Uploads auf diesem Heimserver", - "The file '%(fileName)s' failed to upload": "Das Hochladen der Datei '%(fileName)' schlug fehl", + "The file '%(fileName)s' failed to upload": "Das Hochladen der Datei '%(fileName)s' schlug fehl", "The remote side failed to pick up": "Die Gegenstelle konnte nicht abheben", "This phone number is already in use": "Diese Telefonnummer wird bereits verwendet", "Unable to capture screen": "Der Bildschirm konnte nicht aufgenommen werden", @@ -1234,7 +1234,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.": "Dieser Heimserver hat sein monatliches Limit an aktiven Benutzern erreicht. Bitte kontaktiere deinen Systemadministrator um dieses Limit zu erhöhen.", "There is a known vulnerability affecting this room.": "Es gibt eine bekannte Schwachstelle, die diesen Raum betrifft.", "This room version is vulnerable to malicious modification of room state.": "Dieser Raum ist verwundbar gegenüber bösartiger Veränderung des Raum-Status.", - "Click here to upgrade to the latest room version and ensure room integrity is protected.": "Klicke hier um ein Upgrade zur letzten Raum-Version durchzuführen und sicherzustellen, dass die Raum-Integrität gewahrt bleibt.", + "Click here to upgrade to the latest room version and ensure room integrity is protected.": "Klicke hier um den Raum zur letzten Raum-Version aufzurüsten und sicherzustellen, dass die Raum-Integrität gewahrt bleibt.", "Only room administrators will see this warning": "Nur Raum-Administratoren werden diese Nachricht sehen", "Please contact your service administrator to continue using the service.": "Bitte kontaktiere deinen Systemadministrator um diesen Dienst weiter zu nutzen.", "This homeserver has hit its Monthly Active User limit.": "Dieser Heimserver hat sein Limit an monatlich aktiven Nutzern erreicht.", @@ -1242,8 +1242,8 @@ "Please contact your service administrator to get this limit increased.": "Bitte kontaktiere deinen Systemadministrator um dieses Limit zu erhöht zu bekommen.", "This homeserver has hit its Monthly Active User limit so some users will not be able to log in.": "Dieser Heimserver hat sein Limit an monatlich aktiven Nutzern erreicht, sodass einige Nutzer sich nicht anmelden können.", "This homeserver has exceeded one of its resource limits so some users will not be able to log in.": "Dieser Heimserver hat einen seiner Ressourcen-Limits überschritten, sodass einige Benutzer nicht in der Lage sind sich anzumelden.", - "Upgrade Room Version": "Raum-Version upgraden", - "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:": "Um diesen Raum upzugraden, wird der aktuelle geschlossen und ein neuer an seiner Stelle erstellt. Um den Raum-Mitgliedern die bestmögliche Erfahrung zu bieten, werden wir:", + "Upgrade Room Version": "Raum-Version aufrüsten", + "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:": "Um diesen Raum aufzurüsten, wird der aktuelle geschlossen und ein neuer an seiner Stelle erstellt. Um den Raum-Mitgliedern die bestmögliche Erfahrung zu bieten, werden wir:", "Create a new room with the same name, description and avatar": "Einen neuen Raum mit demselben Namen, Beschreibung und Profilbild erstellen", "Update any local room aliases to point to the new room": "Alle lokalen Raum-Aliase aktualisieren, damit sie auf den neuen Raum zeigen", "Stop users from speaking in the old version of the room, and post a message advising users to move to the new room": "Nutzern verbieten in dem Raum mit der alten Version zu schreiben und eine Nachricht senden, die den Nutzern rät in den neuen Raum zu wechseln", @@ -1256,5 +1256,13 @@ "Lazy loading is not supported by your current homeserver.": "Verzögertes Laden wird von deinem aktuellen Heimserver.", "Sorry, your homeserver is too old to participate in this room.": "Sorry, dein Homeserver ist zu alt, um an diesem Raum teilzunehmen.", "Please contact your homeserver administrator.": "Bitte setze dich mit dem Administrator deines Homeservers in Verbindung.", - "Legal": "Rechtliches" + "Legal": "Rechtliches", + "This room has been replaced and is no longer active.": "Dieser Raum wurde ersetzt und ist nicht länger aktiv.", + "The conversation continues here.": "Die Konversation wird hier fortgesetzt.", + "Upgrade room to version %(ver)s": "Den Raum zur Version %(ver)s aufrüsten", + "This room is a continuation of another conversation.": "Dieser Raum ist eine Fortsetzung einer anderen Konversation.", + "Click here to see older messages.": "Klicke hier um ältere Nachrichten zu sehen.", + "Failed to upgrade room": "Konnte Raum nicht aufrüsten", + "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" } From e45008ec226b472f1b0971d7c584b16015645eb8 Mon Sep 17 00:00:00 2001 From: csybr Date: Wed, 29 Aug 2018 22:31:17 +0000 Subject: [PATCH 081/162] Translated using Weblate (Norwegian Nynorsk) Currently translated at 97.8% (1220 of 1247 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nn/ --- src/i18n/strings/nn.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/i18n/strings/nn.json b/src/i18n/strings/nn.json index 58b156a08a..c1174dcd5a 100644 --- a/src/i18n/strings/nn.json +++ b/src/i18n/strings/nn.json @@ -9,8 +9,8 @@ "Call Failed": "Oppringjing Mislukkast", "There are unknown devices in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "Det finst ukjende einingar i dette rommet: viss du gjeng frama utan å godkjenna dei, kan nokon mogelegvis tjuvlytta på samtala.", "Review Devices": "Sjå Over Einingar", - "Call Anyway": "Ring Same Kva", - "Answer Anyway": "Svar Same Kva", + "Call Anyway": "Ring Likevel", + "Answer Anyway": "Svar Likevel", "Call": "Ring", "Answer": "Svar", "You are already in a call.": "Du er allereie i ei samtale.", @@ -195,7 +195,7 @@ "%(names)s and %(lastPerson)s are typing": "%(names)s og %(lastPerson)s skriv", "Failure to create room": "Klarte ikkje å laga rommet", "Server may be unavailable, overloaded, or you hit a bug.": "tenaren er kanskje utilgjengeleg, overlasta elles so traff du ein bøgg.", - "Send anyway": "Send same kva", + "Send anyway": "Send likevel", "Send": "Send", "Unnamed Room": "Rom utan Namn", "Your browser does not support the required cryptography extensions": "Nettlesaren din støttar ikkje dei naudsynte kryptografiske utvidingane", @@ -426,7 +426,7 @@ "Unnamed room": "Rom utan namn", "Guests can join": "Gjester kan koma inn", "Failed to set avatar.": "Fekk ikkje til å setja avatar.", - "Save": "Lagra", + "Save": "Lagr", "(~%(count)s results)|other": "(~%(count)s resultat)", "(~%(count)s results)|one": "(~%(count)s resultat)", "Join Room": "Far inn i Rom", @@ -512,8 +512,8 @@ "To send events of type , you must be a": "For å senda hendingar av sorten må du vera ein", "Who can access this room?": "Kven har tilgang til rommet?", "Only people who have been invited": "Berre dei som er bodne inn", - "Anyone who knows the room's link, apart from guests": "Nokon som kjenner lenkja til rommet, sett vekk frå gjester", - "Anyone who knows the room's link, including guests": "Nokon som kjenner lenkja til rommet, gjester òg", + "Anyone who knows the room's link, apart from guests": "Dei som kjenner lenkja til rommet, sett vekk frå gjester", + "Anyone who knows the room's link, including guests": "Dei som kjenner lenkja til rommet, gjester òg", "Publish this room to the public in %(domain)s's room directory?": "Gjer dette rommet offentleg i %(domain)s sitt romutval?", "Who can read history?": "Kven kan lesa historia?", "Anyone": "Kven som helst", @@ -885,7 +885,7 @@ "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot brukar mange omfattande nettlesarfunksjonar, og nokre av dei er ikkje tilgjengelege eller i utprøving i nettlesaren din.", "Please install Chrome or Firefox for the best experience.": "Ver venleg og legg Chrome eller Firefox inn på datamaskina for den beste opplevinga.", "Safari and Opera work too.": "Safari og Opera verkar òg.", - "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!": "Med denne nettlesaren, er det mogleg at synet og kjensla av applikasjonen er fullstendig gale, og nokre eller alle funksjonar verkar kanskje ikkje. Viss du vil prøva same kva kan du gå fram, men då du må sjølv handtera alle vanskar du møter på!", + "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!": "Med denne nettlesaren, er det mogleg at synet og kjensla av applikasjonen er fullstendig gale, og nokre eller alle funksjonar verkar kanskje ikkje. Viss du vil prøva likevel kan du gå fram, men då du må sjølv handtera alle vanskar du møter på!", "I understand the risks and wish to continue": "Eg forstår farane og vil gå fram", "Name": "Namn", "Topic": "Emne", @@ -981,7 +981,7 @@ "#example": "#døme", "Scroll to bottom of page": "Blad til botnen", "Message not sent due to unknown devices being present": "Meldinga vart ikkje send fordi ukjende einingar er til stades", - "Show devices, send anyway or cancel.": "Vis einingar, Send same kva eller Bryt av.", + "Show devices, send anyway or cancel.": "Vis einingar, Send likevel eller Bryt av.", "You can't send any messages until you review and agree to our terms and conditions.": "Du kan ikkje senda meldingar før du ser over og seier deg einig i våre Vilkår og Føresetnader.", "%(count)s of your messages have not been sent.|other": "Nokre av meldingane dine vart ikkje sende.", "%(count)s of your messages have not been sent.|one": "Meldinga di vart ikkje send.", @@ -1035,7 +1035,7 @@ "Device key:": "Einingsnykel:", "Ignored Users": "Oversedde Brukarar", "Debug Logs Submission": "Innsending av Debøgg-loggar", - "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.": "Viss du har send inn ein bøgg gjennom GitHub, kan debøgg-loggar hjelpa oss med å finna problemet. Debøgg-loggar inneheld data om æpp-bruk, b.a. Brukarnamnet ditt, IDane eller aliasa på romma eller gruppene du har vitja og brukarnamna til andre brukarar. Dei inneheld ikkje meldingar.", + "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.": "Viss du har sendt inn ein bøgg gjennom GitHub, kan debøgg-loggar hjelpa oss med å finna problemet. Debøgg-loggar inneheld data om æpp-bruk, b.a. Brukarnamnet ditt, IDane eller aliasa på romma eller gruppene du har vitja og brukarnamna til andre brukarar. Dei inneheld ikkje meldingar.", "Riot collects anonymous analytics to allow us to improve the application.": "Riot samlar anonym statistikk inn slik at vi kan forbetre æppen.", "Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.": "Personvern er viktig for oss, so vi samlar ikkje på personleg eller attkjenneleg data for statistikken vår.", "Learn more about how we use analytics.": "Finn ut meir om korleis vi brukar statistikk.", @@ -1154,8 +1154,8 @@ "Filter community members": "Filtrer samfunnsmedlemer", "Custom Server Options": "Eigentenar-innstillingar", "Filter community rooms": "Filtrer samfunnsrom", - "Please help improve Riot.im by sending anonymous usage data. This will use a cookie (please see our Cookie Policy).": "Ver venleg og hjelp oss å forbetra Riot.im med å senda anonym brukardata. Dette brukar ei datakake (ver venleg og sjå på Datakakeretningslinene våre).", - "Please help improve Riot.im by sending anonymous usage data. This will use a cookie.": "Ver venleg og hjelp oss å forbetra Riot.im med å senda anonym brukardata. Dette brukar ei datakake.", + "Please help improve Riot.im by sending anonymous usage data. This will use a cookie (please see our Cookie Policy).": "Ver venleg og hjelp oss å forbetra Riot.im ved å senda anonym brukardata. Dette brukar ei datakake (ver venleg og sjå på Datakakeretningslinene våre).", + "Please help improve Riot.im by sending anonymous usage data. This will use a cookie.": "Ver venleg og hjelp oss å forbetra Riot.im ved å senda anonym brukardata. Dette brukar ei datakake.", "Whether or not you're using the Richtext mode of the Rich Text Editor": "Om du brukar Riktekst-innstillinga på Riktekstfeltet", "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!": "ÅTVARING: NOKO GJEKK GALT MED NYKELGODKJENNINGA! Signeringsnykelen til %(userId)s og eininga %(deviceId)s er \"%(fprint)s\", som ikkje er lik den gjevne nykelen \"%(fingerprint)s\". Dette kan tyda at nokon tjuvlyttar på kommuniseringa!", "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Signeringsnykelen du oppgav er lik signeringsnykelen du fekk frå %(userId)s si eining %(deviceId)s. Eininga merkast som godkjend.", From 40e5d379f0e3dc2268ba62ff1be8398b09db351a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20V=C3=A1gner?= Date: Thu, 30 Aug 2018 10:32:34 +0000 Subject: [PATCH 082/162] Translated using Weblate (Slovak) Currently translated at 99.4% (1240 of 1247 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/sk/ --- src/i18n/strings/sk.json | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index 4da149b5f1..8137be265b 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -1239,5 +1239,17 @@ "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Vaša správa nebola odoslaná, pretože bol prekročený limit prostriedkov tohoto domovského servera. Prosím, kontaktujte správcu služieb aby ste službu mohli naďalej používať.", "Lazy loading members not supported": "Načítanie zoznamu členov pri prvom zobrazení nie je podporované", "Lazy loading is not supported by your current homeserver.": "Oneskorené načítanie nepodporuje váš domovský server.", - "Please contact your service administrator to continue using this service.": "Prosím, kontaktujte správcu služieb aby ste mohli službu ďalej používať." + "Please contact your service administrator to continue using this service.": "Prosím, kontaktujte správcu služieb aby ste mohli službu ďalej používať.", + "This room has been replaced and is no longer active.": "Táto miestnosť bola nahradená a nie je viac aktívna.", + "The conversation continues here.": "Konverzácia pokračuje tu.", + "Upgrade room to version %(ver)s": "Aktualizácia miestnosti na verziu %(ver)s", + "There is a known vulnerability affecting this room.": "Existuje známa zraniteľnosť, ktorú je možné zneužiť v tejto miestnosti.", + "This room version is vulnerable to malicious modification of room state.": "Táto verzia miestnosti je zraniteľná proti zlomyseľným zmenám jej stavu.", + "Click here to upgrade to the latest room version and ensure room integrity is protected.": "Kliknutím sem aktualizujete miestnosť na najnovšiu verziu a uistíte sa, že jej integrita je bezpečne zachovaná.", + "Only room administrators will see this warning": "Toto upozornenie sa zobrazuje len správcom miestnosti", + "This room is a continuation of another conversation.": "Táto miestnosť je pokračovaním staršej konverzácii.", + "Click here to see older messages.": "Kliknutím sem zobrazíte staršie správy.", + "Failed to upgrade room": "Nepodarilo sa aktualizovať miestnosť", + "The room upgrade could not be completed": "Nie je možné dokončiť aktualizáciu miestnosti na jej najnovšiu verziu", + "Upgrade this room to version %(version)s": "Aktualizácia tejto miestnosti na verziu %(version)s" } From fb0a0d5d9e83c0b4bd38f6346fb990456c8d92e7 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Thu, 30 Aug 2018 12:36:53 +0200 Subject: [PATCH 083/162] allow self-chats --- src/utils/DMRoomMap.js | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/src/utils/DMRoomMap.js b/src/utils/DMRoomMap.js index 7767e6bc8b..0c5e696c5f 100644 --- a/src/utils/DMRoomMap.js +++ b/src/utils/DMRoomMap.js @@ -72,15 +72,15 @@ export default class DMRoomMap { _onAccountData(ev) { if (ev.getType() == 'm.direct') { - let userToRooms = this.matrixClient.getAccountData('m.direct').getContent(); + const userToRooms = this.matrixClient.getAccountData('m.direct').getContent() || {}; const myUserId = this.matrixClient.getUserId(); const selfDMs = userToRooms[myUserId]; if (selfDMs && selfDMs.length) { - this._patchUpSelfDMs(userToRooms); + const neededPatching = this._patchUpSelfDMs(userToRooms); // to avoid multiple devices fighting to correct // the account data, only try to send the corrected // version once. - if (!this._hasSentOutPatchDirectAccountDataPatch) { + if (neededPatching && !this._hasSentOutPatchDirectAccountDataPatch) { this._hasSentOutPatchDirectAccountDataPatch = true; this.matrixClient.setAccountData('m.direct', userToRooms); } @@ -98,25 +98,40 @@ export default class DMRoomMap { const myUserId = this.matrixClient.getUserId(); const selfRoomIds = userToRooms[myUserId]; if (selfRoomIds) { - const guessedUserIds = selfRoomIds.map((roomId) => { + // any self-chats that should not be self-chats? + const guessedUserIdsThatChanged = selfRoomIds.map((roomId) => { const room = this.matrixClient.getRoom(roomId); - return room && room.guessDMUserId(); + if (room) { + const userId = room.guessDMUserId(); + if (userId && userId !== myUserId) { + return {userId, roomId}; + } + } + }).filter((ids) => !!ids); //filter out + // these are actually all legit self-chats + // bail out + if (!guessedUserIdsThatChanged.length) { + return false; + } + userToRooms[myUserId] = selfRoomIds.filter((roomId) => { + return guessedUserIdsThatChanged + .some((ids) => ids.roomId === roomId); }); - delete userToRooms[myUserId]; - guessedUserIds.forEach((userId, i) => { + + guessedUserIdsThatChanged.forEach(({userId, roomId}) => { if (!userId) { // if not able to guess the other user (unlikely) // still put it in the map so the room stays marked // as a DM, we just wont be able to show an avatar. userId = ""; } - const roomId = selfRoomIds[i]; let roomIds = userToRooms[userId]; if (!roomIds) { roomIds = userToRooms[userId] = []; } roomIds.push(roomId); }); + return true; } } From 8dd17dadd286f98646b97d9fd94d68d823db124a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20V=C3=A1gner?= Date: Thu, 30 Aug 2018 10:44:48 +0000 Subject: [PATCH 084/162] Translated using Weblate (Slovak) Currently translated at 99.7% (1244 of 1247 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/sk/ --- src/i18n/strings/sk.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index 8137be265b..7f16c1d6c6 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -1251,5 +1251,9 @@ "Click here to see older messages.": "Kliknutím sem zobrazíte staršie správy.", "Failed to upgrade room": "Nepodarilo sa aktualizovať miestnosť", "The room upgrade could not be completed": "Nie je možné dokončiť aktualizáciu miestnosti na jej najnovšiu verziu", - "Upgrade this room to version %(version)s": "Aktualizácia tejto miestnosti na verziu %(version)s" + "Upgrade this room to version %(version)s": "Aktualizácia tejto miestnosti na verziu %(version)s", + "Upgrade Room Version": "Aktualizovať verziu miestnosti", + "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:": "Aktualizácia verzii tejto miestnosti si vyžaduje jej uzatvorenie a vytvorenie novej miestnosti na jej pôvodnom mieste. Aby bol prechod pre členov miestnosti čo najplynulejší, nasledovné kroky sa vykonajú automaticky:", + "Create a new room with the same name, description and avatar": "Vznikne nová miestnosť s rovnakým názvom, témou a obrázkom", + "Update any local room aliases to point to the new room": "Všetky lokálne aliasy pôvodnej miestnosti sa aktualizujú tak, aby ukazovali na novú miestnosť" } From 47fcc0d264a0243ff86328cd6f9c7fb5b605b006 Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 30 Aug 2018 14:21:11 +0100 Subject: [PATCH 085/162] js-sdk rc.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1bdced5caf..3a732d3c80 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "linkifyjs": "^2.1.6", "lodash": "^4.13.1", "lolex": "2.3.2", - "matrix-js-sdk": "0.10.8", + "matrix-js-sdk": "0.10.9-rc.1", "optimist": "^0.6.1", "pako": "^1.0.5", "prop-types": "^15.5.8", From 53c6b7e4cbffb9c536742497bff2cc38b0516362 Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 30 Aug 2018 14:28:58 +0100 Subject: [PATCH 086/162] Prepare changelog for v0.13.3-rc.1 --- CHANGELOG.md | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f668ca3f97..026b241d21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,59 @@ +Changes in [0.13.3-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.13.3-rc.1) (2018-08-30) +=============================================================================================================== +[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.13.2...v0.13.3-rc.1) + + * Fix DM avatar + [\#2141](https://github.com/matrix-org/matrix-react-sdk/pull/2141) + * Update from Weblate. + [\#2142](https://github.com/matrix-org/matrix-react-sdk/pull/2142) + * Support m.room.tombstone events + [\#2124](https://github.com/matrix-org/matrix-react-sdk/pull/2124) + * Support room creation events + [\#2123](https://github.com/matrix-org/matrix-react-sdk/pull/2123) + * Support for room upgrades + [\#2122](https://github.com/matrix-org/matrix-react-sdk/pull/2122) + * Fix: dont show 1:1 avatar for rooms +2 members but only <=2 members loaded + [\#2137](https://github.com/matrix-org/matrix-react-sdk/pull/2137) + * Render terms & conditions in settings + [\#2136](https://github.com/matrix-org/matrix-react-sdk/pull/2136) + * Don't crash if the value of a room tag is null + [\#2133](https://github.com/matrix-org/matrix-react-sdk/pull/2133) + * Add stub for getVisibleRooms() + [\#2134](https://github.com/matrix-org/matrix-react-sdk/pull/2134) + * Fix LL crash trying to render own avatar in composer when member isn't + available yet + [\#2132](https://github.com/matrix-org/matrix-react-sdk/pull/2132) + * Support M_INCOMPATIBLE_ROOM_VERSION + [\#2125](https://github.com/matrix-org/matrix-react-sdk/pull/2125) + * Hide replaced rooms + [\#2127](https://github.com/matrix-org/matrix-react-sdk/pull/2127) + * Fix CPU spin on joining large room + [\#2128](https://github.com/matrix-org/matrix-react-sdk/pull/2128) + * Change format of server usage limit message + [\#2131](https://github.com/matrix-org/matrix-react-sdk/pull/2131) + * Re-apply "Fix showing peek preview while LL members are loading"" + [\#2130](https://github.com/matrix-org/matrix-react-sdk/pull/2130) + * Revert "Fix showing peek preview while LL members are loading" + [\#2129](https://github.com/matrix-org/matrix-react-sdk/pull/2129) + * Fix showing peek preview while LL members are loading + [\#2126](https://github.com/matrix-org/matrix-react-sdk/pull/2126) + * Destroy non-persistent widgets when switching room + [\#2098](https://github.com/matrix-org/matrix-react-sdk/pull/2098) + * Lazy loading of room members + [\#2118](https://github.com/matrix-org/matrix-react-sdk/pull/2118) + * Lazy loading: feature toggle + [\#2115](https://github.com/matrix-org/matrix-react-sdk/pull/2115) + * Lazy loading: cleanup + [\#2116](https://github.com/matrix-org/matrix-react-sdk/pull/2116) + * Lazy loading: fix end-to-end encryption rooms + [\#2113](https://github.com/matrix-org/matrix-react-sdk/pull/2113) + * Lazy loading: Lazy load members while backpaginating + [\#2104](https://github.com/matrix-org/matrix-react-sdk/pull/2104) + * Lazy loading: don't assume we have our own member available + [\#2102](https://github.com/matrix-org/matrix-react-sdk/pull/2102) + * Lazy load room members - Part I + [\#2072](https://github.com/matrix-org/matrix-react-sdk/pull/2072) + Changes in [0.13.2](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.13.2) (2018-08-23) ===================================================================================================== [Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.13.1...v0.13.2) From 5688f98d2245de0c26c9d97f98ce08adf06f7690 Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 30 Aug 2018 14:28:58 +0100 Subject: [PATCH 087/162] v0.13.3-rc.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3a732d3c80..8da67cd693 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "matrix-react-sdk", - "version": "0.13.2", + "version": "0.13.3-rc.1", "description": "SDK for matrix.org using React", "author": "matrix.org", "repository": { From debcc20604294a110ec98ca6790c1004a09eb2cf Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Thu, 30 Aug 2018 15:39:48 +0200 Subject: [PATCH 088/162] also show spinner on new CATCHUP state --- src/components/structures/TagPanel.js | 2 +- src/components/structures/TimelinePanel.js | 5 +++-- src/components/views/avatars/BaseAvatar.js | 2 +- src/components/views/messages/MImageBody.js | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/components/structures/TagPanel.js b/src/components/structures/TagPanel.js index 652211595b..f23ac698ba 100644 --- a/src/components/structures/TagPanel.js +++ b/src/components/structures/TagPanel.js @@ -76,7 +76,7 @@ const TagPanel = React.createClass({ _onClientSync(syncState, prevState) { // Consider the client reconnected if there is no error with syncing. - // This means the state could be RECONNECTING, SYNCING or PREPARED. + // This means the state could be RECONNECTING, SYNCING, PREPARED or CATCHUP. const reconnected = syncState !== "ERROR" && prevState !== syncState; if (reconnected) { // Load joined groups diff --git a/src/components/structures/TimelinePanel.js b/src/components/structures/TimelinePanel.js index 1a03b5d994..e06c652924 100644 --- a/src/components/structures/TimelinePanel.js +++ b/src/components/structures/TimelinePanel.js @@ -1146,10 +1146,11 @@ var TimelinePanel = React.createClass({ // of paginating our way through the entire history of the room. const stickyBottom = !this._timelineWindow.canPaginate(EventTimeline.FORWARDS); - // If the state is PREPARED, we're still waiting for the js-sdk to sync with + // If the state is PREPARED or CATCHUP, we're still waiting for the js-sdk to sync with // the HS and fetch the latest events, so we are effectively forward paginating. const forwardPaginating = ( - this.state.forwardPaginating || this.state.clientSyncState == 'PREPARED' + this.state.forwardPaginating || + ['PREPARED', 'CATCHUP'].includes(this.state.clientSyncState) ); return ( Date: Thu, 30 Aug 2018 10:52:02 +0000 Subject: [PATCH 089/162] Translated using Weblate (Slovak) Currently translated at 99.9% (1246 of 1247 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/sk/ --- src/i18n/strings/sk.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index 7f16c1d6c6..05c102d516 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -1255,5 +1255,7 @@ "Upgrade Room Version": "Aktualizovať verziu miestnosti", "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:": "Aktualizácia verzii tejto miestnosti si vyžaduje jej uzatvorenie a vytvorenie novej miestnosti na jej pôvodnom mieste. Aby bol prechod pre členov miestnosti čo najplynulejší, nasledovné kroky sa vykonajú automaticky:", "Create a new room with the same name, description and avatar": "Vznikne nová miestnosť s rovnakým názvom, témou a obrázkom", - "Update any local room aliases to point to the new room": "Všetky lokálne aliasy pôvodnej miestnosti sa aktualizujú tak, aby ukazovali na novú miestnosť" + "Update any local room aliases to point to the new room": "Všetky lokálne aliasy pôvodnej miestnosti sa aktualizujú tak, aby ukazovali na novú miestnosť", + "Stop users from speaking in the old version of the room, and post a message advising users to move to the new room": "V pôvodnej miestnosti bude zverejnené odporúčanie prejsť do novej miestnosti a posielanie do pôvodnej miestnosti bude zakázané pre všetkých používateľov", + "Put a link back to the old room at the start of the new room so people can see old messages": "História novej miestnosti sa začne odkazom do pôvodnej miestnosti, aby si členovia vedeli zobraziť staršie správy" } From 33cfd34bc11b6612d1a7842f920cad15f647ad48 Mon Sep 17 00:00:00 2001 From: Szimszon Date: Thu, 30 Aug 2018 19:03:17 +0000 Subject: [PATCH 090/162] Translated using Weblate (Hungarian) Currently translated at 100.0% (1249 of 1249 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 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 888ad80e17..c2c367f106 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -1264,5 +1264,7 @@ "Click here to see older messages.": "Ide kattintva megnézheted a régi üzeneteket.", "Failed to upgrade room": "A szoba frissítése sikertelen", "The room upgrade could not be completed": "A szoba frissítését nem sikerült befejezni", - "Upgrade this room to version %(version)s": "A szoba frissítése %(version)s verzióra" + "Upgrade this room to version %(version)s": "A szoba frissítése %(version)s verzióra", + "Error Discarding Session": "Hiba a munkamenet törlésénél", + "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" } From 8b29641dea5a7f728341e21970f07a6345fd98bc Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Fri, 31 Aug 2018 02:59:16 +0000 Subject: [PATCH 091/162] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (1249 of 1249 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 536628c3b1..ffd623e6cf 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -1264,5 +1264,7 @@ "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" + "Upgrade this room to version %(version)s": "升級此聊天室到版本 %(version)s", + "Forces the current outbound group session in an encrypted room to be discarded": "強制目前在已加密的聊天室中的外發群組工作階段丟棄", + "Error Discarding Session": "丟棄工作階段錯誤" } From 8cae1150b17dbc3af17f86435a77767d8cd19dcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Fri, 31 Aug 2018 07:43:23 +0000 Subject: [PATCH 092/162] Translated using Weblate (French) Currently translated at 100.0% (1249 of 1249 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 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 22a61d214c..c4efb76e55 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -1264,5 +1264,7 @@ "Click here to see older messages.": "Cliquer ici pour voir les vieux messages.", "Failed to upgrade room": "Échec de la mise à niveau du salon", "The room upgrade could not be completed": "La mise à niveau du salon n'a pas pu être effectuée", - "Upgrade this room to version %(version)s": "Mettre à niveau ce salon vers la version %(version)s" + "Upgrade this room to version %(version)s": "Mettre à niveau ce salon vers la version %(version)s", + "Forces the current outbound group session in an encrypted room to be discarded": "Force la session de groupe sortante actuelle dans un salon chiffré à être rejetée", + "Error Discarding Session": "Erreur lors du rejet de la session" } From 77316dddf22396378a3568de3f787ffc40f77fd9 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 31 Aug 2018 13:43:55 +0100 Subject: [PATCH 093/162] js-sdk rc.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8da67cd693..119e7e527f 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "linkifyjs": "^2.1.6", "lodash": "^4.13.1", "lolex": "2.3.2", - "matrix-js-sdk": "0.10.9-rc.1", + "matrix-js-sdk": "0.10.9-rc.2", "optimist": "^0.6.1", "pako": "^1.0.5", "prop-types": "^15.5.8", From 07baaca5728f2ded122fd8584658efc45e1e3c72 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 31 Aug 2018 13:48:27 +0100 Subject: [PATCH 094/162] Prepare changelog for v0.13.3-rc.2 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 026b241d21..2181df17a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +Changes in [0.13.3-rc.2](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.13.3-rc.2) (2018-08-31) +=============================================================================================================== +[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.13.3-rc.1...v0.13.3-rc.2) + + * Update js-sdk to fix exception + Changes in [0.13.3-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.13.3-rc.1) (2018-08-30) =============================================================================================================== [Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.13.2...v0.13.3-rc.1) From e83dca4150a94ac0f9956ca1c395dccedfa03fa3 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 31 Aug 2018 13:48:28 +0100 Subject: [PATCH 095/162] v0.13.3-rc.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 119e7e527f..68b770acd1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "matrix-react-sdk", - "version": "0.13.3-rc.1", + "version": "0.13.3-rc.2", "description": "SDK for matrix.org using React", "author": "matrix.org", "repository": { From a97819e7f5044800643a738e0015c584f7446273 Mon Sep 17 00:00:00 2001 From: Krombel Date: Sun, 2 Sep 2018 17:01:20 +0000 Subject: [PATCH 096/162] Translated using Weblate (German) Currently translated at 100.0% (1249 of 1249 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 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index f50c1180f8..9c4ec3519b 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1264,5 +1264,7 @@ "Click here to see older messages.": "Klicke hier um ältere Nachrichten zu sehen.", "Failed to upgrade room": "Konnte Raum nicht aufrüsten", "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" + "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" } From cae419e304c7fce0e53f746baa39ef37a292fbd2 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Mon, 3 Sep 2018 11:13:56 +0200 Subject: [PATCH 097/162] avoid rerendering when LL is disabled --- src/components/views/rooms/MemberList.js | 52 +++++++++++++++--------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js index b418eef121..d302bee832 100644 --- a/src/components/views/rooms/MemberList.js +++ b/src/components/views/rooms/MemberList.js @@ -33,16 +33,16 @@ module.exports = React.createClass({ getInitialState: function() { this.memberDict = this.getMemberDict(); - const members = this.roomMembers(); - return {loading: true}; + const cli = MatrixClientPeg.get(); + if (cli.hasLazyLoadMembersEnabled()) { + return {loading: true}; + } else { + return this._getMembersState(); + } }, - componentDidMount: async function() { - await this._waitForMembersToLoad(); - this.memberDict = this.getMemberDict(); - const members = this.roomMembers(); - + componentWillMount: function() { const cli = MatrixClientPeg.get(); cli.on("RoomState.members", this.onRoomStateMember); cli.on("RoomMember.name", this.onRoomMemberName); @@ -61,20 +61,14 @@ module.exports = React.createClass({ if (enablePresenceByHsUrl && enablePresenceByHsUrl[hsUrl] !== undefined) { this._showPresence = enablePresenceByHsUrl[hsUrl]; } - // set the state after determining _showPresence to make sure it's - // taken into account while rerendering - this.setState({ - loading: false, - members: members, - filteredJoinedMembers: this._filterMembers(members, 'join'), - filteredInvitedMembers: this._filterMembers(members, 'invite'), + }, - // ideally we'd size this to the page height, but - // in practice I find that a little constraining - truncateAtJoined: INITIAL_LOAD_NUM_MEMBERS, - truncateAtInvited: INITIAL_LOAD_NUM_INVITED, - searchQuery: "", - }); + componentDidMount: async function() { + const cli = MatrixClientPeg.get(); + if (cli.hasLazyLoadMembersEnabled()) { + await this._waitForMembersToLoad(); + this.setState(this._getMembersState()); + } }, componentWillUnmount: function() { @@ -101,6 +95,24 @@ module.exports = React.createClass({ } }, + _getMembersState: function() { + const members = this.roomMembers(); + // set the state after determining _showPresence to make sure it's + // taken into account while rerendering + return { + loading: false, + members: members, + filteredJoinedMembers: this._filterMembers(members, 'join'), + filteredInvitedMembers: this._filterMembers(members, 'invite'), + + // ideally we'd size this to the page height, but + // in practice I find that a little constraining + truncateAtJoined: INITIAL_LOAD_NUM_MEMBERS, + truncateAtInvited: INITIAL_LOAD_NUM_INVITED, + searchQuery: "", + }; + }, + /* onRoomTimeline: function(ev, room, toStartOfTimeline, removed, data) { // ignore anything but real-time updates at the end of the room: From 32d2db5df487a1162bce5a7fe0956748d81a9c54 Mon Sep 17 00:00:00 2001 From: Andri Date: Fri, 31 Aug 2018 07:50:23 +0000 Subject: [PATCH 098/162] Translated using Weblate (Indonesian) Currently translated at 27.3% (341 of 1249 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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/id.json b/src/i18n/strings/id.json index 86605c1d41..0c6ee2afe7 100644 --- a/src/i18n/strings/id.json +++ b/src/i18n/strings/id.json @@ -151,7 +151,7 @@ "Access Token:": "Token Akses:", "Active call (%(roomName)s)": "Panggilan aktif (%(roomName)s)", "Admin": "Admin", - "Admin Tools": "Alat admin", + "Admin Tools": "Peralatan Admin", "VoIP": "VoIP", "Missing Media Permissions, click here to request.": "Tidak ada Izin Media, klik disini untuk meminta.", "No Webcams detected": "Tidak ada Webcam terdeteksi", From f86b4a67593e8b2b0d0b501910ce7ed4327b5482 Mon Sep 17 00:00:00 2001 From: Moo Date: Sun, 2 Sep 2018 22:08:08 +0000 Subject: [PATCH 099/162] Translated using Weblate (Lithuanian) Currently translated at 62.6% (782 of 1249 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 | 113 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 112 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/lt.json b/src/i18n/strings/lt.json index 9657109608..b911458438 100644 --- a/src/i18n/strings/lt.json +++ b/src/i18n/strings/lt.json @@ -671,5 +671,116 @@ "Offline": "Atsijungęs", "Failed to set avatar.": "Nepavyko nustatyti avataro.", "Forget room": "Pamiršti kambarį", - "Share room": "Bendrinti kambarį" + "Share room": "Bendrinti kambarį", + "There are unknown devices in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "Šiame kambaryje yra nepatvirtintų įrenginių: jeigu tęsite jų nepatvirtinę, tuomet kas nors galės slapta klausytis jūsų skambučio.", + "Usage": "Naudojimas", + "Searches DuckDuckGo for results": "Atlieka rezultatų paiešką sistemoje DuckDuckGo", + "To use it, just wait for autocomplete results to load and tab through them.": "Norėdami tai naudoti, tiesiog, palaukite, kol bus įkelti automatiškai užbaigti rezultatai, o tuomet, pereikite per juos naudodami Tab klavišą.", + "%(targetName)s left the room.": "%(targetName)s išėjo iš kambario.", + "%(senderName)s changed the pinned messages for the room.": "%(senderName)s pakeitė prisegtas kambario žinutes.", + "Sorry, your homeserver is too old to participate in this room.": "Atleiskite, jūsų namų serveris yra per senas dalyvauti šiame kambaryje.", + "Please contact your homeserver administrator.": "Prašome susisiekti su savo namų serverio administratoriumi.", + "Enable inline URL previews by default": "Įjungti tiesiogines URL nuorodų peržiūras pagal numatymą", + "Enable URL previews for this room (only affects you)": "Įjungti URL nuorodų peržiūras šiame kambaryje (įtakoja tik jus)", + "Enable URL previews by default for participants in this room": "Įjungti URL nuorodų peržiūras pagal numatymą dalyviams šiame kambaryje", + "Confirm password": "Pakartokite slaptažodį", + "Demote yourself?": "Pažeminti save?", + "Demote": "Pažeminti", + "Share Link to User": "Bendrinti nuorodą su naudotoju", + "Direct chats": "Tiesioginiai pokalbiai", + "The conversation continues here.": "Pokalbis tęsiasi čia.", + "Jump to message": "Pereiti prie žinutės", + "Drop here to demote": "Vilkite čia, norėdami pažeminti", + "Favourites": "Mėgstami", + "This invitation was sent to an email address which is not associated with this account:": "Šis pakvietimas buvo išsiųstas į el. pašto adresą, kuris nėra susietas su šia paskyra:", + "You may wish to login with a different account, or add this email to this account.": "Jūs galite pageidauti prisijungti, naudojant kitą paskyrą, arba pridėti šį el. paštą į šią paskyrą.", + "You have been kicked from %(roomName)s by %(userName)s.": "%(userName)s išmetė jus iš %(roomName)s.", + "You have been kicked from this room by %(userName)s.": "%(userName)s išmetė jus iš šio kambario.", + "You have been banned from %(roomName)s by %(userName)s.": "%(userName)s užblokavo jus kambaryje %(roomName)s.", + "You have been banned from this room by %(userName)s.": "%(userName)s užblokavo jus šiame kambaryje.", + "To change the room's name, you must be a": "Norėdami pakeisti kambario pavadinimą, privalote būti", + "To change the room's main address, you must be a": "Norėdami pakeisti pagrindinį kambario adresą, privalote būti", + "To change the room's history visibility, you must be a": "Norėdami pakeisti kambario istorijos matomumą, privalote būti", + "To change the permissions in the room, you must be a": "Norėdami pakeisti leidimus kambaryje, privalote būti", + "To modify widgets in the room, you must be a": "Norėdami modifikuoti valdiklius šiame kambaryje, privalote būti", + "The visibility of existing history will be unchanged": "Esamos istorijos matomumas išliks nepakeistas", + "End-to-end encryption is in beta and may not be reliable": "Ištisinis šifravimas yra beta versijoje ir gali būti nepatikimas", + "You should not yet trust it to secure data": "Kol kas neturėtumėte pasitikėti, kad jis apsaugos jūsų duomenis", + "Encryption is enabled in this room": "Šifravimas šiame kambaryje yra įjungtas", + "Encryption is not enabled in this room": "Šifravimas šiame kambaryje nėra įjungtas", + "To kick users, you must be a": "Norėdami išmesti naudotojus, privalote būti", + "To ban users, you must be a": "Norėdami užblokuoti naudotojus, privalote būti", + "Banned users": "Užblokuoti naudotojai", + "This room is not accessible by remote Matrix servers": "Šis kambarys nėra pasiekiamas nuotoliniams Matrix serveriams", + "Who can read history?": "Kas gali skaityti istoriją?", + "Room version number: ": "Kambario versijos numeris: ", + "There is a known vulnerability affecting this room.": "Yra žinomas pažeidžiamumas, kuris paveikia šį kambarį.", + "Only room administrators will see this warning": "Šį įspėjimą matys tik kambario administratoriai", + "Remote addresses for this room:": "Nuotoliniai šio kambario adresai:", + "You have enabled URL previews by default.": "Jūs esate įjungę URL nuorodų peržiūras pagal numatymą.", + "You have disabled URL previews by default.": "Jūs esate išjungę URL nuorodų peržiūras pagal numatymą.", + "URL previews are enabled by default for participants in this room.": "URL nuorodų peržiūros yra įjungtos pagal numatymą šio kambario dalyviams.", + "URL previews are disabled by default for participants in this room.": "URL nuorodų peržiūros yra išjungtos pagal numatymą šio kambario dalyviams.", + "Invalid file%(extra)s": "Neteisingas failas %(extra)s", + "This room is a continuation of another conversation.": "Šis kambarys yra kito pokalbio pratęsimas.", + "Click here to see older messages.": "Spustelėkite čia, norėdami matyti senesnes žinutes.", + "This Home Server would like to make sure you are not a robot": "Šis namų serveris norėtų įsitikinti, kad nesate robotas", + "Token incorrect": "Neteisingas prieigos raktas", + "Sign in with": "Prisijungti naudojant", + "Sign in": "Prisijungti", + "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Jeigu nenurodysite savo el. pašto adreso, negalėsite atstatyti savo slaptažodį. Ar esate tikri?", + "Home server URL": "Namų serverio URL", + "Identity server URL": "Tapatybės serverio URL", + "Please contact your service administrator to continue using the service.": "Norėdami tęsti naudotis paslauga, susisiekite su savo paslaugos administratoriumi.", + "Reload widget": "Įkelti valdiklį iš naujo", + "Picture": "Paveikslas", + "Create new room": "Sukurti naują kambarį", + "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ą", + "collapse": "suskleisti", + "expand": "išskleisti", + "Room directory": "Kambarių katalogas", + "Start chat": "Pradėti pokalbį", + "ex. @bob:example.com": "pvz., @jonas:example.com", + "Add User": "Pridėti naudotoją", + "Matrix ID": "Matrix ID", + "email address": "el. pašto adresas", + "You have entered an invalid address.": "Įvedėte neteisingą adresą.", + "Try using one of the following valid address types: %(validTypesList)s.": "Pabandykite naudoti vieną iš šių teisingų adreso tipų: %(validTypesList)s.", + "Logs sent": "Žurnalai išsiųsti", + "Failed to send logs: ": "Nepavyko išsiųsti žurnalų: ", + "Submit debug logs": "Pateikti derinimo žurnalus", + "Start new chat": "Pradėti naują pokalbį", + "Click on the button below to start chatting!": "Norėdami pradėti bendravimą, paspauskite ant žemiau esančio mygtuko!", + "Create Community": "Sukurti bendruomenę", + "Community Name": "Bendruomenės pavadinimas", + "Example": "Pavyzdys", + "Community ID": "Bendruomenės ID", + "example": "pavyzdys", + "Create": "Sukurti", + "Create Room": "Sukurti kambarį", + "Room name (optional)": "Kambario pavadinimas (nebūtina)", + "Advanced options": "Išplėstiniai parametrai", + "This setting cannot be changed later!": "Šio nustatymo vėliau nebeįmanoma bus pakeisti!", + "Unknown error": "Nežinoma klaida", + "Incorrect password": "Neteisingas slaptažodis", + "To continue, please enter your password:": "Norėdami tęsti, įveskite savo slaptažodį:", + "password": "slaptažodis", + "Device name": "Įrenginio pavadinimas", + "Device key": "Įrenginio raktas", + "An error has occurred.": "Įvyko klaida.", + "Ignore request": "Nepaisyti užklausos", + "Loading device info...": "Įkeliama įrenginio informacija...", + "Failed to upgrade room": "Nepavyko atnaujinti kambarį", + "The room upgrade could not be completed": "Nepavyko užbaigti kambario naujinimo", + "Sign out": "Atsijungti", + "Log out and remove encryption keys?": "Atsijungti ir pašalinti šifravimo raktus?", + "Send Logs": "Siųsti žurnalus", + "Refresh": "Įkelti iš naujo", + "Unable to restore session": "Nepavyko atkurti seanso", + "Invalid Email Address": "Neteisingas el. pašto adresas" } From a2bb08f58e3462a2bb5c3816c5cbcc46e46743e6 Mon Sep 17 00:00:00 2001 From: Markel Date: Mon, 3 Sep 2018 00:17:02 +0000 Subject: [PATCH 100/162] Translated using Weblate (Spanish) Currently translated at 98.8% (1235 of 1249 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 | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index 9a23a8368b..c427bd54ec 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -620,7 +620,7 @@ "Messages containing my display name": "Mensajes que contienen mi nombre", "Messages in one-to-one chats": "Mensajes en chats uno a uno", "Unavailable": "No disponible", - "View Decrypted Source": "Ver Fuente Descifrada", + "View Decrypted Source": "Ver fuente descifrada", "Failed to update keywords": "Error al actualizar las palabras clave", "Notes:": "Notas:", "remove %(name)s from the directory.": "retirar %(name)s del directorio.", @@ -702,7 +702,7 @@ "Reply": "Responder", "Show message in desktop notification": "Mostrar mensaje en la notificación del escritorio", "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.": "Los registros de depuración contienen datos de uso de la aplicación como nombre de usuario, ID o alias de las salas o grupos que hayas visitado (y nombres de usuario de otros usuarios). No contienen mensajes.", - "Unhide Preview": "Mostrar Vista Previa", + "Unhide Preview": "Mostrar vista previa", "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.", @@ -729,7 +729,7 @@ "View Community": "Ver la comunidad", "%(count)s Members|one": "%(count)s miembro", "Developer Tools": "Herramientas de Desarrollo", - "View Source": "Ver Fuente", + "View Source": "Ver fuente", "Event Content": "Contenido del Evento", "Unable to fetch notification target list": "No se puede obtener la lista de objetivos de notificación", "Quote": "Citar", @@ -1109,7 +1109,7 @@ "\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contiene dispositivos que no ha visto antes.", "Unknown devices": "Dispositivos desconocidos", "Unable to reject invite": "No se pudo rechazar la invitación", - "Share Message": "Compartir Mensaje", + "Share Message": "Compartir mensaje", "Collapse Reply Thread": "Colapsar Hilo de Respuestas", "Topic": "Tema", "Make this room private": "Hacer privada esta sala", @@ -1121,13 +1121,13 @@ "Which rooms would you like to add to this summary?": "¿Cuáles salas desea agregar a este resumen?", "Add to summary": "Agregar a resumen", "Failed to add the following rooms to the summary of %(groupId)s:": "Falló la agregación de las salas siguientes al resumen de %(groupId)s:", - "Add a Room": "Agregar una Sala", + "Add a Room": "Agregar una sala", "Failed to remove the room from the summary of %(groupId)s": "Falló la eliminación de la sala del resumen de %(groupId)s", "The room '%(roomName)s' could not be removed from the summary.": "La sala '%(roomName)s' no se pudo eliminar del resumen.", "Add users to the community summary": "Agregar usuario al resumen de la comunidad", "Who would you like to add to this summary?": "¿A quién le gustaría agregar a este resumen?", "Failed to add the following users to the summary of %(groupId)s:": "Falló la adición de los usuarios siguientes al resumen de %(groupId)s:", - "Add a User": "Agregar un Usuario", + "Add a User": "Agregar un usuario", "Failed to remove a user from the summary of %(groupId)s": "Falló la eliminación de un usuario del resumen de %(groupId)s", "The user '%(displayName)s' could not be removed from the summary.": "No se pudo eliminar al usuario '%(displayName)s' del resumen.", "Failed to upload image": "Falló la subida de la imagen", @@ -1137,11 +1137,11 @@ "Leave Community": "Abandonar Comunidad", "Leave %(groupName)s?": "¿Abandonar %(groupName)s?", "Unable to leave community": "No se pudo abandonar la comunidad", - "Community Settings": "Configuración de la Comunidad", + "Community Settings": "Configuración de la comunidad", "Changes made to your community name and avatar might not be seen by other users for up to 30 minutes.": "Las modificaciones realizadas al nombre y avatar de la comunidad pueden no mostrarse a otros usuarios hasta dentro de 30 minutos.", "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "Estas salas se muestran a los miembros de la comunidad en la página de la misma. Los miembros pueden unirse a las salas pulsando sobre ellas.", - "Featured Rooms:": "Salas Destacadas:", - "Featured Users:": "Usuarios Destacados:", + "Featured Rooms:": "Salas destacadas:", + "Featured Users:": "Usuarios destacados:", "%(inviter)s has invited you to join this community": "%(inviter)s le ha invitado a unirse a esta comunidad", "Join this community": "Unirse a esta comunidad", "Leave this community": "Abandonar esta comunidad", From 3e227bb40ff8aab7715ae8539de8e648bd33b4a2 Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 3 Sep 2018 14:14:24 +0100 Subject: [PATCH 101/162] released matrix-js-sdk --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 68b770acd1..a991b4cae8 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "linkifyjs": "^2.1.6", "lodash": "^4.13.1", "lolex": "2.3.2", - "matrix-js-sdk": "0.10.9-rc.2", + "matrix-js-sdk": "0.10.9", "optimist": "^0.6.1", "pako": "^1.0.5", "prop-types": "^15.5.8", From c87406c1b2f9294cd392434bd9ca480b8bb6ddfa Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 3 Sep 2018 14:26:00 +0100 Subject: [PATCH 102/162] Prepare changelog for v0.13.3 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2181df17a9..5298e1cd63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +Changes in [0.13.3](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.13.3) (2018-09-03) +===================================================================================================== +[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.13.3-rc.2...v0.13.3) + + * No changes since rc.2 + Changes in [0.13.3-rc.2](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.13.3-rc.2) (2018-08-31) =============================================================================================================== [Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.13.3-rc.1...v0.13.3-rc.2) From 4b45c17f59d6320493c1c3c0884f7497bd3487ea Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 3 Sep 2018 14:26:00 +0100 Subject: [PATCH 103/162] v0.13.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a991b4cae8..fb8acbecf7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "matrix-react-sdk", - "version": "0.13.3-rc.2", + "version": "0.13.3", "description": "SDK for matrix.org using React", "author": "matrix.org", "repository": { From 0acb403d5535570428b4147a3ce4f4a3b47a151d Mon Sep 17 00:00:00 2001 From: csybr Date: Mon, 3 Sep 2018 13:18:59 +0000 Subject: [PATCH 104/162] Translated using Weblate (Norwegian Nynorsk) Currently translated at 97.6% (1220 of 1249 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nn/ --- src/i18n/strings/nn.json | 50 ++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/i18n/strings/nn.json b/src/i18n/strings/nn.json index c1174dcd5a..c6682b03aa 100644 --- a/src/i18n/strings/nn.json +++ b/src/i18n/strings/nn.json @@ -69,15 +69,15 @@ "Riot does not have permission to send you notifications - please check your browser settings": "Riot har ikkje tillating til å senda deg varsel - ver venleg og sjekk nettlesarinnstillingane dine", "Riot was not given permission to send notifications - please try again": "Riot fekk ikkje tillating til å senda varsel - ver venleg og prøv igjen", "Unable to enable Notifications": "Klarte ikkje å skru på Varsel", - "This email address was not found": "Denne emailadressa var ikkje funne", - "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Emailadressa di ser ikkje ut til å vera tilknytta ein Matrix-ID på denne heimtenaren.", + "This email address was not found": "Denne epostadressa var ikkje funnen", + "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Epostadressa di ser ikkje ut til å vera tilknytta ein Matrix-ID på denne heimtenaren.", "Default": "Utgangspunktinnstilling", "Restricted": "Avgrensa", "Moderator": "Moderator", "Admin": "Administrator", "Start a chat": "Start ei samtale", "Who would you like to communicate with?": "Kven vil du koma i kontakt med?", - "Email, name or matrix ID": "Email, namn eller Matrix-ID", + "Email, name or matrix ID": "Epost, namn eller Matrix-ID", "Start Chat": "Start ei Samtale", "Invite new room members": "Byd nye rommedlemer inn", "Who would you like to add to this room?": "Kven vil du leggja til i rommet?", @@ -120,9 +120,9 @@ "Unignored user": "Avoversedd brukar", "You are no longer ignoring %(userId)s": "Du overser ikkje %(userId)s no lenger", "Define the power level of a user": "Set ein brukar si makthøgd", - "This email address is already in use": "Denne emailadressa er allereie i bruk", + "This email address is already in use": "Denne epostadressa er allereie i bruk", "The platform you're on": "Platformen du er på", - "Failed to verify email address: make sure you clicked the link in the email": "Fekk ikkje til å stadfesta emailadressa: sjå til at du klikka på den rette lenkja i emailen", + "Failed to verify email address: make sure you clicked the link in the email": "Fekk ikkje til å stadfesta epostadressa: sjå til at du klikka på den rette lenkja i eposten", "Your identity server's URL": "Din identitetstenar si nettadresse", "Every page you use in the app": "Alle sider du brukar i æppen", "e.g. ": "t.d. ", @@ -262,7 +262,7 @@ "Passwords can't be empty": "Passordsfelta kan ikkje vera tomme", "Warning!": "Åtvaring!", "Continue": "Gå fram", - "Do you want to set an email address?": "Vil du setja ei emailadresse?", + "Do you want to set an email address?": "Vil du setja ei epostadresse?", "Current password": "Noverande passord", "Password": "Passord", "New Password": "Nytt Passord", @@ -278,8 +278,8 @@ "Last seen": "Sist sedd", "Select devices": "Vel einingar", "Failed to set display name": "Fekk ikkje til å setja visingsnamn", - "Error saving email notification preferences": "Klarte ikkje å lagra foretrukne emailvarselinnstillingar", - "An error occurred whilst saving your email notification preferences.": "Noko gjekk gale med lagringa av dine foretrukne emailvarselinstillingar.", + "Error saving email notification preferences": "Klarte ikkje å lagra foretrukne epostvarselinnstillingar", + "An error occurred whilst saving your email notification preferences.": "Noko gjekk gale med lagringa av dine foretrukne epostvarselinstillingar.", "Keywords": "Nykelord", "Enter keywords separated by a comma:": "Skriv inn nykelord med komma imellom:", "OK": "Greitt", @@ -291,8 +291,8 @@ "Notify me for anything else": "Varsl meg for kva som helst anna", "Enable notifications for this account": "Skru varsel på for denne brukaren", "All notifications are currently disabled for all targets.": "Alle varsel er for augeblunket skrudd av for alle mål.", - "Add an email address above to configure email notifications": "Legg til ein emailadresse i feltet over for å endra emailvarselinnstillingar", - "Enable email notifications": "Skru emailvarsel på", + "Add an email address above to configure email notifications": "Legg til ein epostadresse i feltet over for å endra epostvarselinnstillingar", + "Enable email notifications": "Skru epostvarsel på", "Notifications on the following keywords follow rules which can’t be displayed here:": "Varsel på fylgjande nykelord følgjer reglar som ikkje kan visast her:", "Unable to fetch notification target list": "Klarte ikkje å henta varselmållista", "Notification targets": "Varselmål", @@ -451,8 +451,8 @@ "You have no historical rooms": "Du har inkje historiske rom", "Historical": "Historiske", "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Klarte ikkje å forsikra at adressa som denne innbydinga er send til samsvarar med den som er tilknytta brukaren din.", - "This invitation was sent to an email address which is not associated with this account:": "Denne invitasjonen er send til ei emailadressa som ikkje er tilknytta denne brukaren:", - "You may wish to login with a different account, or add this email to this account.": "Kanskje du ynskjer å logga inn med ein anna brukar, eller leggja til denne emailen til denne brukaren.", + "This invitation was sent to an email address which is not associated with this account:": "Denne invitasjonen er send til ei epostadressa som ikkje er tilknytta denne brukaren:", + "You may wish to login with a different account, or add this email to this account.": "Kanskje du ynskjer å logga inn med ein annan brukar, eller leggja til denne eposten til denne brukaren.", "You have been invited to join this room by %(inviterName)s": "Du vart boden inn i dette rommet av %(inviterName)s", "Would you like to accept or decline this invitation?": "Vil du seia ja eller nei til denne innbydinga?", "Reason: %(reasonText)s": "Grunnlag: %(reasonText)s", @@ -587,18 +587,18 @@ "This Home Server would like to make sure you are not a robot": "Denne heimtenaren ynskjer å forsikra seg om at du ikkje er ein robot", "Sign in with CAS": "Logg inn med CAS", "This allows you to use this app with an existing Matrix account on a different home server.": "Dette tillèt deg å bruka denne æppen med ein Matrixbrukar som allereie finst på ein annan heimtenar.", - "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Du kan i tillegg setja ein eigen identitetstenar, men dette hindrar som regel samhandling med brukarar som brukar emailadresse.", + "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Du kan i tillegg setja ein eigen identitetstenar, men dette hindrar som regel samhandling med brukarar som brukar epostadresse.", "Dismiss": "Avvis", "To continue, please enter your password.": "For å gå fram, ver venleg og skriv passordet ditt inn.", "Password:": "Passord:", - "An email has been sent to %(emailAddress)s": "En email vart send til %(emailAddress)s", - "Please check your email to continue registration.": "Ver venleg og sjekk emailen din for å gå vidare med påmeldinga.", + "An email has been sent to %(emailAddress)s": "En epost vart send til %(emailAddress)s", + "Please check your email to continue registration.": "Ver venleg og sjekk eposten din for å gå vidare med påmeldinga.", "A text message has been sent to %(msisdn)s": "Ei tekstmelding vart send til %(msisdn)s", "Please enter the code it contains:": "Ver venleg og skriv koden den inneheld inn:", "Code": "Kode", "Start authentication": "Byrj godkjenning", "powered by Matrix": "Matrixdriven", - "The email field must not be blank.": "Emailfeltet kan ikkje vera tomt.", + "The email field must not be blank.": "Epostfeltet kan ikkje vera tomt.", "The user name field must not be blank.": "Brukarnamnfeltet kan ikkje vera tomt.", "The phone number field must not be blank.": "Telefonnummerfeltet kan ikkje vera tomt.", "The password field must not be blank.": "Passordfeltet kan ikkje vera tomt.", @@ -608,10 +608,10 @@ "Forgot your password?": "Gløymt passordet ditt?", "%(serverName)s Matrix ID": "%(serverName)s Matrix-ID", "Sign in with": "Logg inn med", - "Email address": "Emailadresse", + "Email address": "Epostadresse", "Sign in": "Logg inn", - "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Viss du ikkje seier kva emailadresse du vil bruka vil du ikkje kunna attendestille passordet ditt. Er du sikker?", - "Email address (optional)": "Emailadresse (valfritt)", + "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Viss du ikkje seier kva epostadresse du vil bruka vil du ikkje kunna attendestille passordet ditt. Er du sikker?", + "Email address (optional)": "Epostadresse (valfritt)", "You are registering with %(SelectedTeamName)s": "Du melder deg inn med %(SelectedTeamName)s", "Mobile phone number (optional)": "Mobiltelefonnummer (valfritt)", "Register": "Meld deg inn", @@ -738,7 +738,7 @@ "Add User": "Legg Brukar til", "Matrix ID": "Matrix-ID", "Matrix Room ID": "Matrixrom-ID", - "email address": "emailadresse", + "email address": "epostadresse", "You have entered an invalid address.": "Du har skrive ei ugangbar adresse inn.", "Try using one of the following valid address types: %(validTypesList)s.": "Prøv å bruka ein av dei fylgjande gangbare adressesortane: %(validTypesList)s.", "Preparing to send logs": "Førebur loggsending", @@ -781,7 +781,7 @@ "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.": "Dette gjer at brukaren din vert ubrukeleg til evig tid. Du kjem ikkje til å kunna logga inn, og ingen andre kjem til å kunna melde seg inn med den gamle brukar-IDen din. Brukaren din forlét òg alle rom han er i, og brukardetaljane dine vil verta fjerna frå identitetstenaren. Denne handlinga kan ikkje gjerast om.", "Deactivate Account": "Avliv Brukaren", "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.": "Å avliva brukaren din gjer i utgangspunktet ikkje at vi gløymer meldingane du har send. Viss du vil at vi skal gløyma meldingane dine, ver venleg og kryss av i firkanten under.", - "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.": "Meldingssynlegheit på Matrix liknar på email. At vi gløymer meldingane dine tyder at meldingar du har send ikkje vil verta delt med nye, ikkje-innmeldte brukarar, men brukare som er meldt på som allereie har tilgang til desse meldingane vil fortsatt kunne sjå kopien deira.", + "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.": "Meldingssynlegheit på Matrix liknar på epost. At vi gløymer meldingane dine tyder at meldingar du har send ikkje vil verta delt med nye, ikkje-innmeldte brukarar, men brukare som er meldt på som allereie har tilgang til desse meldingane vil fortsatt kunne sjå kopien deira.", "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)": "Ver venleg og gløym alle meldingane eg har send når brukaren min vert avliven (Åtvaring: dette gjer at framtidige brukarar ikkje fær eit fullstendig oversyn av samtalene)", "To continue, please enter your password:": "For å gå fram, ver venleg og skriv passordet ditt inn:", "password": "passord", @@ -817,11 +817,11 @@ "We encountered an error trying to restore your previous session.": "Noko gjekk gale med framhentinga av den førre øykta di.", "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.": "Viss du har bruka ei nyare utgåve av Riot før, kan det henda at øykta di ikkje passar inn i denne utgåva. Lukk dette vindauget og gå attende til den nyare utgåva.", "Clearing your browser's storage may fix the problem, but will sign you out and cause any encrypted chat history to become unreadable.": "Det kan henda at å tømma nettlesarlageret rettar opp i det, men det loggar deg ut og kan gjera den krypterte pratehistoria uleseleg.", - "Invalid Email Address": "Ugangbar Emailadresse", - "This doesn't appear to be a valid email address": "Det ser ikkje ut til at emailadressa er gangbar", + "Invalid Email Address": "Ugangbar Epostadresse", + "This doesn't appear to be a valid email address": "Det ser ikkje ut til at epostadressa er gangbar", "Verification Pending": "Ventar på Godkjenning", - "Please check your email and click on the link it contains. Once this is done, click continue.": "Ver venleg og sjekk emailen din og klikk på lenkja du har fått. Når det er gjort, klikk gå fram.", - "Unable to add email address": "Klarte ikkje å leggja emailadressa til", + "Please check your email and click on the link it contains. Once this is done, click continue.": "Ver venleg og sjekk eposten din og klikk på lenkja du har fått. Når det er gjort, klikk gå fram.", + "Unable to add email address": "Klarte ikkje å leggja epostadressa til", "Unable to verify email address.": "Klarte ikkje å stadfesta emailadressa.", "This will allow you to reset your password and receive notifications.": "Dette tillèt deg å attendestilla passordet ditt og å få varsel.", "Skip": "Hopp over", From c12abab52d6b4f1be95084fbb4b80578395f480a Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 4 Sep 2018 13:03:55 +0200 Subject: [PATCH 105/162] wait until rooms are available as accountData get processed before rooms, during initial sync or loading sync from cache, accountData gets emitted before any room is available, hence our patching wasn't doing anything. Just as well, because it would have failed (see next commits) --- src/utils/DMRoomMap.js | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/utils/DMRoomMap.js b/src/utils/DMRoomMap.js index 0c5e696c5f..789970c744 100644 --- a/src/utils/DMRoomMap.js +++ b/src/utils/DMRoomMap.js @@ -70,13 +70,13 @@ export default class DMRoomMap { this.matrixClient.removeListener("accountData", this._onAccountData); } - _onAccountData(ev) { + async _onAccountData(ev) { if (ev.getType() == 'm.direct') { const userToRooms = this.matrixClient.getAccountData('m.direct').getContent() || {}; const myUserId = this.matrixClient.getUserId(); const selfDMs = userToRooms[myUserId]; if (selfDMs && selfDMs.length) { - const neededPatching = this._patchUpSelfDMs(userToRooms); + const neededPatching = await this._patchUpSelfDMs(userToRooms); // to avoid multiple devices fighting to correct // the account data, only try to send the corrected // version once. @@ -94,10 +94,13 @@ export default class DMRoomMap { * with ourself, not the other user. Fix it by guessing the other user and * modifying userToRooms */ - _patchUpSelfDMs(userToRooms) { + async _patchUpSelfDMs(userToRooms) { const myUserId = this.matrixClient.getUserId(); const selfRoomIds = userToRooms[myUserId]; if (selfRoomIds) { + // account data gets emitted before the rooms are available + // so wait for the sync to be ready and then read the rooms. + await this._waitForSyncReady(); // any self-chats that should not be self-chats? const guessedUserIdsThatChanged = selfRoomIds.map((roomId) => { const room = this.matrixClient.getRoom(roomId); @@ -135,6 +138,19 @@ export default class DMRoomMap { } } + _waitForSyncReady() { + return new Promise((resolve) => { + const syncState = this.matrixClient.getSyncState(); + if (syncState === 'PREPARED' || syncState === 'SYNCING') { + resolve(); + } else { + // if we already got an accountData event, + // next sync should not be ERROR, so just resolve + this.matrixClient.once('sync', () => resolve()); + } + }); + } + getDMRoomsForUserId(userId) { // Here, we return the empty list if there are no rooms, // since the number of conversations you have with this user is zero. From 245dfbf957cf3705c529bb50445e665107f5659f Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 4 Sep 2018 13:06:27 +0200 Subject: [PATCH 106/162] only put NON-guessed rooms in self-chats --- src/utils/DMRoomMap.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/DMRoomMap.js b/src/utils/DMRoomMap.js index 789970c744..56832a1a75 100644 --- a/src/utils/DMRoomMap.js +++ b/src/utils/DMRoomMap.js @@ -117,7 +117,7 @@ export default class DMRoomMap { return false; } userToRooms[myUserId] = selfRoomIds.filter((roomId) => { - return guessedUserIdsThatChanged + return !guessedUserIdsThatChanged .some((ids) => ids.roomId === roomId); }); From 441036ff93f546292231833e7ec068171b2d2469 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 4 Sep 2018 13:07:24 +0200 Subject: [PATCH 107/162] remove duplicates from room lists --- src/ArrayUtils.js | 29 +++++++++++++++++++++++++++++ src/utils/DMRoomMap.js | 14 +++++--------- 2 files changed, 34 insertions(+), 9 deletions(-) create mode 100644 src/ArrayUtils.js diff --git a/src/ArrayUtils.js b/src/ArrayUtils.js new file mode 100644 index 0000000000..850fcc40f9 --- /dev/null +++ b/src/ArrayUtils.js @@ -0,0 +1,29 @@ +/* +Copyright 2018 New Vector + +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. +*/ + +/** + * creates a new array with only the unique values of the given array + * @return {array} the deduplicated array + */ +export function unique(arr) { + const cpy = []; + arr.forEach((el) => { + if (!cpy.includes(el)) { + cpy.push(el); + } + }); + return cpy; +}; diff --git a/src/utils/DMRoomMap.js b/src/utils/DMRoomMap.js index 56832a1a75..cb76610e4d 100644 --- a/src/utils/DMRoomMap.js +++ b/src/utils/DMRoomMap.js @@ -15,6 +15,7 @@ limitations under the License. */ import MatrixClientPeg from '../MatrixClientPeg'; +import {unique} from '../ArrayUtils'; /** * Class that takes a Matrix Client and flips the m.direct map @@ -120,19 +121,14 @@ export default class DMRoomMap { return !guessedUserIdsThatChanged .some((ids) => ids.roomId === roomId); }); - guessedUserIdsThatChanged.forEach(({userId, roomId}) => { - if (!userId) { - // if not able to guess the other user (unlikely) - // still put it in the map so the room stays marked - // as a DM, we just wont be able to show an avatar. - userId = ""; - } let roomIds = userToRooms[userId]; if (!roomIds) { - roomIds = userToRooms[userId] = []; + userToRooms[userId] = [roomId]; + } else { + roomIds.push(roomId); + userToRooms[userId] = unique(roomIds); } - roomIds.push(roomId); }); return true; } From 6c7cb380e06c4cfead5c916ac8f3089e7ecee4c9 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 4 Sep 2018 13:07:45 +0200 Subject: [PATCH 108/162] add warning in console when patching rooms, so it appears in rage shakes --- src/utils/DMRoomMap.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/utils/DMRoomMap.js b/src/utils/DMRoomMap.js index cb76610e4d..637df4fd0f 100644 --- a/src/utils/DMRoomMap.js +++ b/src/utils/DMRoomMap.js @@ -81,6 +81,8 @@ export default class DMRoomMap { // to avoid multiple devices fighting to correct // the account data, only try to send the corrected // version once. + console.warn(`Invalid m.direct account data detected ` + + `(self-chats that shouldn't be), patching it up.`); if (neededPatching && !this._hasSentOutPatchDirectAccountDataPatch) { this._hasSentOutPatchDirectAccountDataPatch = true; this.matrixClient.setAccountData('m.direct', userToRooms); From abd9d3a11e0b2db2722d2551f2b53ebad2549f40 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 4 Sep 2018 13:55:29 +0200 Subject: [PATCH 109/162] fix lint --- src/ArrayUtils.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ArrayUtils.js b/src/ArrayUtils.js index 850fcc40f9..ca1aea9b5b 100644 --- a/src/ArrayUtils.js +++ b/src/ArrayUtils.js @@ -16,6 +16,7 @@ limitations under the License. /** * creates a new array with only the unique values of the given array + * @param {array} arr the array to deduplicate * @return {array} the deduplicated array */ export function unique(arr) { @@ -26,4 +27,4 @@ export function unique(arr) { } }); return cpy; -}; +} From 5c395e4db737de08870976860fe95be455433bd6 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 4 Sep 2018 14:26:36 +0200 Subject: [PATCH 110/162] wait for room creation, to go to home page in case of failure --- src/components/structures/MatrixChat.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index 4bcfd77ff7..7a13067976 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -1132,7 +1132,7 @@ export default React.createClass({ * * @param {string} teamToken */ - _onLoggedIn: function(teamToken) { + _onLoggedIn: async function(teamToken) { this.setState({ view: VIEWS.LOGGED_IN, }); @@ -1145,12 +1145,17 @@ export default React.createClass({ this._is_registered = false; if (this.props.config.welcomeUserId && getCurrentLanguage().startsWith("en")) { - createRoom({ + const roomId = await createRoom({ dmUserId: this.props.config.welcomeUserId, // Only view the welcome user if we're NOT looking at a room andView: !this.state.currentRoomId, }); - return; + // if successful, return because we're already + // viewing the welcomeUserId room + // else, if failed, fall through to view_home_page + if (roomId) { + return; + } } // The user has just logged in after registering dis.dispatch({action: 'view_home_page'}); From be66f98381f50941b15bf67e7e038c597bed39b0 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 4 Sep 2018 15:35:44 +0200 Subject: [PATCH 111/162] use room method for checking power levels as it is always are of the syncing user's membership in case of lazy loading members --- src/components/views/rooms/MessageComposer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/views/rooms/MessageComposer.js b/src/components/views/rooms/MessageComposer.js index dacd433e3e..ad4a1dfafe 100644 --- a/src/components/views/rooms/MessageComposer.js +++ b/src/components/views/rooms/MessageComposer.js @@ -309,8 +309,8 @@ export default class MessageComposer extends React.Component {
; } - const canSendMessages = !this.state.tombstone && this.props.room.currentState.maySendMessage( - MatrixClientPeg.get().credentials.userId); + const canSendMessages = !this.state.tombstone && + this.props.room.maySendMessage(); if (canSendMessages) { // This also currently includes the call buttons. Really we should From e171296d51aeee49467622ead79f65cb9d8260e8 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 4 Sep 2018 16:00:40 +0200 Subject: [PATCH 112/162] patch self-chats lazily in favor of awaiting sync state --- src/utils/DMRoomMap.js | 71 ++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 41 deletions(-) diff --git a/src/utils/DMRoomMap.js b/src/utils/DMRoomMap.js index 637df4fd0f..453d6c89b0 100644 --- a/src/utils/DMRoomMap.js +++ b/src/utils/DMRoomMap.js @@ -37,11 +37,8 @@ export default class DMRoomMap { this._onAccountData = this._onAccountData.bind(this); const mDirectEvent = matrixClient.getAccountData('m.direct'); - if (!mDirectEvent) { - this.userToRooms = {}; - } else { - this.userToRooms = mDirectEvent.getContent(); - } + this.mDirectEvent = mDirectEvent ? mDirectEvent.getContent() : {}; + this.userToRooms = null; } /** @@ -71,25 +68,11 @@ export default class DMRoomMap { this.matrixClient.removeListener("accountData", this._onAccountData); } - async _onAccountData(ev) { + _onAccountData(ev) { if (ev.getType() == 'm.direct') { - const userToRooms = this.matrixClient.getAccountData('m.direct').getContent() || {}; - const myUserId = this.matrixClient.getUserId(); - const selfDMs = userToRooms[myUserId]; - if (selfDMs && selfDMs.length) { - const neededPatching = await this._patchUpSelfDMs(userToRooms); - // to avoid multiple devices fighting to correct - // the account data, only try to send the corrected - // version once. - console.warn(`Invalid m.direct account data detected ` + - `(self-chats that shouldn't be), patching it up.`); - if (neededPatching && !this._hasSentOutPatchDirectAccountDataPatch) { - this._hasSentOutPatchDirectAccountDataPatch = true; - this.matrixClient.setAccountData('m.direct', userToRooms); - } - } - this.userToRooms = userToRooms; - this._populateRoomToUser(); + this.mDirectEvent = this.matrixClient.getAccountData('m.direct').getContent() || {}; + this.userToRooms = null; + this.roomToUser = null; } } /** @@ -97,13 +80,10 @@ export default class DMRoomMap { * with ourself, not the other user. Fix it by guessing the other user and * modifying userToRooms */ - async _patchUpSelfDMs(userToRooms) { + _patchUpSelfDMs(userToRooms) { const myUserId = this.matrixClient.getUserId(); const selfRoomIds = userToRooms[myUserId]; if (selfRoomIds) { - // account data gets emitted before the rooms are available - // so wait for the sync to be ready and then read the rooms. - await this._waitForSyncReady(); // any self-chats that should not be self-chats? const guessedUserIdsThatChanged = selfRoomIds.map((roomId) => { const room = this.matrixClient.getRoom(roomId); @@ -136,19 +116,6 @@ export default class DMRoomMap { } } - _waitForSyncReady() { - return new Promise((resolve) => { - const syncState = this.matrixClient.getSyncState(); - if (syncState === 'PREPARED' || syncState === 'SYNCING') { - resolve(); - } else { - // if we already got an accountData event, - // next sync should not be ERROR, so just resolve - this.matrixClient.once('sync', () => resolve()); - } - }); - } - getDMRoomsForUserId(userId) { // Here, we return the empty list if there are no rooms, // since the number of conversations you have with this user is zero. @@ -177,9 +144,31 @@ export default class DMRoomMap { return this.roomToUser[roomId]; } + _getUserToRooms() { + if (!this.userToRooms) { + const userToRooms = this.mDirectEvent; + const myUserId = this.matrixClient.getUserId(); + const selfDMs = userToRooms[myUserId]; + if (selfDMs && selfDMs.length) { + const neededPatching = this._patchUpSelfDMs(userToRooms); + // to avoid multiple devices fighting to correct + // the account data, only try to send the corrected + // version once. + console.warn(`Invalid m.direct account data detected ` + + `(self-chats that shouldn't be), patching it up.`); + if (neededPatching && !this._hasSentOutPatchDirectAccountDataPatch) { + this._hasSentOutPatchDirectAccountDataPatch = true; + this.matrixClient.setAccountData('m.direct', userToRooms); + } + } + this.userToRooms = userToRooms; + } + return this.userToRooms; + } + _populateRoomToUser() { this.roomToUser = {}; - for (const user of Object.keys(this.userToRooms)) { + for (const user of Object.keys(this._getUserToRooms())) { for (const roomId of this.userToRooms[user]) { this.roomToUser[roomId] = user; } From 44a53cfc0d2358a3702ab3b4469113290c87c0e4 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 4 Sep 2018 16:03:15 +0200 Subject: [PATCH 113/162] use lodash for unique function instead of rolling our own --- src/ArrayUtils.js | 30 ------------------------------ src/utils/DMRoomMap.js | 4 ++-- 2 files changed, 2 insertions(+), 32 deletions(-) delete mode 100644 src/ArrayUtils.js diff --git a/src/ArrayUtils.js b/src/ArrayUtils.js deleted file mode 100644 index ca1aea9b5b..0000000000 --- a/src/ArrayUtils.js +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2018 New Vector - -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. -*/ - -/** - * creates a new array with only the unique values of the given array - * @param {array} arr the array to deduplicate - * @return {array} the deduplicated array - */ -export function unique(arr) { - const cpy = []; - arr.forEach((el) => { - if (!cpy.includes(el)) { - cpy.push(el); - } - }); - return cpy; -} diff --git a/src/utils/DMRoomMap.js b/src/utils/DMRoomMap.js index 453d6c89b0..e0004ebc9d 100644 --- a/src/utils/DMRoomMap.js +++ b/src/utils/DMRoomMap.js @@ -15,7 +15,7 @@ limitations under the License. */ import MatrixClientPeg from '../MatrixClientPeg'; -import {unique} from '../ArrayUtils'; +import _uniq from 'lodash/uniq'; /** * Class that takes a Matrix Client and flips the m.direct map @@ -109,7 +109,7 @@ export default class DMRoomMap { userToRooms[userId] = [roomId]; } else { roomIds.push(roomId); - userToRooms[userId] = unique(roomIds); + userToRooms[userId] = _uniq(roomIds); } }); return true; From 37703843e070f6f75b2d529fbd00f884ae85d31c Mon Sep 17 00:00:00 2001 From: csybr Date: Mon, 3 Sep 2018 15:09:21 +0000 Subject: [PATCH 114/162] Translated using Weblate (Norwegian Nynorsk) Currently translated at 97.6% (1220 of 1249 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nn/ --- src/i18n/strings/nn.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/i18n/strings/nn.json b/src/i18n/strings/nn.json index c6682b03aa..dcbdb9977c 100644 --- a/src/i18n/strings/nn.json +++ b/src/i18n/strings/nn.json @@ -822,7 +822,7 @@ "Verification Pending": "Ventar på Godkjenning", "Please check your email and click on the link it contains. Once this is done, click continue.": "Ver venleg og sjekk eposten din og klikk på lenkja du har fått. Når det er gjort, klikk gå fram.", "Unable to add email address": "Klarte ikkje å leggja epostadressa til", - "Unable to verify email address.": "Klarte ikkje å stadfesta emailadressa.", + "Unable to verify email address.": "Klarte ikkje å stadfesta epostadressa.", "This will allow you to reset your password and receive notifications.": "Dette tillèt deg å attendestilla passordet ditt og å få varsel.", "Skip": "Hopp over", "User names may only contain letters, numbers, dots, hyphens and underscores.": "Brukarnamn kan berre innehalda bokstavar, tal, prikkar, bindestrek og understrek.", @@ -834,9 +834,9 @@ "This will be your account name on the homeserver, or you can pick a different server.": "Dette vert brukarnamnet ditt på heimtenaren, elles so kan du velja ein annan tenar.", "If you already have a Matrix account you can log in instead.": "Viss du har ein Matrixbrukar allereie kan du logga på i staden.", "You have successfully set a password!": "Du sette passordet ditt!", - "You have successfully set a password and an email address!": "Du sette passordet og emailadressa di!", + "You have successfully set a password and an email address!": "Du sette passordet og epostadressa di!", "You can now return to your account after signing out, and sign in on other devices.": "Du kan no gå attende til brukaren din etter å ha logga ut, og logga inn på andre einingar.", - "Remember, you can always set an email address in user settings if you change your mind.": "Hugs at du alltid kan setja ei emailadresse i brukarinnstillingar viss du skiftar meining.", + "Remember, you can always set an email address in user settings if you change your mind.": "Hugs at du alltid kan setja ei epostadresse i brukarinnstillingar viss du skiftar meining.", "Failed to change password. Is your password correct?": "Fekk ikkje til å skifta passord. Er passordet rett?", "(HTTP status %(httpStatus)s)": "(HTTP-tilstand %(httpStatus)s)", "Please set a password!": "Ver venleg og set eit passord!", @@ -1059,8 +1059,8 @@ "Microphone": "Ljodopptaking", "Camera": "Kamera", "VoIP": "VoIP", - "Email": "Email", - "Add email address": "Legg emailadresse til", + "Email": "Epost", + "Add email address": "Legg epostadresse til", "Display name": "Visingsnamn", "Account": "Brukar", "To return to your account in future you need to set a password": "For å kunna koma attende til brukaren din i framtida må du setja eit passord", @@ -1071,21 +1071,21 @@ "matrix-react-sdk version:": "matrix-react-sdk-utgåve:", "riot-web version:": "riot-web-utgåve:", "olm version:": "olm-utgåve:", - "Failed to send email": "Fekk ikkje til å senda emailen", - "The email address linked to your account must be entered.": "Du må skriva emailadressa som er tilknytta brukaren din inn.", + "Failed to send email": "Fekk ikkje til å senda eposten", + "The email address linked to your account must be entered.": "Du må skriva epostadressa som er tilknytta brukaren din inn.", "A new password must be entered.": "Du må skriva eit nytt passord inn.", "New passwords must match each other.": "Dei nye passorda må vera like.", - "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "Ein email vert send til %(emailAddress)s. Når du har far fylgd lenkja i den, klikk under.", - "I have verified my email address": "Eg har godkjend emailadressa mi", + "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "Ein epost vart send til %(emailAddress)s. Når du har far fylgd lenkja i den, klikk under.", + "I have verified my email address": "Eg har godkjend epostadressa mi", "Your password has been reset": "Passordet ditt vart attendesett", "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": "Du vart logga av alle einingar og får ikkje lenger pushvarsel. For å skru varsel på att, logg inn igjen på kvar eining", "Return to login screen": "Gå attende til innlogging", - "To reset your password, enter the email address linked to your account": "For å attendestilla passordet ditt, skriv emailadressa som er lenkja til brukaren din inn", + "To reset your password, enter the email address linked to your account": "For å attendestilla passordet ditt, skriv epostadressa som er lenkja til brukaren din inn", "New password": "Nytt passord", "Confirm your new password": "Stadfest det nye passordet ditt", - "Send Reset Email": "Send attendestillingsemail", + "Send Reset Email": "Send attendestillingsepost", "Create an account": "Lag ein brukar", - "This Home Server does not support login using email address.": "Denne Heimtenaren støttar ikkje innlogging med email.", + "This Home Server does not support login using email address.": "Denne Heimtenaren støttar ikkje innlogging med epost.", "Please contact your service administrator to continue using this service.": "Ver venleg og kontakt din tenesteadministrator for å halda fram med å bruka tenesten.", "Incorrect username and/or password.": "Urett brukarnamn og/eller passord.", "Please note you are logging into the %(hs)s server, not matrix.org.": "Merk deg at du loggar inn på %(hs)s-tenaren, ikkje matrix.org.", @@ -1103,7 +1103,7 @@ "Missing password.": "Vantande passord.", "Passwords don't match.": "Passorda er ikkje like.", "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Passordet er for kort (i det minste %(MIN_PASSWORD_LENGTH)s).", - "This doesn't look like a valid email address.": "Dette ser ikkje ut som ei gangbar emailadresse.", + "This doesn't look like a valid email address.": "Dette ser ikkje ut som ei gangbar epostadresse.", "This doesn't look like a valid phone number.": "Dette ser ikkje ut som eit gangbart telefonnummer.", "You need to enter a user name.": "Du må skriva eit brukarnamn inn.", "An unknown error occurred.": "Noko ukjend gjekk gale.", From 3b29b7aab6488f338434f6a3d365e01bf62b058f Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 4 Sep 2018 17:36:50 +0200 Subject: [PATCH 115/162] fix getDMRoomsForUserId not calling _getUserToRooms first (thanks e2e tests) --- src/utils/DMRoomMap.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/DMRoomMap.js b/src/utils/DMRoomMap.js index e0004ebc9d..bea6e702fa 100644 --- a/src/utils/DMRoomMap.js +++ b/src/utils/DMRoomMap.js @@ -119,7 +119,7 @@ export default class DMRoomMap { getDMRoomsForUserId(userId) { // Here, we return the empty list if there are no rooms, // since the number of conversations you have with this user is zero. - return this.userToRooms[userId] || []; + return this._getUserToRooms()[userId] || []; } getUserIdForRoomId(roomId) { From dc14a4214851337bd8e809edd11a7eb1f0dff9f0 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 4 Sep 2018 18:26:09 +0100 Subject: [PATCH 116/162] Correctly mark email as optional Look at the flows to see if there is one we can complete without an email address. Mark the email address as optional iff there is. --- .../structures/login/Registration.js | 22 +++++++++++++++++-- .../views/login/RegistrationForm.js | 19 +++++++++++----- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/src/components/structures/login/Registration.js b/src/components/structures/login/Registration.js index 1131218311..257818b95c 100644 --- a/src/components/structures/login/Registration.js +++ b/src/components/structures/login/Registration.js @@ -93,6 +93,7 @@ module.exports = React.createClass({ doingUIAuth: Boolean(this.props.sessionId), hsUrl: this.props.customHsUrl, isUrl: this.props.customIsUrl, + flows: null, }; }, @@ -145,11 +146,27 @@ module.exports = React.createClass({ }); }, - _replaceClient: function() { + _replaceClient: async function() { this._matrixClient = Matrix.createClient({ baseUrl: this.state.hsUrl, idBaseUrl: this.state.isUrl, }); + try { + const result = await this._makeRegisterRequest({}); + // This should never succeed since we specified an empty + // auth object. + console.log("Expecting 401 from register request but got success!"); + } catch (e) { + if (e.httpStatus === 401) { + this.setState({ + flows: e.data.flows, + }); + } else { + this.setState({ + errorText: _t("Unable to query for supported registration methods"), + }); + } + } }, onFormSubmit: function(formVals) { @@ -378,7 +395,7 @@ module.exports = React.createClass({ poll={true} /> ); - } else if (this.state.busy || this.state.teamServerBusy) { + } else if (this.state.busy || this.state.teamServerBusy || !this.state.flows) { registerBody = ; } else { let serverConfigSection; @@ -408,6 +425,7 @@ module.exports = React.createClass({ onError={this.onFormValidationFailed} onRegisterClick={this.onFormSubmit} onTeamSelected={this.onTeamSelected} + flows={this.state.flows} /> { serverConfigSection } diff --git a/src/components/views/login/RegistrationForm.js b/src/components/views/login/RegistrationForm.js index fff808cf22..56a2bcfee4 100644 --- a/src/components/views/login/RegistrationForm.js +++ b/src/components/views/login/RegistrationForm.js @@ -1,6 +1,7 @@ /* Copyright 2015, 2016 OpenMarket Ltd Copyright 2017 Vector Creations 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. @@ -49,7 +50,7 @@ module.exports = React.createClass({ teamsConfig: PropTypes.shape({ // Email address to request new teams supportEmail: PropTypes.string, - teams: PropTypes.arrayOf(React.PropTypes.shape({ + teams: PropTypes.arrayOf(PropTypes.shape({ // The displayed name of the team "name": PropTypes.string, // The domain of team email addresses @@ -60,6 +61,7 @@ module.exports = React.createClass({ minPasswordLength: PropTypes.number, onError: PropTypes.func, onRegisterClick: PropTypes.func.isRequired, // onRegisterClick(Object) => ?Promise + flows: PropTypes.arrayOf(PropTypes.object), }, getDefaultProps: function() { @@ -273,12 +275,18 @@ module.exports = React.createClass({ }); }, + _authStepIsRequired(step) { + // A step is required if no flow exists which does not include that step + // (Notwithstanding setups like either email or msisdn being required) + return !this.props.flows.some((flow) => { + return !flow.stages.includes(step); + }); + }, + render: function() { const self = this; - const theme = SettingsStore.getValue("theme"); - // FIXME: remove hardcoded Status team tweaks at some point - const emailPlaceholder = theme === 'status' ? _t("Email address") : _t("Email address (optional)"); + const emailPlaceholder = this._authStepIsRequired('m.login.email.identity') ? _t("Email address") : _t("Email address (optional)"); const emailSection = (
@@ -315,6 +323,7 @@ module.exports = React.createClass({ const CountryDropdown = sdk.getComponent('views.login.CountryDropdown'); let phoneSection; if (!SdkConfig.get().disable_3pid_login) { + const phonePlaceholder = this._authStepIsRequired('m.login.msisdn') ? _t("Mobile phone number") : _t("Mobile phone number (optional)"); phoneSection = (
Date: Tue, 4 Sep 2018 17:38:33 +0000 Subject: [PATCH 117/162] Translated using Weblate (Spanish) Currently translated at 100.0% (1249 of 1249 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 | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index c427bd54ec..a80390a54f 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -1239,7 +1239,20 @@ "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.", "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": "La carga lenta de los miembros no está soportada", + "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.", - "System Alerts": "Alertas de Sistema" + "System Alerts": "Alertas de Sistema", + "Forces the current outbound group session in an encrypted room to be discarded": "Obliga a que la sesión de salida grupal actual en una sala cifrada se descarte", + "Error Discarding Session": "Error al Descartar la Sesión", + "Sorry, your homeserver is too old to participate in this room.": "Lo sentimos, tu servidor doméstico es demasiado antiguo para participar en esta sala.", + "Please contact your homeserver administrator.": "Por favor contacta al administrador de tu servidor doméstico.", + "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.", + "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" } From a07799879ccdddceaa7826031f8c7ede4d9f62a5 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 4 Sep 2018 18:50:18 +0100 Subject: [PATCH 118/162] Fix tests --- src/components/views/login/RegistrationForm.js | 2 +- test/components/views/login/RegistrationForm-test.js | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/views/login/RegistrationForm.js b/src/components/views/login/RegistrationForm.js index 56a2bcfee4..1a365277c1 100644 --- a/src/components/views/login/RegistrationForm.js +++ b/src/components/views/login/RegistrationForm.js @@ -61,7 +61,7 @@ module.exports = React.createClass({ minPasswordLength: PropTypes.number, onError: PropTypes.func, onRegisterClick: PropTypes.func.isRequired, // onRegisterClick(Object) => ?Promise - flows: PropTypes.arrayOf(PropTypes.object), + flows: PropTypes.arrayOf(PropTypes.object).isRequired, }, getDefaultProps: function() { diff --git a/test/components/views/login/RegistrationForm-test.js b/test/components/views/login/RegistrationForm-test.js index 81db5b487b..14a5d036b4 100644 --- a/test/components/views/login/RegistrationForm-test.js +++ b/test/components/views/login/RegistrationForm-test.js @@ -37,6 +37,11 @@ function doInputEmail(inputEmail, onTeamSelected) { , ); From 775d9950521aa35fbb838ea737c13353bb8c6b38 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 4 Sep 2018 18:51:24 +0100 Subject: [PATCH 119/162] Lint --- src/components/structures/login/Registration.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/structures/login/Registration.js b/src/components/structures/login/Registration.js index 257818b95c..f3744b7235 100644 --- a/src/components/structures/login/Registration.js +++ b/src/components/structures/login/Registration.js @@ -152,7 +152,7 @@ module.exports = React.createClass({ idBaseUrl: this.state.isUrl, }); try { - const result = await this._makeRegisterRequest({}); + await this._makeRegisterRequest({}); // This should never succeed since we specified an empty // auth object. console.log("Expecting 401 from register request but got success!"); From dc66c43fa18900d3852dfd86c734f70bd9980974 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Tue, 4 Sep 2018 20:33:04 +0100 Subject: [PATCH 120/162] downgraded parallelshell due to https://github.com/darkguy2008/parallelshell/issues/57 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fb8acbecf7..3fde5a240b 100644 --- a/package.json +++ b/package.json @@ -133,7 +133,7 @@ "matrix-mock-request": "^1.2.1", "matrix-react-test-utils": "^0.1.1", "mocha": "^5.0.5", - "parallelshell": "^3.0.2", + "parallelshell": "3.0.1", "react-addons-test-utils": "^15.4.0", "require-json": "0.0.1", "rimraf": "^2.4.3", From 562cc32860013f773da771b084266a2d7c8a9a79 Mon Sep 17 00:00:00 2001 From: Milena Brum Date: Tue, 4 Sep 2018 18:57:56 +0000 Subject: [PATCH 121/162] Translated using Weblate (Spanish) Currently translated at 100.0% (1249 of 1249 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 | 68 ++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index a80390a54f..26672d6053 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -1,10 +1,10 @@ { "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Un mensaje de texto ha sido enviado a +%(msisdn)s. Por favor ingrese el código de verificación que lo contiene", - "%(targetName)s accepted an invitation.": "%(targetName)s ha aceptado una invitación.", - "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s ha aceptado la invitación para %(displayName)s.", + "%(targetName)s accepted an invitation.": "%(targetName)s aceptó una invitación.", + "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s aceptó la invitación para %(displayName)s.", "Account": "Cuenta", "Access Token:": "Token de Acceso:", - "Add email address": "Agregar correo eléctronico", + "Add email address": "Añadir dirección de correo electrónico", "Add phone number": "Agregar número telefónico", "Admin": "Administrador", "Advanced": "Avanzado", @@ -16,7 +16,7 @@ "and %(count)s others...|one": "y otro...", "%(names)s and %(lastPerson)s are typing": "%(names)s y %(lastPerson)s están escribiendo", "A new password must be entered.": "Una nueva clave debe ser ingresada.", - "%(senderName)s answered the call.": "%(senderName)s atendió la llamada.", + "%(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", @@ -24,7 +24,7 @@ "Are you sure you want to reject the invitation?": "¿Estás seguro que quieres rechazar la invitación?", "Attachment": "Adjunto", "Autoplay GIFs and videos": "Reproducir automáticamente GIFs y videos", - "%(senderName)s banned %(targetName)s.": "%(senderName)s ha bloqueado a %(targetName)s.", + "%(senderName)s banned %(targetName)s.": "%(senderName)s vetó a %(targetName)s.", "Ban": "Bloquear", "Banned users": "Usuarios bloqueados", "Bans user with given id": "Bloquear usuario por ID", @@ -36,8 +36,8 @@ "Change Password": "Cambiar clave", "%(senderName)s changed their profile picture.": "%(senderName)s ha cambiado su foto 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 ha cambiado el nombre de la sala a %(roomName)s.", - "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s ha cambiado el tema de la sala a \"%(topic)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.", @@ -91,7 +91,7 @@ "Enable encryption": "Habilitar encriptación", "Encrypted messages will not be visible on clients that do not yet implement encryption": "Los mensajes encriptados no serán visibles en navegadores que no han implementado aun la encriptación", "Encrypted room": "Sala encriptada", - "%(senderName)s ended the call.": "%(senderName)s terminó la llamada.", + "%(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 is in beta and may not be reliable": "El cifrado de extremo a extremo está en pruebas, podría no ser fiable", "Enter Code": "Ingresar Código", @@ -146,7 +146,7 @@ "Invalid address format": "Formato de dirección inválida", "Invalid Email Address": "Dirección de correo electrónico inválida", "Invalid file%(extra)s": "Archivo inválido %(extra)s", - "%(senderName)s invited %(targetName)s.": "%(senderName)s ha invitado a %(targetName)s.", + "%(senderName)s invited %(targetName)s.": "%(senderName)s invitó a %(targetName)s.", "Invite new room members": "Invitar nuevos miembros a la sala", "Invites": "Invitar", "Invites user with given id to current room": "Invitar a usuario con ID dado a esta sala", @@ -155,14 +155,14 @@ "%(displayName)s is typing": "%(displayName)s está escribiendo", "Sign in with": "Quiero iniciar sesión con", "Join Room": "Unirte a la sala", - "%(targetName)s joined the room.": "%(targetName)s se ha unido 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", - "%(senderName)s kicked %(targetName)s.": "%(senderName)s ha expulsado a %(targetName)s.", + "%(senderName)s kicked %(targetName)s.": "%(senderName)s expulsó a %(targetName)s.", "Kick": "Expulsar", "Kicks user with given id": "Expulsar usuario con ID dado", "Labs": "Laboratorios", "Leave room": "Dejar sala", - "%(targetName)s left the room.": "%(targetName)s ha dejado la sala.", + "%(targetName)s left the room.": "%(targetName)s salió de la sala.", "Local addresses for this room:": "Direcciones locales para esta sala:", "Logged in as:": "Sesión iniciada como:", "Logout": "Cerrar Sesión", @@ -191,7 +191,7 @@ "Device ID:": "ID del dispositivo:", "device id: ": "id del dispositvo: ", "Disable Notifications": "Desactivar notificaciones", - "Email address (optional)": "Dirección e-mail (opcional)", + "Email address (optional)": "Dirección de correo electrónico (opcional)", "Enable Notifications": "Activar notificaciones", "Encrypted by a verified device": "Cifrado por un dispositivo verificado", "Encrypted by an unverified device": "Cifrado por un dispositivo sin verificar", @@ -212,11 +212,11 @@ "Jump to first unread message.": "Ir al primer mensaje sin leer.", "Last seen": "Visto por última vez", "Level:": "Nivel:", - "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s ha configurado el historial de la sala visible para Todos los miembros de la sala, desde el momento en que son invitados.", - "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s ha configurado el historial de la sala visible para Todos los miembros de la sala, desde el momento en que se han unido.", - "%(senderName)s made future room history visible to all room members.": "%(senderName)s ha configurado el historial de la sala visible para Todos los miembros de la sala.", - "%(senderName)s made future room history visible to anyone.": "%(senderName)s ha configurado el historial de la sala visible para nadie.", - "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s ha configurado el historial de la sala visible para desconocido (%(visibility)s).", + "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s hizo visible el historial futuro de la sala para todos los miembros de la sala, desde el momento en que son invitados.", + "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s hizo visible el historial futuro de la sala para todos los miembros de la sala, desde el momento en que se unieron.", + "%(senderName)s made future room history visible to all room members.": "%(senderName)s hizo visible el historial futuro de la sala para todos los miembros de la sala.", + "%(senderName)s made future room history visible to anyone.": "%(senderName)s hizo visible el historial futuro de la sala para cualquier persona.", + "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s hizo visible el historial futuro de la sala para desconocido (%(visibility)s).", "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", @@ -271,7 +271,7 @@ "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 their display name to %(displayName)s.": "%(senderName)s cambió su nombre a %(displayName)s.", + "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s estableció %(displayName)s como su nombre público.", "Settings": "Configuración", "Show panel": "Mostrar panel", "Show Text Formatting Toolbar": "Mostrar la barra de formato de texto", @@ -297,7 +297,7 @@ "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.", - "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s ha quitado el nombre de la sala.", + "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s eliminó el nombre de la sala.", "Device key:": "Clave del 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.", @@ -357,16 +357,16 @@ "Revoke Moderator": "Eliminar Moderador", "Refer a friend to Riot:": "Informar a un amigo sobre Riot:", "Register": "Registro", - "%(targetName)s rejected the invitation.": "%(targetName)s ha rechazado la invitación.", + "%(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:", "Remove Contact Information?": "¿Eliminar información del contacto?", - "%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s ha suprimido su nombre para mostar (%(oldDisplayName)s).", + "%(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.", "Remove": "Eliminar", "Remove %(threePid)s?": "¿Eliminar %(threePid)s?", - "%(senderName)s requested a VoIP conference.": "%(senderName)s ha solicitado una conferencia Voz-IP.", + "%(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": "Volver a la pantalla de inicio de sesión", @@ -378,7 +378,7 @@ "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)", "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": "Dirección e-mail en uso", + "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ó", "The email address linked to your account must be entered.": "Debe introducir el e-mail asociado a su 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", @@ -427,7 +427,7 @@ "Tried to load a specific point in this room's timeline, but was unable to find it.": "Se ha intentado cargar cierto punto en la cronología de esta sala, pero no se ha podido encontrarlo.", "Turn Markdown off": "Desactivar markdown", "Turn Markdown on": "Activar markdown", - "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s ha activado el cifrado de extremo-a-extremo (algorithm %(algorithm)s).", + "%(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 se ha podido añadir la dirección de correo electrónico", "Unable to create widget.": "No se ha podido crear el widget.", "Unable to remove contact information": "No se ha podido eliminar la información de contacto", @@ -470,8 +470,8 @@ "Verified key": "Clave verificada", "Video call": "Llamada de vídeo", "Voice call": "Llamada de voz", - "VoIP conference finished.": "Conferencia VoIP terminada.", - "VoIP conference started.": "Conferencia de VoIP iniciada.", + "VoIP conference finished.": "conferencia de vozIP finalizada.", + "VoIP conference started.": "conferencia de vozIP iniciada.", "VoIP is unsupported": "No hay soporte para VoIP", "(could not connect media)": "(no se ha podido conectar medio)", "(no answer)": "(sin respuesta)", @@ -483,7 +483,7 @@ "Who can read history?": "¿Quién puede leer el historial?", "Who would you like to add to this room?": "¿A quién quiere añadir a esta sala?", "Who would you like to communicate with?": "¿Con quién quiere comunicarse?", - "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s ha retirado la invitación de %(targetName)s.", + "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s retiró la invitación de %(targetName)s.", "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 chats directos con este usuario:", "You are already in a call.": "Ya está participando en una llamada.", @@ -502,7 +502,7 @@ "Revoke widget access": "Revocar acceso del widget", "The maximum permitted number of widgets have already been added to this room.": "La cantidad máxima de widgets permitida ha sido alcanzada en esta sala.", "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 levanto la suspensión de %(targetName)s.", + "%(senderName)s unbanned %(targetName)s.": "%(senderName)s le quitó el veto a %(targetName)s.", "unencrypted": "no cifrado", "Unmute": "desactivar el silencio", "Unrecognised command:": "comando no reconocido:", @@ -773,7 +773,7 @@ "You are no longer ignoring %(userId)s": "Ya no está ignorando a %(userId)s", "Opens the Developer Tools dialog": "Abre el diálogo de Herramientas de Desarrollador", "Verifies a user, device, and pubkey tuple": "Verifica a un usuario, dispositivo, y tupla de clave pública", - "%(oldDisplayName)s changed their display name to %(displayName)s.": "%(oldDisplayName)s cambió su nombre visible a %(displayName)s.", + "%(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", @@ -805,10 +805,10 @@ "Select devices": "Seleccionar dispositivos", "Drop file here to upload": "Soltar aquí el fichero a subir", " (unsupported)": " (no soportado)", - "Ongoing conference call%(supportedText)s.": "Llamada de conferencia en curso%(supportedText)s", + "Ongoing conference call%(supportedText)s.": "Llamada de conferencia en curso%(supportedText)s.", "This event could not be displayed": "No se pudo mostrar este evento", "%(senderName)s sent an image": "%(senderName)s envió una imagen", - "%(senderName)s sent a video": "%(senderName)s envió un video", + "%(senderName)s sent a video": "%(senderName)s envió un vídeo", "%(senderName)s uploaded a file": "%(senderName)s subió un fichero", "Your key share request has been sent - please check your other devices for key share requests.": "Se envió su solicitud para compartir la clave - por favor, compruebe sus otros dispositivos para solicitudes de compartir clave.", "Key share requests are sent to your other devices automatically. If you rejected or dismissed the key share request on your other devices, click here to request the keys for this session again.": "Las solicitudes para compartir la clave se envían a sus otros dispositivos automáticamente. Si rechazó o descartó la solicitud en sus otros dispositivos, pulse aquí para solicitar otra vez las claves durante esta sesión.", @@ -1130,7 +1130,7 @@ "Add a User": "Agregar un usuario", "Failed to remove a user from the summary of %(groupId)s": "Falló la eliminación de un usuario del resumen de %(groupId)s", "The user '%(displayName)s' could not be removed from the summary.": "No se pudo eliminar al usuario '%(displayName)s' del resumen.", - "Failed to upload image": "Falló la subida de la imagen", + "Failed to upload image": "No se pudo cargar la imagen", "Failed to update community": "Falló la actualización de la comunidad", "Unable to accept invite": "No se pudo aceptar la invitación", "Unable to join community": "No se pudo unir a comunidad", @@ -1142,7 +1142,7 @@ "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "Estas salas se muestran a los miembros de la comunidad en la página de la misma. Los miembros pueden unirse a las salas pulsando sobre ellas.", "Featured Rooms:": "Salas destacadas:", "Featured Users:": "Usuarios destacados:", - "%(inviter)s has invited you to join this community": "%(inviter)s le ha invitado a unirse a esta comunidad", + "%(inviter)s has invited you to join this community": "%(inviter)s te invitó a unirte a esta comunidad", "Join this community": "Unirse a esta comunidad", "Leave this community": "Abandonar esta comunidad", "You are an administrator of this community": "Usted es un administrador de esta comunidad", From 8500a7131fc8ab92efa71b90f9859cddefaff926 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Wed, 5 Sep 2018 15:25:08 +0200 Subject: [PATCH 122/162] avoid unneeded lookups in memberDict have members be an array of RoomMember instead of userId, so we can avoid multiple lookups when sorting, rendering, ... --- src/components/views/rooms/MemberList.js | 49 +++++++++--------------- 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js index d302bee832..acf2fa36f7 100644 --- a/src/components/views/rooms/MemberList.js +++ b/src/components/views/rooms/MemberList.js @@ -196,12 +196,12 @@ module.exports = React.createClass({ const all_members = room.currentState.members; - Object.keys(all_members).map(function(userId) { + Object.values(all_members).forEach(function(member) { // work around a race where you might have a room member object // before the user object exists. This may or may not cause // https://github.com/vector-im/vector-web/issues/186 - if (all_members[userId].user === null) { - all_members[userId].user = MatrixClientPeg.get().getUser(userId); + if (member.user === null) { + member.user = cli.getUser(member.userId); } // XXX: this user may have no lastPresenceTs value! @@ -212,26 +212,20 @@ module.exports = React.createClass({ }, roomMembers: function() { - const all_members = this.memberDict || {}; - const all_user_ids = Object.keys(all_members); const ConferenceHandler = CallHandler.getConferenceHandler(); - all_user_ids.sort(this.memberSort); - - const to_display = []; - let count = 0; - for (let i = 0; i < all_user_ids.length; ++i) { - const user_id = all_user_ids[i]; - const m = all_members[user_id]; - - if (m.membership === 'join' || m.membership === 'invite') { - if ((ConferenceHandler && !ConferenceHandler.isConferenceUser(user_id)) || !ConferenceHandler) { - to_display.push(user_id); - ++count; - } - } - } - return to_display; + const allMembersDict = this.memberDict || {}; + const allMembers = Object.values(allMembersDict); + const filteredAndSortedMembers = allMembers.filter((m) => { + return ( + m.membership === 'join' || m.membership === 'invite' + ) && ( + !ConferenceHandler || + (ConferenceHandler && !ConferenceHandler.isConferenceUser(m.userId)) + ); + }); + filteredAndSortedMembers.sort(this.memberSort); + return filteredAndSortedMembers; }, _createOverflowTileJoined: function(overflowCount, totalCount) { @@ -278,14 +272,12 @@ module.exports = React.createClass({ // returns negative if a comes before b, // returns 0 if a and b are equivalent in ordering // returns positive if a comes after b. - memberSort: function(userIdA, userIdB) { + memberSort: function(memberA, memberB) { // order by last active, with "active now" first. // ...and then by power // ...and then alphabetically. // We could tiebreak instead by "last recently spoken in this room" if we wanted to. - const memberA = this.memberDict[userIdA]; - const memberB = this.memberDict[userIdB]; const userA = memberA.user; const userB = memberB.user; @@ -335,9 +327,7 @@ module.exports = React.createClass({ }, _filterMembers: function(members, membership, query) { - return members.filter((userId) => { - const m = this.memberDict[userId]; - + return members.filter((m) => { if (query) { query = query.toLowerCase(); const matchesName = m.name.toLowerCase().indexOf(query) !== -1; @@ -379,10 +369,9 @@ module.exports = React.createClass({ _makeMemberTiles: function(members, membership) { const MemberTile = sdk.getComponent("rooms.MemberTile"); - const memberList = members.map((userId) => { - const m = this.memberDict[userId]; + const memberList = members.map((m) => { return ( - + ); }); From a042f4d0af0c0e196b557e37089f05d92eae440c Mon Sep 17 00:00:00 2001 From: David Baker Date: Wed, 5 Sep 2018 17:07:39 +0100 Subject: [PATCH 123/162] Do full registration if HS doesn't support ILAG ILAG only works on HSes that allow registering without an email address, so whenever we redirect to the ILAG flow, check what registration flows the server supports, and if it doesn't offer one that's ILAG-compatible, prompt the user to go through the full registration process instead. This doesn't change all the entry points into ILAG, I'll do that in a separate commit. --- src/Registration.js | 96 +++++++++++++++++++++++++ src/components/structures/MatrixChat.js | 9 ++- src/i18n/strings/en_EN.json | 8 ++- 3 files changed, 108 insertions(+), 5 deletions(-) create mode 100644 src/Registration.js diff --git a/src/Registration.js b/src/Registration.js new file mode 100644 index 0000000000..b3da7acb1e --- /dev/null +++ b/src/Registration.js @@ -0,0 +1,96 @@ +/* +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. +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. +*/ + +/** + * Utility code for registering with a homeserver + * Note that this is currently *not* used by the actual + * registration code. + */ + +import dis from './dispatcher'; +import sdk from './index'; +import MatrixClientPeg from './MatrixClientPeg'; +import Modal from './Modal'; +import { _t } from './languageHandler'; + +/** + * Starts either the ILAG or full registration flow, depending + * on what the HS supports + */ +export async function startAnyRegistrationFlow(options) { + if (options === undefined) options = {}; + const flows = await _getRegistrationFlows(); + // look for an ILAG compatible flow. We define this as one + // which has only dummy or recaptcha flows. In practice it + // would support any stage InteractiveAuth supports, just not + // ones like email & msisdn which require the user to supply + // the relevant details in advance. We err on the side of + // caution though. + let hasIlagFlow = false; + for (const flow of flows) { + let flowSuitable = true; + for (const stage of flow.stages) { + if (!['m.login.dummy', 'm.login.recaptcha'].includes(stage)) { + flowSuitable = false; + break; + } + } + if (flowSuitable) { + hasIlagFlow = true; + break; + } + } + if (hasIlagFlow) { + dis.dispatch({ + action: 'view_set_mxid', + go_home_on_cancel: options.go_home_on_cancel, + }); + } else { + const QuestionDialog = sdk.getComponent("dialogs.QuestionDialog"); + Modal.createTrackedDialog('Registration required', '', QuestionDialog, { + title: _t("Registration Required"), + description: _t("You need to register to do this. Would you like to register now?"), + button: _t("Register"), + onFinished: (proceed) => { + if (proceed) { + dis.dispatch({action: 'start_registration'}); + } else if (options.go_home_on_cancel) { + dis.dispatch({action: 'view_home_page'}); + } + } + }); + } +} + +async function _getRegistrationFlows() { + try { + await MatrixClientPeg.get().register( + null, + null, + undefined, + {}, + {}, + ); + console.log("Register request succeeded when it should have returned 401!"); + } catch (e) { + if (e.httpStatus === 401) { + return e.data.flows; + } + throw e; + } + throw new Error("Register request succeeded when it should have returned 401!"); +} + diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index 7a13067976..002e439454 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -45,6 +45,7 @@ import createRoom from "../../createRoom"; import KeyRequestHandler from '../../KeyRequestHandler'; import { _t, getCurrentLanguage } from '../../languageHandler'; import SettingsStore, {SettingLevel} from "../../settings/SettingsStore"; +import { startAnyRegistrationFlow } from "../../Registration.js"; /** constants for MatrixChat.state.view */ const VIEWS = { @@ -471,7 +472,7 @@ export default React.createClass({ action: 'do_after_sync_prepared', deferred_action: payload, }); - dis.dispatch({action: 'view_set_mxid'}); + dis.dispatch({action: 'require_registration'}); return; } @@ -479,7 +480,11 @@ export default React.createClass({ case 'logout': Lifecycle.logout(); break; + case 'require_registration': + startAnyRegistrationFlow(payload); + break; case 'start_registration': + // This starts the full registration flow this._startRegistration(payload.params || {}); break; case 'start_login': @@ -945,7 +950,7 @@ export default React.createClass({ }); } dis.dispatch({ - action: 'view_set_mxid', + action: 'require_registration', // If the set_mxid dialog is cancelled, view /home because if the browser // was pointing at /user/@someone:domain?action=chat, the URL needs to be // reset so that they can revisit /user/.. // (and trigger diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 995614225a..d06b986474 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -87,6 +87,8 @@ "Unable to enable Notifications": "Unable to enable Notifications", "This email address was not found": "This email address was not found", "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Your email address does not appear to be associated with a Matrix ID on this Homeserver.", + "Registration Required": "Registration Required", + "You need to register to do this. Would you like to register now?": "You need to register to do this. Would you like to register now?", "Default": "Default", "Restricted": "Restricted", "Moderator": "Moderator", @@ -146,7 +148,6 @@ "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.", "Displays action": "Displays action", "Forces the current outbound group session in an encrypted room to be discarded": "Forces the current outbound group session in an encrypted room to be discarded", - "Error Discarding Session": "Error Discarding Session", "Unrecognised command:": "Unrecognised command:", "Reason": "Reason", "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s accepted the invitation for %(displayName)s.", @@ -398,8 +399,6 @@ "At this time it is not possible to reply with a file so this will be sent without being a reply.": "At this time it is not possible to reply with a file so this will be sent without being a reply.", "Upload Files": "Upload Files", "Are you sure you want to upload the following files?": "Are you sure you want to upload the following files?", - "This room has been replaced and is no longer active.": "This room has been replaced and is no longer active.", - "The conversation continues here.": "The conversation continues here.", "Encrypted room": "Encrypted room", "Unencrypted room": "Unencrypted room", "Hangup": "Hangup", @@ -411,6 +410,8 @@ "Send a reply (unencrypted)…": "Send a reply (unencrypted)…", "Send an encrypted message…": "Send an encrypted message…", "Send a message (unencrypted)…": "Send a message (unencrypted)…", + "This room has been replaced and is no longer active.": "This room has been replaced and is no longer active.", + "The conversation continues here.": "The conversation continues here.", "You do not have permission to post to this room": "You do not have permission to post to this room", "Turn Markdown on": "Turn Markdown on", "Turn Markdown off": "Turn Markdown off", @@ -1201,6 +1202,7 @@ "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.", From 34d27954cfd6049c993431bcf0673f1f3ba600d1 Mon Sep 17 00:00:00 2001 From: David Baker Date: Wed, 5 Sep 2018 18:03:48 +0100 Subject: [PATCH 124/162] Revert "Don't rely on room members to query power levels" --- src/components/views/rooms/MessageComposer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/views/rooms/MessageComposer.js b/src/components/views/rooms/MessageComposer.js index ad4a1dfafe..dacd433e3e 100644 --- a/src/components/views/rooms/MessageComposer.js +++ b/src/components/views/rooms/MessageComposer.js @@ -309,8 +309,8 @@ export default class MessageComposer extends React.Component {
; } - const canSendMessages = !this.state.tombstone && - this.props.room.maySendMessage(); + const canSendMessages = !this.state.tombstone && this.props.room.currentState.maySendMessage( + MatrixClientPeg.get().credentials.userId); if (canSendMessages) { // This also currently includes the call buttons. Really we should From 27fa21e403a2a60477ae1ad073c27280246efd05 Mon Sep 17 00:00:00 2001 From: David Baker Date: Wed, 5 Sep 2018 18:08:49 +0100 Subject: [PATCH 125/162] Replace view_set_mxid with require_registration To put all the other flows through the to-ilag-or-not-to-ilag flow --- src/components/structures/GroupView.js | 4 ++-- src/components/structures/MatrixChat.js | 2 +- src/components/structures/RightPanel.js | 2 +- src/components/structures/RoomDirectory.js | 2 +- src/components/structures/RoomView.js | 4 ++-- src/components/views/room_settings/ColorSettings.js | 2 +- src/components/views/rooms/MemberInfo.js | 2 +- src/components/views/rooms/MessageComposer.js | 2 +- src/createRoom.js | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/components/structures/GroupView.js b/src/components/structures/GroupView.js index 9498c2aa2a..d104019a01 100644 --- a/src/components/structures/GroupView.js +++ b/src/components/structures/GroupView.js @@ -480,7 +480,7 @@ export default React.createClass({ group_id: groupId, }, }); - dis.dispatch({action: 'view_set_mxid'}); + dis.dispatch({action: 'require_registration'}); willDoOnboarding = true; } this.setState({ @@ -724,7 +724,7 @@ export default React.createClass({ _onJoinClick: async function() { if (this._matrixClient.isGuest()) { - dis.dispatch({action: 'view_set_mxid'}); + dis.dispatch({action: 'require_registration'}); return; } diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index 002e439454..333e200e44 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -1428,7 +1428,7 @@ export default React.createClass({ } else if (screen == 'start') { this.showScreen('home'); dis.dispatch({ - action: 'view_set_mxid', + action: 'require_registration', }); } else if (screen == 'directory') { dis.dispatch({ diff --git a/src/components/structures/RightPanel.js b/src/components/structures/RightPanel.js index bd4ed722cb..47b3df65cb 100644 --- a/src/components/structures/RightPanel.js +++ b/src/components/structures/RightPanel.js @@ -160,7 +160,7 @@ module.exports = React.createClass({ onInviteButtonClick: function() { if (this.context.matrixClient.isGuest()) { - dis.dispatch({action: 'view_set_mxid'}); + dis.dispatch({action: 'require_registration'}); return; } diff --git a/src/components/structures/RoomDirectory.js b/src/components/structures/RoomDirectory.js index 76360383d6..f417932fd0 100644 --- a/src/components/structures/RoomDirectory.js +++ b/src/components/structures/RoomDirectory.js @@ -354,7 +354,7 @@ module.exports = React.createClass({ // to the directory. if (MatrixClientPeg.get().isGuest()) { if (!room.world_readable && !room.guest_can_join) { - dis.dispatch({action: 'view_set_mxid'}); + dis.dispatch({action: 'require_registration'}); return; } } diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js index ca06243ed1..54f730de5d 100644 --- a/src/components/structures/RoomView.js +++ b/src/components/structures/RoomView.js @@ -915,7 +915,7 @@ module.exports = React.createClass({ dis.dispatch({action: 'focus_composer'}); if (MatrixClientPeg.get().isGuest()) { - dis.dispatch({action: 'view_set_mxid'}); + dis.dispatch({action: 'require_registration'}); return; } @@ -946,7 +946,7 @@ module.exports = React.createClass({ injectSticker: function(url, info, text) { if (MatrixClientPeg.get().isGuest()) { - dis.dispatch({action: 'view_set_mxid'}); + dis.dispatch({action: 'require_registration'}); return; } diff --git a/src/components/views/room_settings/ColorSettings.js b/src/components/views/room_settings/ColorSettings.js index e82d3ffb0a..30621f9c15 100644 --- a/src/components/views/room_settings/ColorSettings.js +++ b/src/components/views/room_settings/ColorSettings.js @@ -90,7 +90,7 @@ module.exports = React.createClass({ secondary_color: this.state.secondary_color, }).catch(function(err) { if (err.errcode === 'M_GUEST_ACCESS_FORBIDDEN') { - dis.dispatch({action: 'view_set_mxid'}); + dis.dispatch({action: 'require_registration'}); } }); } diff --git a/src/components/views/rooms/MemberInfo.js b/src/components/views/rooms/MemberInfo.js index c635f09e2c..e6e6350083 100644 --- a/src/components/views/rooms/MemberInfo.js +++ b/src/components/views/rooms/MemberInfo.js @@ -429,7 +429,7 @@ module.exports = withMatrixClient(React.createClass({ console.log("Mod toggle success"); }, function(err) { if (err.errcode === 'M_GUEST_ACCESS_FORBIDDEN') { - dis.dispatch({action: 'view_set_mxid'}); + dis.dispatch({action: 'require_registration'}); } else { console.error("Toggle moderator error:" + err); Modal.createTrackedDialog('Failed to toggle moderator status', '', ErrorDialog, { diff --git a/src/components/views/rooms/MessageComposer.js b/src/components/views/rooms/MessageComposer.js index dacd433e3e..642c939f83 100644 --- a/src/components/views/rooms/MessageComposer.js +++ b/src/components/views/rooms/MessageComposer.js @@ -131,7 +131,7 @@ export default class MessageComposer extends React.Component { onUploadClick(ev) { if (MatrixClientPeg.get().isGuest()) { - dis.dispatch({action: 'view_set_mxid'}); + dis.dispatch({action: 'require_registration'}); return; } diff --git a/src/createRoom.js b/src/createRoom.js index a767d09288..8b4220fc85 100644 --- a/src/createRoom.js +++ b/src/createRoom.js @@ -42,7 +42,7 @@ function createRoom(opts) { const client = MatrixClientPeg.get(); if (client.isGuest()) { - dis.dispatch({action: 'view_set_mxid'}); + dis.dispatch({action: 'require_registration'}); return Promise.resolve(null); } From c132b5b9fce1d39be28cfa181ef1254199173ee2 Mon Sep 17 00:00:00 2001 From: Milena Brum Date: Wed, 5 Sep 2018 17:07:35 +0000 Subject: [PATCH 126/162] Translated using Weblate (Spanish) Currently translated at 100.0% (1249 of 1249 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 | 64 ++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index 26672d6053..98c0574eb4 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -42,8 +42,8 @@ "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", - "Clear Cache and Reload": "Borrar caché y recargar", - "Clear Cache": "Borrar caché", + "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", @@ -144,7 +144,7 @@ "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", + "Invalid Email Address": "Dirección de Correo Electrónico Inválida", "Invalid file%(extra)s": "Archivo inválido %(extra)s", "%(senderName)s invited %(targetName)s.": "%(senderName)s invitó a %(targetName)s.", "Invite new room members": "Invitar nuevos miembros a la sala", @@ -161,7 +161,7 @@ "Kick": "Expulsar", "Kicks user with given id": "Expulsar usuario con ID dado", "Labs": "Laboratorios", - "Leave room": "Dejar sala", + "Leave room": "Salir de la sala", "%(targetName)s left the room.": "%(targetName)s salió de la sala.", "Local addresses for this room:": "Direcciones locales para esta sala:", "Logged in as:": "Sesión iniciada como:", @@ -206,7 +206,7 @@ "Import": "Importar", "Incoming call from %(name)s": "Llamada de %(name)s", "Incoming video call from %(name)s": "Video-llamada de %(name)s", - "Incoming voice call from %(name)s": "Llamada telefónica de %(name)s", + "Incoming voice call from %(name)s": "Llamada de voz entrante de %(name)s", "Incorrect username and/or password.": "Usuario o contraseña incorrectos.", "Invited": "Invitado", "Jump to first unread message.": "Ir al primer mensaje sin leer.", @@ -258,9 +258,9 @@ "Search": "Búsqueda", "Search failed": "Falló la búsqueda", "Seen by %(userName)s at %(dateTime)s": "Visto por %(userName)s el %(dateTime)s", - "Send anyway": "Enviar igualmente", - "Sender device information": "Información del dispositivo del remitente", - "Send Invites": "Enviar invitaciones", + "Send anyway": "Enviar de todos modos", + "Sender device information": "Información del dispositivo emisor", + "Send Invites": "Enviar Invitaciones", "Send Reset Email": "Enviar e-mail de reinicio", "%(senderDisplayName)s sent an image.": "%(senderDisplayName)s envió una imagen.", "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s invitó a %(targetDisplayName)s a unirse a la sala.", @@ -272,7 +272,7 @@ "Session ID": "ID de sesión", "%(senderName)s set a profile picture.": "%(senderName)s puso una foto de perfil.", "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s estableció %(displayName)s como su nombre público.", - "Settings": "Configuración", + "Settings": "Ajustes", "Show panel": "Mostrar panel", "Show Text Formatting Toolbar": "Mostrar la barra de formato de texto", "Signed Out": "Desconectado", @@ -301,7 +301,7 @@ "Device key:": "Clave del 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.", - "Join as voice or video.": "Conecte con voz o vídeo.", + "Join as voice or video.": "Unirse con voz o vídeo.", "Manage Integrations": "Gestionar integraciones", "Markdown is disabled": "Markdown está desactivado", "Markdown is enabled": "Markdown está activado", @@ -310,7 +310,7 @@ "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", "Mobile phone number": "Número de teléfono móvil", - "Mobile phone number (optional)": "Número de teléfono móvil (opcional)", + "Mobile phone number (optional)": "Número telefónico móvil (opcional)", "Moderator": "Moderador", "Mute": "Silenciar", "%(serverName)s Matrix ID": "%(serverName)s ID de Matrix", @@ -428,10 +428,10 @@ "Turn Markdown off": "Desactivar markdown", "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 se ha podido añadir la dirección de correo electrónico", + "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 remove contact information": "No se ha podido eliminar la información de contacto", - "Unable to verify email address.": "No se ha podido verificar la dirección de correo electrónico.", + "Unable to verify email address.": "No es posible verificar la dirección de correo electrónico.", "Unban": "Revocar bloqueo", "Unbans user with given id": "Revoca el bloqueo del usuario con la identificación dada", "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "No se ha podido asegurar que la dirección a la que se envió esta invitación, coincide con una asociada a su cuenta.", @@ -620,7 +620,7 @@ "Messages containing my display name": "Mensajes que contienen mi nombre", "Messages in one-to-one chats": "Mensajes en chats uno a uno", "Unavailable": "No disponible", - "View Decrypted Source": "Ver fuente descifrada", + "View Decrypted Source": "Ver Fuente Descifrada", "Failed to update keywords": "Error al actualizar las palabras clave", "Notes:": "Notas:", "remove %(name)s from the directory.": "retirar %(name)s del directorio.", @@ -696,7 +696,7 @@ "All Rooms": "Todas las salas", "You cannot delete this message. (%(code)s)": "No puedes eliminar este mensaje. (%(code)s)", "Thursday": "Jueves", - "Forward Message": "Reenviar mensaje", + "Forward Message": "Reenviar Mensaje", "Logs sent": "Registros enviados", "Back": "Atrás", "Reply": "Responder", @@ -729,7 +729,7 @@ "View Community": "Ver la comunidad", "%(count)s Members|one": "%(count)s miembro", "Developer Tools": "Herramientas de Desarrollo", - "View Source": "Ver fuente", + "View Source": "Ver Fuente", "Event Content": "Contenido del Evento", "Unable to fetch notification target list": "No se puede obtener la lista de objetivos de notificación", "Quote": "Citar", @@ -800,8 +800,8 @@ "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", - "Delete %(count)s devices|other": "Borrar %(count)s dispositivos", - "Delete %(count)s devices|one": "Borrar dispositivo", + "Delete %(count)s devices|other": "Eliminar %(count)s dispositivos", + "Delete %(count)s devices|one": "Eliminar dispositivo", "Select devices": "Seleccionar dispositivos", "Drop file here to upload": "Soltar aquí el fichero a subir", " (unsupported)": " (no soportado)", @@ -834,7 +834,7 @@ "Make Moderator": "Convertir en Moderador", "bold": "negrita", "italic": "cursiva", - "deleted": "borrado", + "deleted": "eliminado", "underlined": "subrayado", "inline-code": "código en línea", "block-quote": "cita extensa", @@ -872,7 +872,7 @@ "Drop here to tag direct chat": "Soltar aquí para etiquetar la conversación", "Drop here to restore": "Soltar aquí para restaurar", "Community Invites": "Invitaciones a comunidades", - "You have no historical rooms": "No tiene salas en su historial", + "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 are trying to access a room.": "Está intentando acceder a una sala.", @@ -976,7 +976,7 @@ "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": "Borrar widget", + "Delete Widget": "Eliminar Componente", "Deleting a widget removes it for all users in this room. Are you sure you want to delete this widget?": "Al borrar un widget se elimina para todos usuarios de la sala. ¿Está seguro?", "Failed to remove widget": "Falló la eliminación del widget", "An error ocurred whilst trying to remove the widget from the room": "Ocurrió un error mientras se intentaba eliminar el widget de la sala", @@ -997,7 +997,7 @@ "%(severalUsers)sleft %(count)s times|other": "%(severalUsers)s se fueron %(count)s veces", "%(severalUsers)sleft %(count)s times|one": "%(severalUsers)s se fueron", "%(oneUser)sleft %(count)s times|other": "%(oneUser)s se fue %(count)s veces", - "%(oneUser)sleft %(count)s times|one": "%(oneUser)s se fue", + "%(oneUser)sleft %(count)s times|one": "%(oneUser)s salió", "%(severalUsers)sjoined and left %(count)s times|other": "%(severalUsers)s se unieron y fueron %(count)s veces", "%(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", @@ -1070,7 +1070,7 @@ "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", - "This setting cannot be changed later!": "Este ajuste no se puede cambiar posteriormente", + "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.", @@ -1085,7 +1085,7 @@ "Loading device info...": "Cargando información del dispositivo...", "Encryption key request": "Solicitud de clave de cifrado", "Log out and remove encryption keys?": "¿Salir y eliminar claves de cifrado?", - "Clear Storage and Sign Out": "Limpiar Almacenamiento y Desconectar", + "Clear Storage and Sign Out": "Borrar Almacenamiento y Cerrar Sesión", "Send Logs": "Enviar Registros", "Refresh": "Refrescar", "We encountered an error trying to restore your previous session.": "Encontramos un error al intentar restaurar su sesión anterior.", @@ -1134,17 +1134,17 @@ "Failed to update community": "Falló la actualización de la comunidad", "Unable to accept invite": "No se pudo aceptar la invitación", "Unable to join community": "No se pudo unir a comunidad", - "Leave Community": "Abandonar Comunidad", - "Leave %(groupName)s?": "¿Abandonar %(groupName)s?", + "Leave Community": "Salir de la Comunidad", + "Leave %(groupName)s?": "¿Salir de %(groupName)s?", "Unable to leave community": "No se pudo abandonar la comunidad", - "Community Settings": "Configuración de la comunidad", + "Community Settings": "Ajustes de Comunidad", "Changes made to your community name and avatar might not be seen by other users for up to 30 minutes.": "Las modificaciones realizadas al nombre y avatar de la comunidad pueden no mostrarse a otros usuarios hasta dentro de 30 minutos.", "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "Estas salas se muestran a los miembros de la comunidad en la página de la misma. Los miembros pueden unirse a las salas pulsando sobre ellas.", "Featured Rooms:": "Salas destacadas:", "Featured Users:": "Usuarios destacados:", "%(inviter)s has invited you to join this community": "%(inviter)s te invitó a unirte a esta comunidad", "Join this community": "Unirse a esta comunidad", - "Leave this community": "Abandonar esta comunidad", + "Leave this community": "Salir de esta comunidad", "You are an administrator of this community": "Usted es un administrador de esta comunidad", "You are a member of this community": "Usted es un miembro de esta comunidad", "Who can join this community?": "¿Quién puede unirse a esta comunidad?", @@ -1169,18 +1169,18 @@ "Error whilst fetching joined communities": "Se produjo un error al recuperar las comunidades suscritas", "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 todas formas o cancelar.", + "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.|one": "Reemviar mensaje o cancelar mensaje ahora.", + "%(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.", "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?", "Room": "Sala", - "Clear filter": "Limpiar filtro", - "Light theme": "Tema ligero", + "Clear filter": "Borrar filtro", + "Light theme": "Tema claro", "Dark theme": "Tema oscuro", "Status.im theme": "Tema Status.im", "Autocomplete Delay (ms):": "Retraso del completado automático (en ms):", From eced58701dda46a1f6e24c1cfd02151645f8e543 Mon Sep 17 00:00:00 2001 From: David Baker Date: Wed, 5 Sep 2018 20:34:03 +0100 Subject: [PATCH 127/162] Lint --- src/Registration.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Registration.js b/src/Registration.js index b3da7acb1e..a24a2d87f6 100644 --- a/src/Registration.js +++ b/src/Registration.js @@ -29,6 +29,10 @@ import { _t } from './languageHandler'; /** * Starts either the ILAG or full registration flow, depending * on what the HS supports + * + * @param {object} options + * @param {bool} options.go_home_on_cancel If true, goes to + * the hame page if the user cancels the action */ export async function startAnyRegistrationFlow(options) { if (options === undefined) options = {}; @@ -70,7 +74,7 @@ export async function startAnyRegistrationFlow(options) { } else if (options.go_home_on_cancel) { dis.dispatch({action: 'view_home_page'}); } - } + }, }); } } From 9e64a22884521035f7ff722804eb8f5503323cda Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 6 Sep 2018 11:44:13 +0100 Subject: [PATCH 128/162] s/DidMount/WillMount/ in MessageComposerInput This fixes the tests that broke with https://github.com/matrix-org/matrix-js-sdk/pull/717 This is because of https://github.com/vector-im/riot-web/blob/master/test/app-tests/joining.js#L63 which prevents the DOM nodes from actually ending up in the DOM, even though the react components get rendered. This means that WillMount and WillUnmount are called, but not DidMount. Using WillMount is more symmertrical anyway since the resulting teardown code must be in WillUnmount (since there is no DidUnmount). --- src/components/views/rooms/MessageComposerInput.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/views/rooms/MessageComposerInput.js b/src/components/views/rooms/MessageComposerInput.js index 267db89e8c..d5e45386bd 100644 --- a/src/components/views/rooms/MessageComposerInput.js +++ b/src/components/views/rooms/MessageComposerInput.js @@ -336,7 +336,7 @@ export default class MessageComposerInput extends React.Component { } } - componentDidMount() { + componentWillMount() { this.dispatcherRef = dis.register(this.onAction); this.historyManager = new ComposerHistoryManager(this.props.room.roomId, 'mx_slate_composer_history_'); } From 4c8d2de563933faa80230b551c8ef92e81f9759d Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 6 Sep 2018 11:48:23 +0100 Subject: [PATCH 129/162] Revert "Revert "Don't rely on room members to query power levels"" --- src/components/views/rooms/MessageComposer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/views/rooms/MessageComposer.js b/src/components/views/rooms/MessageComposer.js index dacd433e3e..ad4a1dfafe 100644 --- a/src/components/views/rooms/MessageComposer.js +++ b/src/components/views/rooms/MessageComposer.js @@ -309,8 +309,8 @@ export default class MessageComposer extends React.Component {
; } - const canSendMessages = !this.state.tombstone && this.props.room.currentState.maySendMessage( - MatrixClientPeg.get().credentials.userId); + const canSendMessages = !this.state.tombstone && + this.props.room.maySendMessage(); if (canSendMessages) { // This also currently includes the call buttons. Really we should From ee9ebf26d1c74d44587d69470b0dc5c0fadf7821 Mon Sep 17 00:00:00 2001 From: Osoitz Date: Thu, 6 Sep 2018 12:20:26 +0000 Subject: [PATCH 130/162] Translated using Weblate (Basque) Currently translated at 100.0% (1249 of 1249 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 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/eu.json b/src/i18n/strings/eu.json index 703602ea9f..888cf66e62 100644 --- a/src/i18n/strings/eu.json +++ b/src/i18n/strings/eu.json @@ -1264,5 +1264,7 @@ "Lazy loading members not supported": "Kideen karga alferrerako euskarririk ez", "Lazy loading is not supported by your current homeserver.": "Zure hasiera zerbitzariak ez du onartzen karga alferra.", "Legal": "Legezkoa", - "Please contact your service administrator to continue using this service.": "Jarri kontaktuan zerbitzuaren administratzailearekin zerbitzu hau erabiltzen jarraitzeko." + "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" } From 33a24b9fb4f84c0c7ba0bb3bf39cfe39d16b9e6d Mon Sep 17 00:00:00 2001 From: Milena Brum Date: Wed, 5 Sep 2018 20:12:01 +0000 Subject: [PATCH 131/162] Translated using Weblate (Spanish) Currently translated at 100.0% (1249 of 1249 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 | 136 +++++++++++++++++++-------------------- 1 file changed, 68 insertions(+), 68 deletions(-) diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index 98c0574eb4..05d88264ee 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -15,7 +15,7 @@ "and %(count)s others...|other": "y %(count)s otros...", "and %(count)s others...|one": "y otro...", "%(names)s and %(lastPerson)s are typing": "%(names)s y %(lastPerson)s están escribiendo", - "A new password must be entered.": "Una nueva clave debe ser ingresada.", + "A new password must be entered.": "Debes ingresar una nueva contraseña.", "%(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", @@ -33,7 +33,7 @@ "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", - "Change Password": "Cambiar clave", + "Change Password": "Cambiar Contraseña", "%(senderName)s changed their profile picture.": "%(senderName)s ha cambiado su foto 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.", @@ -56,8 +56,8 @@ "Conference calling is in development and may not be reliable.": "La llamada en conferencia está en desarrollo y puede no ser fiable.", "Conference calls are not supported in encrypted rooms": "Las llamadas en conferencia no son soportadas en salas cifradas", "Conference calls are not supported in this client": "Las llamadas en conferencia no están soportadas en este cliente", - "Confirm password": "Confirmar clave", - "Confirm your new password": "Confirma tu nueva clave", + "Confirm password": "Confirmar contraseña", + "Confirm your new password": "Confirma tu contraseña nueva", "Continue": "Continuar", "Could not connect to the integration server": "No se pudo conectar al servidor de integración", "Create an account": "Crear una cuenta", @@ -104,7 +104,7 @@ "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 join room": "Falló al unirse a la sala", + "Failed to join room": "No se pudo unir a la sala", "Failed to kick": "Falló al expulsar", "Failed to leave room": "Falló al dejar la sala", "Failed to load timeline position": "Falló al cargar el historico", @@ -120,7 +120,7 @@ "Failed to toggle moderator status": "Falló al cambiar estatus de moderador", "Failed to unban": "Falló al desbloquear", "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": "Falló al verificar el correo electrónico: Asegúrese hacer clic en el enlace del correo", + "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", "Favourites": "Favoritos", @@ -137,7 +137,7 @@ "Hide Text Formatting Toolbar": "Ocultar barra de herramientas de formato de texto", "Historical": "Histórico", "Homeserver is": "El servidor es", - "Identity Server is": "La identidad del servidor 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", "Incorrect verification code": "Verificación de código incorrecta", @@ -148,13 +148,13 @@ "Invalid file%(extra)s": "Archivo inválido %(extra)s", "%(senderName)s invited %(targetName)s.": "%(senderName)s invitó a %(targetName)s.", "Invite new room members": "Invitar nuevos miembros a la sala", - "Invites": "Invitar", + "Invites": "Invitaciones", "Invites user with given id to current room": "Invitar a usuario con ID dado a esta sala", "'%(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", "%(displayName)s is typing": "%(displayName)s está escribiendo", "Sign in with": "Quiero iniciar sesión con", - "Join Room": "Unirte a la sala", + "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", "%(senderName)s kicked %(targetName)s.": "%(senderName)s expulsó a %(targetName)s.", @@ -166,7 +166,7 @@ "Local addresses for this room:": "Direcciones locales para esta sala:", "Logged in as:": "Sesión iniciada como:", "Logout": "Cerrar Sesión", - "Low priority": "Baja prioridad", + "Low priority": "Prioridad baja", "Accept": "Aceptar", "Add": "Añadir", "Admin Tools": "Herramientas de administración", @@ -190,7 +190,7 @@ "Device already verified!": "¡El dispositivo ya ha sido verificado!", "Device ID:": "ID del dispositivo:", "device id: ": "id del dispositvo: ", - "Disable Notifications": "Desactivar notificaciones", + "Disable Notifications": "Deshabilitar Notificaciones", "Email address (optional)": "Dirección de correo electrónico (opcional)", "Enable Notifications": "Activar notificaciones", "Encrypted by a verified device": "Cifrado por un dispositivo verificado", @@ -205,9 +205,9 @@ "Home": "Inicio", "Import": "Importar", "Incoming call from %(name)s": "Llamada de %(name)s", - "Incoming video call from %(name)s": "Video-llamada 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.": "Usuario o contraseña incorrectos.", + "Incorrect username and/or password.": "Nombre de usuario y/o contraseña incorrectos.", "Invited": "Invitado", "Jump to first unread message.": "Ir al primer mensaje sin leer.", "Last seen": "Visto por última vez", @@ -221,7 +221,7 @@ "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", - "New Password": "Nueva contraseña", + "New Password": "Nueva Contraseña", "Analytics": "Analíticas", "Options": "Opciones", "Passphrases must match": "Las contraseñas deben coincidir", @@ -232,7 +232,7 @@ "File to import": "Fichero a importar", "You must join the room to see its files": "Debe unirse a la sala para ver los ficheros", "Reject all %(invitedRooms)s invites": "Rechazar todas las invitaciones a %(invitedRooms)s", - "Start new chat": "Iniciar una nueva conversación", + "Start new chat": "Iniciar nueva conversación", "Failed to invite": "Fallo en la invitación", "Failed to invite user": "No se pudo invitar al usuario", "Failed to invite the following users to the %(roomName)s room:": "No se pudo invitar a los siguientes usuarios a la sala %(roomName)s:", @@ -255,13 +255,13 @@ "Save": "Guardar", "Scroll to bottom of page": "Bajar al final de la página", "Scroll to unread messages": "Ir al primer mensaje sin leer", - "Search": "Búsqueda", + "Search": "Buscar", "Search failed": "Falló la búsqueda", "Seen by %(userName)s at %(dateTime)s": "Visto por %(userName)s el %(dateTime)s", "Send anyway": "Enviar de todos modos", "Sender device information": "Información del dispositivo emisor", "Send Invites": "Enviar Invitaciones", - "Send Reset Email": "Enviar e-mail de reinicio", + "Send Reset Email": "Enviar Correo Electrónico de Restauración", "%(senderDisplayName)s sent an image.": "%(senderDisplayName)s envió una imagen.", "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s invitó a %(targetDisplayName)s a unirse a la sala.", "Server error": "Error del servidor", @@ -277,7 +277,7 @@ "Show Text Formatting Toolbar": "Mostrar la barra de formato de texto", "Signed Out": "Desconectado", "Sign in": "Conectar", - "Sign out": "Desconectar", + "Sign out": "Cerrar sesión", "%(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", @@ -300,10 +300,10 @@ "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s eliminó el nombre de la sala.", "Device key:": "Clave del 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.", + "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.", "Manage Integrations": "Gestionar integraciones", - "Markdown is disabled": "Markdown está desactivado", + "Markdown is disabled": "Markdown está deshabilitado", "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", @@ -331,23 +331,23 @@ "No devices with registered encryption keys": "No hay dispositivos con claves de cifrado registradas", "No display name": "Sin nombre para mostrar", "No more results": "No hay más resultados", - "No results": "Sin resultados", + "No results": "No hay resultados", "No users have specific privileges in this room": "Ningún usuario tiene permisos específicos en esta sala", "OK": "Correcto", "olm version:": "versión de olm:", "Once encryption is enabled for a room it cannot be turned off again (for now)": "Una vez se active el cifrado en esta sala, no podrá ser desactivado (por ahora)", - "Only people who have been invited": "Sólo usuarios que han sido invitados", + "Only people who have been invited": "Solo personas que han sido invitadas", "Operation failed": "Falló la operación", "Password": "Contraseña", "Password:": "Contraseña:", "Passwords can't be empty": "Las contraseñas no pueden estar en blanco", - "People": "Gente", + "People": "Personas", "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.", - "Privacy warning": "Alerta de privacidad", + "Privacy warning": "Advertencia de privacidad", "Private Chat": "Conversación privada", "Privileged Users": "Usuarios con privilegios", "Profile": "Perfil", @@ -356,7 +356,7 @@ "Reason: %(reasonText)s": "Razón: %(reasonText)s", "Revoke Moderator": "Eliminar Moderador", "Refer a friend to Riot:": "Informar a un amigo sobre Riot:", - "Register": "Registro", + "Register": "Registrar", "%(targetName)s rejected the invitation.": "%(targetName)s rechazó la invitación.", "Reject invitation": "Rechazar invitación", "Rejoin": "Volver a unirse", @@ -369,7 +369,7 @@ "%(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": "Volver a la pantalla de inicio de sesión", + "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 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:", @@ -380,24 +380,24 @@ "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ó", - "The email address linked to your account must be entered.": "Debe introducir el e-mail asociado a su 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", + "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'", "The remote side failed to pick up": "El sitio remoto falló al sincronizar", - "This Home Server does not support login using email address.": "Este servidor no permite identificarse con direcciones e-mail.", + "This Home Server does not support login using email address.": "Este Servidor Doméstico no permite identificarse con direcciones e-mail.", "This invitation was sent to an email address which is not associated with this account:": "Se envió la invitación a un e-mail no asociado con 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", "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": "Esto es una vista previa de la sala. Las interacciones con la sala están desactivadas", + "This is a preview of this room. Room interactions have been disabled": "Esto es una vista previa de la sala. Las interacciones con la sala están deshabilitadas", "This phone number is already in use": "Este número de teléfono ya se está usando", "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", "To link to a room it must have an address.": "Para enlazar una sala, debe tener una dirección.", - "To reset your password, enter the email address linked to your account": "Para reiniciar su contraseña, introduzca el e-mail asociado a su cuenta", + "To reset your password, enter the email address linked to your account": "Para restablecer tu contraseña, ingresa la dirección de correo electrónico vinculada a tu cuenta", "Cancel": "Cancelar", "Dismiss": "Omitir", "powered by Matrix": "con el poder de Matrix", @@ -405,7 +405,7 @@ "Custom Server Options": "Opciones de Servidor Personalizado", "unknown error code": "Código de error desconocido", "Start verification": "Comenzar la verificación", - "Skip": "Saltar", + "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", @@ -476,9 +476,9 @@ "(could not connect media)": "(no se ha podido conectar medio)", "(no answer)": "(sin respuesta)", "(unknown failure: %(reason)s)": "(error desconocido: %(reason)s)", - "(warning: cannot be disabled again!)": "(aviso: ¡no se puede volver a desactivar!)", + "(warning: cannot be disabled again!)": "(advertencia: ¡no se puede volver a deshabilitar!)", "Warning!": "¡Advertencia!", - "WARNING: Device already verified, but keys do NOT MATCH!": "AVISO: Dispositivo ya verificado, ¡pero las claves NO COINCIDEN!", + "WARNING: Device already verified, but keys do NOT MATCH!": "ADVERTENCIA: Dispositivo ya verificado, ¡pero las claves NO COINCIDEN!", "Who can access this room?": "¿Quién puede acceder a esta sala?", "Who can read history?": "¿Quién puede leer el historial?", "Who would you like to add to this room?": "¿A quién quiere añadir a esta sala?", @@ -495,7 +495,7 @@ "Cannot add any more widgets": "no es posible agregar mas widgets", "Do you want to load widget from URL:": "desea cargar widget desde URL:", "Integrations Error": "error de integracion", - "Publish this room to the public in %(domain)s's room directory?": "Desea publicar esta sala al publico en el directorio de sala de %(domain)s?", + "Publish this room to the public in %(domain)s's room directory?": "Desea publicar esta sala al publico en el directorio de salas de %(domain)s?", "AM": "AM", "PM": "PM", "NOTE: Apps are not end-to-end encrypted": "NOTA: Las Apps no son cifradas de extremo a extremo", @@ -508,13 +508,13 @@ "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!": "Atención: 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!", + "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 have been invited to join this room by %(inviterName)s": "Ha sido invitado a entrar a esta sala por %(inviterName)s", "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": "Ha sido desconectado de todos los dispositivos y no continuara recibiendo notificaciones. Para volver a habilitar las notificaciones, vuelva a conectarse en cada dispositivo", + "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.", "You have no visible notifications": "No tiene notificaciones visibles", @@ -524,13 +524,13 @@ "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 password has been reset": "Su contraseña ha sido restablecida", + "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?", "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": "No debería confiarle aun para asegurar su información", "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.", - "Your home server does not support device management.": "Su servidor privado no suporta la gestión de dispositivos.", + "Your home server does not support device management.": "Tu servidor doméstico no suporta la gestión de dispositivos.", "Sun": "Dom", "Mon": "Lun", "Tue": "Mar", @@ -571,7 +571,7 @@ "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": "Aviso: 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 cualquiera que conozca el 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", @@ -604,7 +604,7 @@ "Leave": "Salir", "Uploaded on %(date)s by %(user)s": "Subido el %(date)s por %(user)s", "Send Custom Event": "Enviar Evento Personalizado", - "All notifications are currently disabled for all targets.": "Las notificaciones estan desactivadas para todos los objetivos.", + "All notifications are currently disabled for all targets.": "Las notificaciones están deshabilitadas para todos los objetivos.", "Failed to send logs: ": "Error al enviar registros: ", "delete the alias.": "borrar el alias.", "To return to your account in future you need to set a password": "Para regresar a tu cuenta en el futuro debes establecer una contraseña", @@ -614,7 +614,7 @@ "You cannot delete this image. (%(code)s)": "No puedes eliminar esta imagen. (%(code)s)", "Cancel Sending": "Cancelar envío", "This Room": "Esta sala", - "The Home Server may be too old to support third party networks": "El Home Server puede ser demasiado antiguo para soportar redes de terceros", + "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", @@ -636,7 +636,7 @@ "Members": "Miembros", "No update available.": "No hay actualizaciones disponibles.", "Noisy": "Ruidoso", - "Failed to get protocol list from Home Server": "Error al obtener la lista de protocolos desde el Home Server", + "Failed to get protocol list from Home Server": "Error al obtener la lista de protocolos desde el Servidor Doméstico", "Collecting app version information": "Recolectando información de la versión de la aplicación", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "¿Borrar el alias de la sala %(alias)s y eliminar %(name)s del directorio?", "This will allow you to return to your account after signing out, and sign in on other devices.": "Esto te permitirá regresar a tu cuenta después de cerrar sesión, así como iniciar sesión en otros dispositivos.", @@ -693,7 +693,7 @@ "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", - "All Rooms": "Todas las salas", + "All Rooms": "Todas las Salas", "You cannot delete this message. (%(code)s)": "No puedes eliminar este mensaje. (%(code)s)", "Thursday": "Jueves", "Forward Message": "Reenviar Mensaje", @@ -710,7 +710,7 @@ "Yesterday": "Ayer", "Error encountered (%(errorDetail)s).": "Error encontrado (%(errorDetail)s).", "Login": "Iniciar sesión", - "Low Priority": "Baja Prioridad", + "Low Priority": "Prioridad Baja", "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", @@ -722,7 +722,7 @@ "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.", "Enable email notifications": "Habilitar notificaciones por email", "Event Type": "Tipo de Evento", - "No rooms to show": "Sin salas para mostrar", + "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", @@ -784,16 +784,16 @@ "Not a valid Riot keyfile": "No es un archivo de claves de Riot válido", "Message Pinning": "Mensajes con chincheta", "Jitsi Conference Calling": "Llamadas de conferencia Jitsi", - "Disable Emoji suggestions while typing": "Desactivar sugerencias de Emoji mientras escribe", + "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", "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": "Desactivar emoji grande en la conversación", + "Disable big emoji in chat": "Deshabilitar emoji grande en la conversación", "Automatically replace plain text Emoji": "Sustituir automáticamente Emojis de texto", "Mirror local video feed": "Clonar transmisión de video local", - "Disable Community Filter Panel": "Desactivar Panel de Filtro de la Comunidad", - "Disable Peer-to-Peer for 1:1 calls": "Desactivar pares para llamadas 1:1", + "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", "Enable URL previews for this room (only affects you)": "Activar vista previa de URL en esta sala (sólo le afecta a ud.)", @@ -897,11 +897,11 @@ "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)", - "You don't currently have any stickerpacks enabled": "En este momento no tiene pegatinas activadas", - "Add a stickerpack": "Añadir un lote de pegatinas", - "Stickerpack": "Lote de pegatinas", - "Hide Stickers": "Ocultar pegatinas", - "Show Stickers": "Mostrar pegatinas", + "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", @@ -928,13 +928,13 @@ "Message removed by %(userId)s": "Mensaje eliminado por %(userId)s", "Message removed": "Mensaje eliminado", "Robot check is currently unavailable on desktop - please use a web browser": "La comprobación de robot no está actualmente disponible en escritorio - por favor, use un navegador Web", - "This Home Server would like to make sure you are not a robot": "A este Home Server le gustaría asegurarse de que no es un robot", + "This Home Server would like to make sure you are not a robot": "Este Servidor Doméstico quiere asegurarse de que no eres un robot", "Sign in with CAS": "Ingresar con CAS", - "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Puede usar las opciones personalizadas del servidor para ingresar en otros servidores de Matrix especificando una URL del Home server diferente.", - "This allows you to use this app with an existing Matrix account on a different home server.": "Esto le permite usar esta aplicación con una cuenta de Matrix ya existente en un home server diferente.", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Puede usar las opciones personalizadas del servidor para ingresar en otros servidores de Matrix especificando una URL del Servidor Doméstico diferente.", + "This allows you to use this app with an existing Matrix account on a different home server.": "Esto le permite usar esta aplicación con una cuenta de Matrix ya existente en un servidor doméstico diferente.", "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Puede también usar un servidor de identidad personalizado, pero esto habitualmente evitará la interacción con usuarios mediante dirección de correo electrónico.", "An email has been sent to %(emailAddress)s": "Se envió un correo electrónico a %(emailAddress)s", - "Please check your email to continue registration.": "Por favor compruebe su correo electrónico para continuar con el registro.", + "Please check your email to continue registration.": "Por favor consulta tu correo electrónico para continuar con el registro.", "Token incorrect": "Token incorrecto", "A text message has been sent to %(msisdn)s": "Se envió un mensaje de texto a %(msisdn)s", "Please enter the code it contains:": "Por favor introduzca el código que contiene:", @@ -948,8 +948,8 @@ "You are registering with %(SelectedTeamName)s": "Está registrándose con %(SelectedTeamName)s", "Default server": "Servidor por defecto", "Custom server": "Servidor personalizado", - "Home server URL": "URL del Home server", - "Identity server URL": "URL del servidor de Identidad", + "Home server URL": "URL del servidor doméstico", + "Identity server URL": "URL del servidor de identidad", "What does this mean?": "¿Qué significa esto?", "Remove from community": "Eliminar de la comunidad", "Disinvite this user from community?": "¿Quitar como invitado a este usuario de la comunidad?", @@ -1084,14 +1084,14 @@ "Your unverified device '%(displayName)s' is requesting encryption keys.": "Su 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?": "¿Salir y eliminar claves de cifrado?", + "Log out and remove encryption keys?": "¿Cerrar sesión y eliminar claves de cifrado?", "Clear Storage and Sign Out": "Borrar Almacenamiento y Cerrar Sesión", "Send Logs": "Enviar Registros", "Refresh": "Refrescar", "We encountered an error trying to restore your previous session.": "Encontramos un error al intentar restaurar su sesión anterior.", "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.": "Si ha usado anteriormente una versión más reciente de Riot, su sesión puede ser incompatible con ésta. Cierre la ventana y vuelva a la versión más reciente.", "Clearing your browser's storage may fix the problem, but will sign you out and cause any encrypted chat history to become unreadable.": "Limpiando el almacenamiento del navegador puede arreglar el problema, pero le desconectará y cualquier historial de conversación cifrado se volverá ilegible.", - "User names may only contain letters, numbers, dots, hyphens and underscores.": "Los nombres de usuario pueden contener letras, números, punto, guiones y subrayado.", + "User names may only contain letters, numbers, dots, hyphens and underscores.": "Los nombres de usuario solo pueden contener letras, números, puntos, guiones y guiones bajos.", "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", @@ -1153,7 +1153,7 @@ "Long Description (HTML)": "Descripción Larga (HTML)", "Description": "Descripción", "Community %(groupId)s not found": "No se encontraron %(groupId)s de la comunidad", - "This Home server does not support communities": "Este Home server no soporta comunidades", + "This Home server does not support communities": "Este Servidor Doméstico no soporta comunidades", "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", @@ -1196,7 +1196,7 @@ "Start automatically after system login": "Iniciar automáticamente después de ingresar en el sistema", "No Audio Outputs detected": "No se detectaron Salidas de Sonido", "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 haya seguido el enlace en él, pulse debajo.", + "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.", "Try the app first": "Probar primero la app", @@ -1206,9 +1206,9 @@ "This server does not support authentication with a phone number.": "Este servidor no soporta autenticación mediante número de teléfono.", "Missing password.": "Falta la contraseña.", "Passwords don't match.": "Las contraseñas no coinciden.", - "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "La contraseña es demasiado corta (mín %(MIN_PASSWORD_LENGTH)s).", - "This doesn't look like a valid email address.": "Ésta no parece una dirección de correo electrónico válida.", - "This doesn't look like a valid phone number.": "Éste no parece un número de teléfono válido.", + "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Contraseña demasiado corta (mínimo %(MIN_PASSWORD_LENGTH)s).", + "This doesn't look like a valid email address.": "Esto no parece ser una dirección de correo electrónico válida.", + "This doesn't look like a valid phone number.": "Esto no parece ser un número telefónico válido.", "An unknown error occurred.": "Ocurrió un error desconocido.", "I already have an account": "Ya tengo una cuenta", "Notify the whole room": "Notificar a toda la sala", From 32da44615eff23d8d48cd79887807a735741df47 Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 6 Sep 2018 15:50:41 +0100 Subject: [PATCH 132/162] Use some/every instead of doing it manually --- src/Registration.js | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/Registration.js b/src/Registration.js index a24a2d87f6..070178fecb 100644 --- a/src/Registration.js +++ b/src/Registration.js @@ -43,20 +43,12 @@ export async function startAnyRegistrationFlow(options) { // ones like email & msisdn which require the user to supply // the relevant details in advance. We err on the side of // caution though. - let hasIlagFlow = false; - for (const flow of flows) { - let flowSuitable = true; - for (const stage of flow.stages) { - if (!['m.login.dummy', 'm.login.recaptcha'].includes(stage)) { - flowSuitable = false; - break; - } - } - if (flowSuitable) { - hasIlagFlow = true; - break; - } - } + const hasIlagFlow = flows.some((flow) => { + return flow.stages.every((stage) => { + return ['m.login.dummy', 'm.login.recaptcha'].includes(stage); + }); + }); + if (hasIlagFlow) { dis.dispatch({ action: 'view_set_mxid', From 755c13fcd8478b2d68641f6b8b650a0bf2820b55 Mon Sep 17 00:00:00 2001 From: random Date: Thu, 6 Sep 2018 15:15:11 +0000 Subject: [PATCH 133/162] Translated using Weblate (Italian) Currently translated at 100.0% (1249 of 1249 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 | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index 78ee961578..919d6794eb 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -1255,5 +1255,15 @@ "Please contact your homeserver administrator.": "Contatta l'amministratore del tuo homeserver.", "Lazy loading members not supported": "Il caricamento lento dei membri non è supportato", "Lazy loading is not supported by your current homeserver.": "Il caricamento lento non è supportato dal tuo attuale homeserver.", - "Legal": "Informazioni legali" + "Legal": "Informazioni legali", + "Forces the current outbound group session in an encrypted room to be discarded": "Forza l'eliminazione dell'attuale sessione di gruppo in uscita in una stanza criptata", + "Error Discarding Session": "Errore nell'eliminazione della sessione", + "This room has been replaced and is no longer active.": "Questa stanza è stata sostituita e non è più attiva.", + "The conversation continues here.": "La conversazione continua qui.", + "Upgrade room to version %(ver)s": "Aggiorna la stanza alla versione %(ver)s", + "This room is a continuation of another conversation.": "Questa stanza è la continuazione di un'altra conversazione.", + "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" } From fce40aead131052534b922cae6bb889ff8917c9e Mon Sep 17 00:00:00 2001 From: Milena Brum Date: Thu, 6 Sep 2018 15:12:47 +0000 Subject: [PATCH 134/162] Translated using Weblate (Spanish) Currently translated at 100.0% (1249 of 1249 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 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index 05d88264ee..aabde22f1b 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -309,8 +309,8 @@ "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", - "Mobile phone number": "Número de teléfono móvil", - "Mobile phone number (optional)": "Número telefónico móvil (opcional)", + "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", From b9a8d765bb7adcffd1bd6224355a140ff45f293b Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Fri, 7 Sep 2018 01:13:59 +0000 Subject: [PATCH 135/162] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (1251 of 1251 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index ffd623e6cf..ef2e1df135 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -1266,5 +1266,8 @@ "The room upgrade could not be completed": "聊天室升級可能不完整", "Upgrade this room to version %(version)s": "升級此聊天室到版本 %(version)s", "Forces the current outbound group session in an encrypted room to be discarded": "強制目前在已加密的聊天室中的外發群組工作階段丟棄", - "Error Discarding Session": "丟棄工作階段錯誤" + "Error Discarding Session": "丟棄工作階段錯誤", + "Registration Required": "需要註冊", + "You need to register to do this. Would you like to register now?": "您必須註冊以繼續。您想要現在註冊嗎?", + "Unable to query for supported registration methods": "無法查詢支援的註冊方式" } From fec7d2ee5fcbb5353d06bd5ac6fb3e0d6361afba Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Fri, 7 Sep 2018 12:00:19 +0200 Subject: [PATCH 136/162] avoid updating the memberlist while the spinner is shown the memberlist gets updated constantly while the LL members are being added to the room state. this slows things down unneed, and is one of the main cause of dropping frames when member arrive. --- src/components/views/rooms/MemberList.js | 29 ++++++++++++++++-------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js index d302bee832..5861348d98 100644 --- a/src/components/views/rooms/MemberList.js +++ b/src/components/views/rooms/MemberList.js @@ -33,6 +33,7 @@ module.exports = React.createClass({ getInitialState: function() { this.memberDict = this.getMemberDict(); + this._mounted = false; const cli = MatrixClientPeg.get(); if (cli.hasLazyLoadMembersEnabled()) { @@ -43,6 +44,19 @@ module.exports = React.createClass({ }, componentWillMount: function() { + const cli = MatrixClientPeg.get(); + if (!cli.hasLazyLoadMembersEnabled()) { + this._listenForMembersChanges(); + } + const enablePresenceByHsUrl = SdkConfig.get()["enable_presence_by_hs_url"]; + const hsUrl = MatrixClientPeg.get().baseUrl; + this._showPresence = true; + if (enablePresenceByHsUrl && enablePresenceByHsUrl[hsUrl] !== undefined) { + this._showPresence = enablePresenceByHsUrl[hsUrl]; + } + }, + + _listenForMembersChanges: function() { const cli = MatrixClientPeg.get(); cli.on("RoomState.members", this.onRoomStateMember); cli.on("RoomMember.name", this.onRoomMemberName); @@ -53,25 +67,22 @@ module.exports = React.createClass({ // the information contained in presence events). cli.on("User.lastPresenceTs", this.onUserLastPresenceTs); // cli.on("Room.timeline", this.onRoomTimeline); - - const enablePresenceByHsUrl = SdkConfig.get()["enable_presence_by_hs_url"]; - const hsUrl = MatrixClientPeg.get().baseUrl; - - this._showPresence = true; - if (enablePresenceByHsUrl && enablePresenceByHsUrl[hsUrl] !== undefined) { - this._showPresence = enablePresenceByHsUrl[hsUrl]; - } }, componentDidMount: async function() { + this._mounted = true; const cli = MatrixClientPeg.get(); if (cli.hasLazyLoadMembersEnabled()) { await this._waitForMembersToLoad(); - this.setState(this._getMembersState()); + if (this._mounted) { + this.setState(this._getMembersState()); + this._listenForMembersChanges(); + } } }, componentWillUnmount: function() { + this._mounted = false; const cli = MatrixClientPeg.get(); if (cli) { cli.removeListener("RoomState.members", this.onRoomStateMember); From fa669bf09651c72b803a36a5ed6638b41f3036e4 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 7 Sep 2018 12:18:25 +0100 Subject: [PATCH 137/162] Error on splash screen if sync is failing Display an error on the splash screen with the spinner if the sync request is not working, rather than just sitting there with a spinner as if nothing is wrong. Fixes https://github.com/vector-im/riot-web/issues/7148 --- res/css/structures/_MatrixChat.scss | 12 ++++++++++ src/components/structures/MatrixChat.js | 19 +++++++++++++++- src/i18n/strings/en_EN.json | 9 ++++---- src/utils/ErrorUtils.js | 30 ++++++++++++++++++++++++- 4 files changed, 64 insertions(+), 6 deletions(-) diff --git a/res/css/structures/_MatrixChat.scss b/res/css/structures/_MatrixChat.scss index 156b1709fe..eae1f56180 100644 --- a/res/css/structures/_MatrixChat.scss +++ b/res/css/structures/_MatrixChat.scss @@ -56,6 +56,18 @@ limitations under the License. flex: 1; } +.mx_MatrixChat_syncError { + color: $accent-fg-color; + background-color: $warning-bg-color; + border-radius: 5px; + display: table; + padding: 30px; + position: absolute; + top: 100px; + left: 50%; + transform: translateX(-50%); +} + .mx_MatrixChat .mx_LeftPanel { order: 1; diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index 333e200e44..71e61cda22 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -46,6 +46,7 @@ import KeyRequestHandler from '../../KeyRequestHandler'; import { _t, getCurrentLanguage } from '../../languageHandler'; import SettingsStore, {SettingLevel} from "../../settings/SettingsStore"; import { startAnyRegistrationFlow } from "../../Registration.js"; +import { messageForSyncError } from '../../utils/ErrorUtils'; /** constants for MatrixChat.state.view */ const VIEWS = { @@ -179,6 +180,8 @@ export default React.createClass({ // When showing Modal dialogs we need to set aria-hidden on the root app element // and disable it when there are no dialogs hideToSRUsers: false, + + syncError: null, // If the current syncing status is ERROR, the error object, otherwise null. }; return s; }, @@ -1242,13 +1245,20 @@ export default React.createClass({ return self._loggedInView.child.canResetTimelineInRoom(roomId); }); - cli.on('sync', function(state, prevState) { + cli.on('sync', function(state, prevState, data) { // LifecycleStore and others cannot directly subscribe to matrix client for // events because flux only allows store state changes during flux dispatches. // So dispatch directly from here. Ideally we'd use a SyncStateStore that // would do this dispatch and expose the sync state itself (by listening to // its own dispatch). dis.dispatch({action: 'sync_state', prevState, state}); + + if (state === "ERROR") { + self.setState({syncError: data.error}); + } else if (self.state.syncError) { + self.setState({syncError: null}); + } + self.updateStatusIndicator(state, prevState); if (state === "SYNCING" && prevState === "SYNCING") { return; @@ -1744,8 +1754,15 @@ export default React.createClass({ } else { // we think we are logged in, but are still waiting for the /sync to complete const Spinner = sdk.getComponent('elements.Spinner'); + let errorBox; + if (this.state.syncError) { + errorBox =
+ {messageForSyncError(this.state.syncError)} +
; + } return (
+ {errorBox} { _t('Logout') } diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index d06b986474..4643d4bdff 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -89,6 +89,7 @@ "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Your email address does not appear to be associated with a Matrix ID on this Homeserver.", "Registration Required": "Registration Required", "You need to register to do this. Would you like to register now?": "You need to register to do this. Would you like to register now?", + "Register": "Register", "Default": "Default", "Restricted": "Restricted", "Moderator": "Moderator", @@ -203,6 +204,10 @@ "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.", + "Unable to connect to Homeserver. Retrying...": "Unable to connect to Homeserver. Retrying...", "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?", @@ -655,7 +660,6 @@ "Email address (optional)": "Email address (optional)", "You are registering with %(SelectedTeamName)s": "You are registering with %(SelectedTeamName)s", "Mobile phone number (optional)": "Mobile phone number (optional)", - "Register": "Register", "Default server": "Default server", "Custom server": "Custom server", "Home server URL": "Home server URL", @@ -694,9 +698,6 @@ "A new version of Riot is available.": "A new version of Riot is available.", "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", "Set Password": "Set Password", - "Please contact your service administrator to continue using the service.": "Please contact your service administrator to continue using the service.", - "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 get this limit increased.": "Please contact your service administrator to get this limit increased.", "This homeserver has hit its Monthly Active User limit so some users will not be able to log in.": "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.": "This homeserver has exceeded one of its resource limits so some users will not be able to log in.", diff --git a/src/utils/ErrorUtils.js b/src/utils/ErrorUtils.js index 97a29a3572..4a56d64ef1 100644 --- a/src/utils/ErrorUtils.js +++ b/src/utils/ErrorUtils.js @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { _t } from '../languageHandler'; +import { _t, _td } from '../languageHandler'; /** * Produce a translated error message for a @@ -48,3 +48,31 @@ export function messageForResourceLimitError(limitType, adminContact, strings, e return _t(errString, {}, extraTranslations); } } + +export function messageForSyncError(err) { + if (err.errcode === 'M_RESOURCE_LIMIT_EXCEEDED') { + const limitError = messageForResourceLimitError( + err.data.limit_type, + err.data.admin_contact, + { + 'monthly_active_user': _td("This homeserver has hit its Monthly Active User limit."), + '': _td("This homeserver has exceeded one of its resource limits."), + }, + ); + const adminContact = messageForResourceLimitError( + err.data.limit_type, + err.data.admin_contact, + { + '': _td("Please contact your service administrator to continue using the service."), + }, + ); + return
+
{limitError}
+
{adminContact}
+
; + } else { + return
+ {_t("Unable to connect to Homeserver. Retrying...")} +
; + } +} From 9cc9fbf924aad82929e3502d39f4a018d31c354e Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Fri, 7 Sep 2018 14:05:26 +0200 Subject: [PATCH 138/162] avoid memberlist refresh for events related to rooms other but the current --- src/components/views/rooms/MemberList.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js index d302bee832..6522dc2e2d 100644 --- a/src/components/views/rooms/MemberList.js +++ b/src/components/views/rooms/MemberList.js @@ -163,15 +163,22 @@ module.exports = React.createClass({ }, onRoomStateMember: function(ev, state, member) { + if (member.roomId !== this.props.roomId) { + return; + } this._updateList(); }, onRoomMemberName: function(ev, member) { + if (member.roomId !== this.props.roomId) { + return; + } this._updateList(); }, onRoomStateEvent: function(event, state) { - if (event.getType() === "m.room.third_party_invite") { + if (event.getRoomId() === this.props.roomId && + event.getType() === "m.room.third_party_invite") { this._updateList(); } }, From 101dad83aaeaec1a3a7456832d918abe63d8e60f Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Fri, 7 Sep 2018 14:16:26 +0200 Subject: [PATCH 139/162] same for right panel --- src/components/structures/RightPanel.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/structures/RightPanel.js b/src/components/structures/RightPanel.js index 47b3df65cb..86870718e8 100644 --- a/src/components/structures/RightPanel.js +++ b/src/components/structures/RightPanel.js @@ -186,6 +186,9 @@ module.exports = React.createClass({ }, onRoomStateMember: function(ev, state, member) { + if (member.roomId !== this.props.roomId) { + return; + } // redraw the badge on the membership list if (this.state.phase === this.Phase.RoomMemberList && member.roomId === this.props.roomId) { this._delayedUpdate(); From 55271c858e703c22a9205dde6aa46fe313f416ce 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 140/162] Translated using Weblate (French) Currently translated at 100.0% (1251 of 1251 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 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index c4efb76e55..9d950f2ef1 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -1266,5 +1266,8 @@ "The room upgrade could not be completed": "La mise à niveau du salon n'a pas pu être effectuée", "Upgrade this room to version %(version)s": "Mettre à niveau ce salon vers la version %(version)s", "Forces the current outbound group session in an encrypted room to be discarded": "Force la session de groupe sortante actuelle dans un salon chiffré à être rejetée", - "Error Discarding Session": "Erreur lors du rejet de la session" + "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" } From f8cc510542f6578d73bd065f89c21eba43b7ee1f Mon Sep 17 00:00:00 2001 From: Szimszon Date: Fri, 7 Sep 2018 06:48:22 +0000 Subject: [PATCH 141/162] Translated using Weblate (Hungarian) Currently translated at 100.0% (1251 of 1251 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 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index c2c367f106..a88dc6cc28 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -1266,5 +1266,8 @@ "The room upgrade could not be completed": "A szoba frissítését nem sikerült befejezni", "Upgrade this room to version %(version)s": "A szoba frissítése %(version)s verzióra", "Error Discarding Session": "Hiba a munkamenet törlésénél", - "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" + "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" } From 69f2f06468c4652d60124cd58f66bddd716176aa Mon Sep 17 00:00:00 2001 From: Milena Brum Date: Thu, 6 Sep 2018 17:36:29 +0000 Subject: [PATCH 142/162] Translated using Weblate (Spanish) Currently translated at 99.7% (1248 of 1251 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 | 92 ++++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index aabde22f1b..24044b5c74 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -25,9 +25,9 @@ "Attachment": "Adjunto", "Autoplay GIFs and videos": "Reproducir automáticamente GIFs y videos", "%(senderName)s banned %(targetName)s.": "%(senderName)s vetó a %(targetName)s.", - "Ban": "Bloquear", - "Banned users": "Usuarios bloqueados", - "Bans user with given id": "Bloquear usuario por ID", + "Ban": "Vetar", + "Banned users": "Usuarios vetados", + "Bans user with given id": "Veta al usuario con la ID dada", "Blacklisted": "En lista negra", "Bulk Options": "Opciones masivas", "Call Timeout": "Tiempo de espera de la llamada", @@ -75,7 +75,7 @@ "Default": "Por defecto", "Device ID": "ID del dispositivo", "Devices": "Dispositivos", - "Devices will not yet be able to decrypt history from before they joined the room": "Los dispositivos aun no serán capaces de descifrar el historial antes de haberse unido a la sala", + "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", @@ -88,12 +88,12 @@ "Email address": "Dirección de correo electrónico", "Email, name or matrix ID": "Correo electrónico, nombre o Matrix ID", "Emoji": "Emoticones", - "Enable encryption": "Habilitar encriptación", - "Encrypted messages will not be visible on clients that do not yet implement encryption": "Los mensajes encriptados no serán visibles en navegadores que no han implementado aun la encriptación", + "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 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 is in beta and may not be reliable": "El cifrado de extremo a extremo está en pruebas, podría no ser fiable", + "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", @@ -106,7 +106,7 @@ "Failed to forget room %(errCode)s": "Falló al 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": "Falló al dejar la sala", + "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 reject invite": "Falló al rechazar invitación", @@ -176,10 +176,10 @@ "Default Device": "Dispositivo por defecto", "Microphone": "Micrófono", "Camera": "Cámara", - "Hide removed messages": "Ocultar mensajes borrados", + "Hide removed messages": "Ocultar mensajes eliminados", "Alias (optional)": "Alias (opcional)", "Anyone": "Cualquiera", - "Click here to join the discussion!": "¡Pulse aquí para unirse a la conversación!", + "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", "%(count)s new messages|other": "%(count)s mensajes nuevos", @@ -195,8 +195,8 @@ "Enable Notifications": "Activar 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": "Cifrado activo en esta sala", - "Encryption is not enabled in this room": "Cifrado desactivado en esta sala", + "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.", "Export": "Exportar", @@ -204,12 +204,12 @@ "Failed to upload profile picture!": "¡Fallo al enviar la foto de perfil!", "Home": "Inicio", "Import": "Importar", - "Incoming call from %(name)s": "Llamada de %(name)s", + "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", - "Jump to first unread message.": "Ir al primer mensaje sin leer.", + "Jump to first unread message.": "Ir al primer mensaje no leído.", "Last seen": "Visto por última vez", "Level:": "Nivel:", "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s hizo visible el historial futuro de la sala para todos los miembros de la sala, desde el momento en que son invitados.", @@ -335,7 +335,7 @@ "No users have specific privileges in this room": "Ningún usuario tiene permisos específicos en esta sala", "OK": "Correcto", "olm version:": "versión de olm:", - "Once encryption is enabled for a room it cannot be turned off again (for now)": "Una vez se active el cifrado en esta sala, no podrá ser desactivado (por ahora)", + "Once encryption is enabled for a room it cannot be turned off again (for now)": "Una vez que se habilita el cifrado en una sala no se puede volver a desactivar (por ahora)", "Only people who have been invited": "Solo personas que han sido invitadas", "Operation failed": "Falló la operación", "Password": "Contraseña", @@ -383,15 +383,15 @@ "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'", - "The remote side failed to pick up": "El sitio remoto falló al sincronizar", + "The remote side failed to pick up": "El lado remoto no contestó", "This Home Server does not support login using email address.": "Este Servidor Doméstico no permite identificarse con direcciones e-mail.", - "This invitation was sent to an email address which is not associated with this account:": "Se envió la invitación a un e-mail no asociado con esta cuenta:", + "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", "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": "Esto es una vista previa de la sala. Las interacciones con la sala están deshabilitadas", + "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 room": "Esta sala", "This room is not accessible by remote Matrix servers": "Esta sala no es accesible por otros servidores Matrix", @@ -432,8 +432,8 @@ "Unable to create widget.": "No se ha podido crear el widget.", "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": "Revocar bloqueo", - "Unbans user with given id": "Revoca el bloqueo del usuario con la identificación dada", + "Unban": "Quitar Veto", + "Unbans user with given id": "Quita el veto al usuario con la ID dada", "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "No se ha podido asegurar que la dirección a la que se envió esta invitación, coincide con una asociada a su cuenta.", "Unable to capture screen": "No se ha podido capturar la pantalla", "Unable to enable Notifications": "No se ha podido activar las notificaciones", @@ -485,12 +485,12 @@ "Who would you like to communicate with?": "¿Con quién quiere comunicarse?", "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s retiró la invitación de %(targetName)s.", "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 chats directos con este usuario:", + "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'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á tratando de acceder a %(roomName)s.", + "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.", "Cannot add any more widgets": "no es posible agregar mas widgets", "Do you want to load widget from URL:": "desea cargar widget desde URL:", @@ -512,13 +512,13 @@ "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 have been invited to join this room by %(inviterName)s": "Ha sido invitado a entrar a esta sala por %(inviterName)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", "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.", "You have no visible notifications": "No tiene notificaciones visibles", - "You may wish to login with a different account, or add this email to this account.": "Puede ingresar con una cuenta diferente, o agregar este e-mail a esta cuenta.", + "You may wish to login with a different account, or add this email to this account.": "Quizás quieras iniciar sesión con otra cuenta, o añadir este correo electrónico a esta cuenta.", "You must register to use this functionality": "Usted debe ser un registrar para usar esta funcionalidad", "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.", @@ -528,7 +528,7 @@ "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?", "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": "No debería confiarle aun para asegurar su información", + "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.", "Your home server does not support device management.": "Tu servidor doméstico no suporta la gestión de dispositivos.", "Sun": "Dom", @@ -559,7 +559,7 @@ "Dec": "Dic", "Warning": "Advertencia", "Unpin Message": "Desmarcar Mensaje", - "Online": "Conectado", + "Online": "En línea", "Submit debug logs": "Enviar registros de depuración", "The platform you're on": "La plataforma en la que te encuentras", "The version of Riot.im": "La versión de Riot.im", @@ -606,7 +606,7 @@ "Send Custom Event": "Enviar Evento Personalizado", "All notifications are currently disabled for all targets.": "Las notificaciones están deshabilitadas para todos los objetivos.", "Failed to send logs: ": "Error al enviar registros: ", - "delete the alias.": "borrar el alias.", + "delete the alias.": "eliminar el alias.", "To return to your account in future you need to set a password": "Para regresar a tu cuenta en el futuro debes establecer una contraseña", "Forget": "Olvidar", "World readable": "Legible por todo el mundo", @@ -623,7 +623,7 @@ "View Decrypted Source": "Ver Fuente Descifrada", "Failed to update keywords": "Error al actualizar las palabras clave", "Notes:": "Notas:", - "remove %(name)s from the directory.": "retirar %(name)s del directorio.", + "remove %(name)s from the directory.": "eliminar a %(name)s del directorio.", "Notifications on the following keywords follow rules which can’t be displayed here:": "Las notificaciones de las siguientes palabras clave siguen reglas que no se pueden mostrar aquí:", "Safari and Opera work too.": "Safari y Opera también funcionan.", "Please set a password!": "¡Por favor establece una contraseña!", @@ -644,21 +644,21 @@ "Enable notifications for this account": "Habilitar notificaciones para esta cuenta", "Directory": "Directorio", "Invite to this community": "Invitar a esta comunidad", - "Search for a room": "Buscar sala", + "Search for a room": "Buscar una sala", "Messages containing keywords": "Mensajes que contienen palabras clave", "Error saving email notification preferences": "Error al guardar las preferencias de notificación por email", "Tuesday": "Martes", "Enter keywords separated by a comma:": "Introduzca palabras clave separadas por una coma:", "Search…": "Buscar…", "You have successfully set a password and an email address!": "¡Has establecido una nueva contraseña y dirección de correo electrónico!", - "Remove %(name)s from the directory?": "¿Retirar %(name)s del directorio?", + "Remove %(name)s from the directory?": "¿Eliminar a %(name)s del directorio?", "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot usa muchas características avanzadas del navegador, algunas de las cuales no están disponibles en su navegador actual.", "Event sent!": "Evento enviado!", "Preparing to send logs": "Preparando para enviar registros", "Enable desktop notifications": "Habilitar notificaciones de escritorio", "Unnamed room": "Sala sin nombre", "Explore Account Data": "Explorar Datos de la Cuenta", - "Remove from Directory": "Retirar del Directorio", + "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", @@ -702,7 +702,7 @@ "Reply": "Responder", "Show message in desktop notification": "Mostrar mensaje en la notificación del escritorio", "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.": "Los registros de depuración contienen datos de uso de la aplicación como nombre de usuario, ID o alias de las salas o grupos que hayas visitado (y nombres de usuario de otros usuarios). No contienen mensajes.", - "Unhide Preview": "Mostrar vista previa", + "Unhide Preview": "Mostrar Vista Previa", "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.", @@ -814,13 +814,13 @@ "Key share requests are sent to your other devices automatically. If you rejected or dismissed the key share request on your other devices, click here to request the keys for this session again.": "Las solicitudes para compartir la clave se envían a sus otros dispositivos automáticamente. Si rechazó o descartó la solicitud en sus otros dispositivos, pulse aquí para solicitar otra vez las claves durante esta sesión.", "If your other devices do not have the key for this message you will not be able to decrypt them.": "Si sus otros dispositivos no tienen la clave para este mensaje no podrá descifrarlos.", "Key request sent.": "Solicitud de clave enviada.", - "Re-request encryption keys from your other devices.": "Volver a solicitar claves de cifrado de sus otros dispositivos.", + "Re-request encryption keys from your other devices.": "Volver a solicitar las claves de cifrado de tus otros dispositivos.", "Encrypting": "Cifrando", "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?", - "Ban this user?": "¿Proscribir 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.", "Demote": "Degradar", @@ -855,7 +855,7 @@ "%(duration)sm": "%(duration)sm", "%(duration)sh": "%(duration)sh", "%(duration)sd": "%(duration)sd", - "Online for %(duration)s": "En línea para %(duration)s", + "Online for %(duration)s": "En línea durante %(duration)s", "Idle for %(duration)s": "En reposo durante %(duration)s", "Offline for %(duration)s": "Desconectado durante %(duration)s", "Unknown for %(duration)s": "Desconocido durante %(duration)s", @@ -875,7 +875,7 @@ "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 are trying to access a room.": "Está intentando acceder a una sala.", + "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", "To change the room's main address, you must be a": "Para cambiar la dirección principal de la sala, debe ser un", @@ -883,7 +883,7 @@ "To change the permissions in the room, you must be a": "Para cambiar los permisos de la sala, debe ser un", "To change the topic, you must be a": "Para cambiar el tema, debe ser un", "To modify widgets in the room, you must be a": "Para modificar los widgets de la sala, debe ser un", - "Banned by %(displayName)s": "Proscrito por %(displayName)s", + "Banned by %(displayName)s": "Vetado por %(displayName)s", "To send messages, you must be a": "Para cambiar mensajes, debe ser un", "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", @@ -959,7 +959,7 @@ "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 not appear": "La insignia no aparecerá", - "Are you sure you want to remove '%(roomName)s' from %(groupId)s?": "¿Está seguro de querer eliminar '%(roomName)s' de %(groupId)s?", + "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.", "Failed to remove room from community": "Falló la eliminación de la sala de la comunidad", "Failed to remove '%(roomName)s' from %(groupId)s": "Falló la eliminación de '%(roomName)s' de %(groupId)s", @@ -1019,13 +1019,13 @@ "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|one": "fueron proscritos", - "was banned %(count)s times|other": "fue proscrito %(count)s veces", - "was banned %(count)s times|one": "fue proscrito", - "were unbanned %(count)s times|other": "fueron proscritos %(count)s veces", - "were unbanned %(count)s times|one": "dejaron de ser proscritos", - "was unbanned %(count)s times|other": "dejaron de ser proscritos %(count)s veces", - "was unbanned %(count)s times|one": "dejó de ser proscrito", + "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", + "were unbanned %(count)s times|other": "les quitaron el veto %(count)s veces", + "were unbanned %(count)s times|one": "les quitaron el veto", + "was unbanned %(count)s times|other": "se le quitó el veto %(count)s veces", + "was unbanned %(count)s times|one": "se le quitó el veto", "were kicked %(count)s times|other": "fueron echados %(count)s veces", "were kicked %(count)s times|one": "fueron echados", "was kicked %(count)s times|other": "fue echado %(count)s veces", @@ -1121,7 +1121,7 @@ "Which rooms would you like to add to this summary?": "¿Cuáles salas desea agregar a este resumen?", "Add to summary": "Agregar a resumen", "Failed to add the following rooms to the summary of %(groupId)s:": "Falló la agregación de las salas siguientes al resumen de %(groupId)s:", - "Add a Room": "Agregar una sala", + "Add a Room": "Agregar una Sala", "Failed to remove the room from the summary of %(groupId)s": "Falló la eliminación de la sala del resumen de %(groupId)s", "The room '%(roomName)s' could not be removed from the summary.": "La sala '%(roomName)s' no se pudo eliminar del resumen.", "Add users to the community summary": "Agregar usuario al resumen de la comunidad", From 6e795a2d08c46f440493dd7d32df8513fefb5060 Mon Sep 17 00:00:00 2001 From: Kenneth Larsson Date: Fri, 7 Sep 2018 08:16:17 +0000 Subject: [PATCH 143/162] Translated using Weblate (Swedish) Currently translated at 99.6% (1247 of 1251 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 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json index da167bb4e3..032a50cec6 100644 --- a/src/i18n/strings/sv.json +++ b/src/i18n/strings/sv.json @@ -1003,8 +1003,8 @@ "%(oneUser)schanged their name %(count)s times|one": "%(oneUser)sbytte namn", "%(severalUsers)schanged their avatar %(count)s times|other": "%(severalUsers)sändrade sin avatar %(count)s gånger", "%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)sändrade sin avatar", - "%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)ssändrade sin avatar %(count)s gånger", - "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)ssändrade sin avatar", + "%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)sändrade sin avatar %(count)s gånger", + "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)sändrade sin avatar", "%(items)s and %(count)s others|other": "%(items)s och %(count)s andra", "%(items)s and %(count)s others|one": "%(items)s och en annan", "collapse": "fäll ihop", From 603fe4f92b996c73db5a1ee5f1d6a7d2042b588f Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Fri, 7 Sep 2018 01:14:20 +0000 Subject: [PATCH 144/162] Translated using Weblate (Chinese (Traditional)) 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_Hant/ --- src/i18n/strings/zh_Hant.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index ef2e1df135..a80039de52 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -1269,5 +1269,6 @@ "Error Discarding Session": "丟棄工作階段錯誤", "Registration Required": "需要註冊", "You need to register to do this. Would you like to register now?": "您必須註冊以繼續。您想要現在註冊嗎?", - "Unable to query for supported registration methods": "無法查詢支援的註冊方式" + "Unable to query for supported registration methods": "無法查詢支援的註冊方式", + "Unable to connect to Homeserver. Retrying...": "無法連線到家伺服器。正在重試……" } From 73c28f3aaee234106bc76afa2f54a7c97ebc2809 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 7 Sep 2018 14:23:26 +0100 Subject: [PATCH 145/162] Merge translations from #2157 to release --- src/i18n/strings/de_DE.json | 4 +- src/i18n/strings/es.json | 377 ++++++++++++++++++---------------- src/i18n/strings/eu.json | 4 +- src/i18n/strings/fr.json | 7 +- src/i18n/strings/hu.json | 7 +- src/i18n/strings/id.json | 2 +- src/i18n/strings/it.json | 12 +- src/i18n/strings/lt.json | 113 +++++++++- src/i18n/strings/nn.json | 76 +++---- src/i18n/strings/sk.json | 8 +- src/i18n/strings/sv.json | 4 +- src/i18n/strings/zh_Hant.json | 8 +- 12 files changed, 391 insertions(+), 231 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index f50c1180f8..9c4ec3519b 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1264,5 +1264,7 @@ "Click here to see older messages.": "Klicke hier um ältere Nachrichten zu sehen.", "Failed to upgrade room": "Konnte Raum nicht aufrüsten", "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" + "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" } diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index 9a23a8368b..24044b5c74 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -1,10 +1,10 @@ { "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Un mensaje de texto ha sido enviado a +%(msisdn)s. Por favor ingrese el código de verificación que lo contiene", - "%(targetName)s accepted an invitation.": "%(targetName)s ha aceptado una invitación.", - "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s ha aceptado la invitación para %(displayName)s.", + "%(targetName)s accepted an invitation.": "%(targetName)s aceptó una invitación.", + "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s aceptó la invitación para %(displayName)s.", "Account": "Cuenta", "Access Token:": "Token de Acceso:", - "Add email address": "Agregar correo eléctronico", + "Add email address": "Añadir dirección de correo electrónico", "Add phone number": "Agregar número telefónico", "Admin": "Administrador", "Advanced": "Avanzado", @@ -15,8 +15,8 @@ "and %(count)s others...|other": "y %(count)s otros...", "and %(count)s others...|one": "y otro...", "%(names)s and %(lastPerson)s are typing": "%(names)s y %(lastPerson)s están escribiendo", - "A new password must be entered.": "Una nueva clave debe ser ingresada.", - "%(senderName)s answered the call.": "%(senderName)s atendió la llamada.", + "A new password must be entered.": "Debes ingresar una nueva contraseña.", + "%(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", @@ -24,26 +24,26 @@ "Are you sure you want to reject the invitation?": "¿Estás seguro que quieres rechazar la invitación?", "Attachment": "Adjunto", "Autoplay GIFs and videos": "Reproducir automáticamente GIFs y videos", - "%(senderName)s banned %(targetName)s.": "%(senderName)s ha bloqueado a %(targetName)s.", - "Ban": "Bloquear", - "Banned users": "Usuarios bloqueados", - "Bans user with given id": "Bloquear usuario por ID", + "%(senderName)s banned %(targetName)s.": "%(senderName)s vetó a %(targetName)s.", + "Ban": "Vetar", + "Banned users": "Usuarios vetados", + "Bans user with given id": "Veta al usuario con la ID dada", "Blacklisted": "En lista negra", "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", - "Change Password": "Cambiar clave", + "Change Password": "Cambiar Contraseña", "%(senderName)s changed their profile picture.": "%(senderName)s ha cambiado su foto 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 ha cambiado el nombre de la sala a %(roomName)s.", - "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s ha cambiado el tema de la sala a \"%(topic)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", - "Clear Cache and Reload": "Borrar caché y recargar", - "Clear Cache": "Borrar caché", + "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", @@ -56,8 +56,8 @@ "Conference calling is in development and may not be reliable.": "La llamada en conferencia está en desarrollo y puede no ser fiable.", "Conference calls are not supported in encrypted rooms": "Las llamadas en conferencia no son soportadas en salas cifradas", "Conference calls are not supported in this client": "Las llamadas en conferencia no están soportadas en este cliente", - "Confirm password": "Confirmar clave", - "Confirm your new password": "Confirma tu nueva clave", + "Confirm password": "Confirmar contraseña", + "Confirm your new password": "Confirma tu contraseña nueva", "Continue": "Continuar", "Could not connect to the integration server": "No se pudo conectar al servidor de integración", "Create an account": "Crear una cuenta", @@ -75,7 +75,7 @@ "Default": "Por defecto", "Device ID": "ID del dispositivo", "Devices": "Dispositivos", - "Devices will not yet be able to decrypt history from before they joined the room": "Los dispositivos aun no serán capaces de descifrar el historial antes de haberse unido a la sala", + "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", @@ -88,12 +88,12 @@ "Email address": "Dirección de correo electrónico", "Email, name or matrix ID": "Correo electrónico, nombre o Matrix ID", "Emoji": "Emoticones", - "Enable encryption": "Habilitar encriptación", - "Encrypted messages will not be visible on clients that do not yet implement encryption": "Los mensajes encriptados no serán visibles en navegadores que no han implementado aun la encriptación", + "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 room": "Sala encriptada", - "%(senderName)s ended the call.": "%(senderName)s terminó la llamada.", + "%(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 is in beta and may not be reliable": "El cifrado de extremo a extremo está en pruebas, podría no ser fiable", + "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", @@ -104,9 +104,9 @@ "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 join room": "Falló al unirse a la sala", + "Failed to join room": "No se pudo unir a la sala", "Failed to kick": "Falló al expulsar", - "Failed to leave room": "Falló al dejar la sala", + "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 reject invite": "Falló al rechazar invitación", @@ -120,7 +120,7 @@ "Failed to toggle moderator status": "Falló al cambiar estatus de moderador", "Failed to unban": "Falló al desbloquear", "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": "Falló al verificar el correo electrónico: Asegúrese hacer clic en el enlace del correo", + "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", "Favourites": "Favoritos", @@ -137,36 +137,36 @@ "Hide Text Formatting Toolbar": "Ocultar barra de herramientas de formato de texto", "Historical": "Histórico", "Homeserver is": "El servidor es", - "Identity Server is": "La identidad del servidor 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", "Incorrect verification code": "Verificación de código incorrecta", "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", + "Invalid Email Address": "Dirección de Correo Electrónico Inválida", "Invalid file%(extra)s": "Archivo inválido %(extra)s", - "%(senderName)s invited %(targetName)s.": "%(senderName)s ha invitado a %(targetName)s.", + "%(senderName)s invited %(targetName)s.": "%(senderName)s invitó a %(targetName)s.", "Invite new room members": "Invitar nuevos miembros a la sala", - "Invites": "Invitar", + "Invites": "Invitaciones", "Invites user with given id to current room": "Invitar a usuario con ID dado a esta sala", "'%(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", "%(displayName)s is typing": "%(displayName)s está escribiendo", "Sign in with": "Quiero iniciar sesión con", - "Join Room": "Unirte a la sala", - "%(targetName)s joined the room.": "%(targetName)s se ha unido a la sala.", + "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", - "%(senderName)s kicked %(targetName)s.": "%(senderName)s ha expulsado a %(targetName)s.", + "%(senderName)s kicked %(targetName)s.": "%(senderName)s expulsó a %(targetName)s.", "Kick": "Expulsar", "Kicks user with given id": "Expulsar usuario con ID dado", "Labs": "Laboratorios", - "Leave room": "Dejar sala", - "%(targetName)s left the room.": "%(targetName)s ha dejado la sala.", + "Leave room": "Salir de la sala", + "%(targetName)s left the room.": "%(targetName)s salió de la sala.", "Local addresses for this room:": "Direcciones locales para esta sala:", "Logged in as:": "Sesión iniciada como:", "Logout": "Cerrar Sesión", - "Low priority": "Baja prioridad", + "Low priority": "Prioridad baja", "Accept": "Aceptar", "Add": "Añadir", "Admin Tools": "Herramientas de administración", @@ -176,10 +176,10 @@ "Default Device": "Dispositivo por defecto", "Microphone": "Micrófono", "Camera": "Cámara", - "Hide removed messages": "Ocultar mensajes borrados", + "Hide removed messages": "Ocultar mensajes eliminados", "Alias (optional)": "Alias (opcional)", "Anyone": "Cualquiera", - "Click here to join the discussion!": "¡Pulse aquí para unirse a la conversación!", + "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", "%(count)s new messages|other": "%(count)s mensajes nuevos", @@ -190,13 +190,13 @@ "Device already verified!": "¡El dispositivo ya ha sido verificado!", "Device ID:": "ID del dispositivo:", "device id: ": "id del dispositvo: ", - "Disable Notifications": "Desactivar notificaciones", - "Email address (optional)": "Dirección e-mail (opcional)", + "Disable Notifications": "Deshabilitar Notificaciones", + "Email address (optional)": "Dirección de correo electrónico (opcional)", "Enable Notifications": "Activar 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": "Cifrado activo en esta sala", - "Encryption is not enabled in this room": "Cifrado desactivado en esta sala", + "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.", "Export": "Exportar", @@ -204,24 +204,24 @@ "Failed to upload profile picture!": "¡Fallo al enviar la foto de perfil!", "Home": "Inicio", "Import": "Importar", - "Incoming call from %(name)s": "Llamada de %(name)s", - "Incoming video call from %(name)s": "Video-llamada de %(name)s", - "Incoming voice call from %(name)s": "Llamada telefónica de %(name)s", - "Incorrect username and/or password.": "Usuario o contraseña incorrectos.", + "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", - "Jump to first unread message.": "Ir al primer mensaje sin leer.", + "Jump to first unread message.": "Ir al primer mensaje no leído.", "Last seen": "Visto por última vez", "Level:": "Nivel:", - "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s ha configurado el historial de la sala visible para Todos los miembros de la sala, desde el momento en que son invitados.", - "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s ha configurado el historial de la sala visible para Todos los miembros de la sala, desde el momento en que se han unido.", - "%(senderName)s made future room history visible to all room members.": "%(senderName)s ha configurado el historial de la sala visible para Todos los miembros de la sala.", - "%(senderName)s made future room history visible to anyone.": "%(senderName)s ha configurado el historial de la sala visible para nadie.", - "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s ha configurado el historial de la sala visible para desconocido (%(visibility)s).", + "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s hizo visible el historial futuro de la sala para todos los miembros de la sala, desde el momento en que son invitados.", + "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s hizo visible el historial futuro de la sala para todos los miembros de la sala, desde el momento en que se unieron.", + "%(senderName)s made future room history visible to all room members.": "%(senderName)s hizo visible el historial futuro de la sala para todos los miembros de la sala.", + "%(senderName)s made future room history visible to anyone.": "%(senderName)s hizo visible el historial futuro de la sala para cualquier persona.", + "%(senderName)s made future room history visible to unknown (%(visibility)s).": "%(senderName)s hizo visible el historial futuro de la sala para desconocido (%(visibility)s).", "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", - "New Password": "Nueva contraseña", + "New Password": "Nueva Contraseña", "Analytics": "Analíticas", "Options": "Opciones", "Passphrases must match": "Las contraseñas deben coincidir", @@ -232,7 +232,7 @@ "File to import": "Fichero a importar", "You must join the room to see its files": "Debe unirse a la sala para ver los ficheros", "Reject all %(invitedRooms)s invites": "Rechazar todas las invitaciones a %(invitedRooms)s", - "Start new chat": "Iniciar una nueva conversación", + "Start new chat": "Iniciar nueva conversación", "Failed to invite": "Fallo en la invitación", "Failed to invite user": "No se pudo invitar al usuario", "Failed to invite the following users to the %(roomName)s room:": "No se pudo invitar a los siguientes usuarios a la sala %(roomName)s:", @@ -255,13 +255,13 @@ "Save": "Guardar", "Scroll to bottom of page": "Bajar al final de la página", "Scroll to unread messages": "Ir al primer mensaje sin leer", - "Search": "Búsqueda", + "Search": "Buscar", "Search failed": "Falló la búsqueda", "Seen by %(userName)s at %(dateTime)s": "Visto por %(userName)s el %(dateTime)s", - "Send anyway": "Enviar igualmente", - "Sender device information": "Información del dispositivo del remitente", - "Send Invites": "Enviar invitaciones", - "Send Reset Email": "Enviar e-mail de reinicio", + "Send anyway": "Enviar de todos modos", + "Sender device information": "Información del dispositivo emisor", + "Send Invites": "Enviar Invitaciones", + "Send Reset Email": "Enviar Correo Electrónico de Restauración", "%(senderDisplayName)s sent an image.": "%(senderDisplayName)s envió una imagen.", "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s invitó a %(targetDisplayName)s a unirse a la sala.", "Server error": "Error del servidor", @@ -271,13 +271,13 @@ "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 their display name to %(displayName)s.": "%(senderName)s cambió su nombre a %(displayName)s.", - "Settings": "Configuración", + "%(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", "Show Text Formatting Toolbar": "Mostrar la barra de formato de texto", "Signed Out": "Desconectado", "Sign in": "Conectar", - "Sign out": "Desconectar", + "Sign out": "Cerrar sesión", "%(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", @@ -297,20 +297,20 @@ "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.", - "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s ha quitado el nombre de la sala.", + "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s eliminó el nombre de la sala.", "Device key:": "Clave del 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.", - "Join as voice or video.": "Conecte con voz o vídeo.", + "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.", "Manage Integrations": "Gestionar integraciones", - "Markdown is disabled": "Markdown está desactivado", + "Markdown is disabled": "Markdown está deshabilitado", "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", - "Mobile phone number": "Número de teléfono móvil", - "Mobile phone number (optional)": "Número de teléfono móvil (opcional)", + "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", @@ -331,23 +331,23 @@ "No devices with registered encryption keys": "No hay dispositivos con claves de cifrado registradas", "No display name": "Sin nombre para mostrar", "No more results": "No hay más resultados", - "No results": "Sin resultados", + "No results": "No hay resultados", "No users have specific privileges in this room": "Ningún usuario tiene permisos específicos en esta sala", "OK": "Correcto", "olm version:": "versión de olm:", - "Once encryption is enabled for a room it cannot be turned off again (for now)": "Una vez se active el cifrado en esta sala, no podrá ser desactivado (por ahora)", - "Only people who have been invited": "Sólo usuarios que han sido invitados", + "Once encryption is enabled for a room it cannot be turned off again (for now)": "Una vez que se habilita el cifrado en una sala no se puede volver a desactivar (por ahora)", + "Only people who have been invited": "Solo personas que han sido invitadas", "Operation failed": "Falló la operación", "Password": "Contraseña", "Password:": "Contraseña:", "Passwords can't be empty": "Las contraseñas no pueden estar en blanco", - "People": "Gente", + "People": "Personas", "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.", - "Privacy warning": "Alerta de privacidad", + "Privacy warning": "Advertencia de privacidad", "Private Chat": "Conversación privada", "Privileged Users": "Usuarios con privilegios", "Profile": "Perfil", @@ -356,20 +356,20 @@ "Reason: %(reasonText)s": "Razón: %(reasonText)s", "Revoke Moderator": "Eliminar Moderador", "Refer a friend to Riot:": "Informar a un amigo sobre Riot:", - "Register": "Registro", - "%(targetName)s rejected the invitation.": "%(targetName)s ha rechazado la invitación.", + "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:", "Remove Contact Information?": "¿Eliminar información del contacto?", - "%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s ha suprimido su nombre para mostar (%(oldDisplayName)s).", + "%(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.", "Remove": "Eliminar", "Remove %(threePid)s?": "¿Eliminar %(threePid)s?", - "%(senderName)s requested a VoIP conference.": "%(senderName)s ha solicitado una conferencia Voz-IP.", + "%(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": "Volver a la pantalla de inicio de sesión", + "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 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:", @@ -378,26 +378,26 @@ "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)", "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": "Dirección e-mail en uso", + "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ó", - "The email address linked to your account must be entered.": "Debe introducir el e-mail asociado a su 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", + "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'", - "The remote side failed to pick up": "El sitio remoto falló al sincronizar", - "This Home Server does not support login using email address.": "Este servidor no permite identificarse con direcciones e-mail.", - "This invitation was sent to an email address which is not associated with this account:": "Se envió la invitación a un e-mail no asociado con esta cuenta:", + "The remote side failed to pick up": "El lado remoto no contestó", + "This Home Server does not support login using email address.": "Este Servidor Doméstico no permite identificarse con direcciones e-mail.", + "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", "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": "Esto es una vista previa de la sala. Las interacciones con la sala están desactivadas", + "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 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", "To link to a room it must have an address.": "Para enlazar una sala, debe tener una dirección.", - "To reset your password, enter the email address linked to your account": "Para reiniciar su contraseña, introduzca el e-mail asociado a su cuenta", + "To reset your password, enter the email address linked to your account": "Para restablecer tu contraseña, ingresa la dirección de correo electrónico vinculada a tu cuenta", "Cancel": "Cancelar", "Dismiss": "Omitir", "powered by Matrix": "con el poder de Matrix", @@ -405,7 +405,7 @@ "Custom Server Options": "Opciones de Servidor Personalizado", "unknown error code": "Código de error desconocido", "Start verification": "Comenzar la verificación", - "Skip": "Saltar", + "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", @@ -427,13 +427,13 @@ "Tried to load a specific point in this room's timeline, but was unable to find it.": "Se ha intentado cargar cierto punto en la cronología de esta sala, pero no se ha podido encontrarlo.", "Turn Markdown off": "Desactivar markdown", "Turn Markdown on": "Activar markdown", - "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s ha activado el cifrado de extremo-a-extremo (algorithm %(algorithm)s).", - "Unable to add email address": "No se ha podido añadir la dirección de correo electrónico", + "%(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 remove contact information": "No se ha podido eliminar la información de contacto", - "Unable to verify email address.": "No se ha podido verificar la dirección de correo electrónico.", - "Unban": "Revocar bloqueo", - "Unbans user with given id": "Revoca el bloqueo del usuario con la identificación dada", + "Unable to verify email address.": "No es posible verificar la dirección de correo electrónico.", + "Unban": "Quitar Veto", + "Unbans user with given id": "Quita el veto al usuario con la ID dada", "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "No se ha podido asegurar que la dirección a la que se envió esta invitación, coincide con una asociada a su cuenta.", "Unable to capture screen": "No se ha podido capturar la pantalla", "Unable to enable Notifications": "No se ha podido activar las notificaciones", @@ -470,67 +470,67 @@ "Verified key": "Clave verificada", "Video call": "Llamada de vídeo", "Voice call": "Llamada de voz", - "VoIP conference finished.": "Conferencia VoIP terminada.", - "VoIP conference started.": "Conferencia de VoIP iniciada.", + "VoIP conference finished.": "conferencia de vozIP finalizada.", + "VoIP conference started.": "conferencia de vozIP iniciada.", "VoIP is unsupported": "No hay soporte para VoIP", "(could not connect media)": "(no se ha podido conectar medio)", "(no answer)": "(sin respuesta)", "(unknown failure: %(reason)s)": "(error desconocido: %(reason)s)", - "(warning: cannot be disabled again!)": "(aviso: ¡no se puede volver a desactivar!)", + "(warning: cannot be disabled again!)": "(advertencia: ¡no se puede volver a deshabilitar!)", "Warning!": "¡Advertencia!", - "WARNING: Device already verified, but keys do NOT MATCH!": "AVISO: Dispositivo ya verificado, ¡pero las claves NO COINCIDEN!", + "WARNING: Device already verified, but keys do NOT MATCH!": "ADVERTENCIA: Dispositivo ya verificado, ¡pero las claves NO COINCIDEN!", "Who can access this room?": "¿Quién puede acceder a esta sala?", "Who can read history?": "¿Quién puede leer el historial?", "Who would you like to add to this room?": "¿A quién quiere añadir a esta sala?", "Who would you like to communicate with?": "¿Con quién quiere comunicarse?", - "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s ha retirado la invitación de %(targetName)s.", + "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s retiró la invitación de %(targetName)s.", "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 chats directos con este usuario:", + "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'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á tratando de acceder a %(roomName)s.", + "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.", "Cannot add any more widgets": "no es posible agregar mas widgets", "Do you want to load widget from URL:": "desea cargar widget desde URL:", "Integrations Error": "error de integracion", - "Publish this room to the public in %(domain)s's room directory?": "Desea publicar esta sala al publico en el directorio de sala de %(domain)s?", + "Publish this room to the public in %(domain)s's room directory?": "Desea publicar esta sala al publico en el directorio de salas de %(domain)s?", "AM": "AM", "PM": "PM", "NOTE: Apps are not end-to-end encrypted": "NOTA: Las Apps no son cifradas de extremo a extremo", "Revoke widget access": "Revocar acceso del widget", "The maximum permitted number of widgets have already been added to this room.": "La cantidad máxima de widgets permitida ha sido alcanzada en esta sala.", "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 levanto la suspensión de %(targetName)s.", + "%(senderName)s unbanned %(targetName)s.": "%(senderName)s le quitó el veto a %(targetName)s.", "unencrypted": "no cifrado", "Unmute": "desactivar el silencio", "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!": "Atención: 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!", + "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 have been invited to join this room by %(inviterName)s": "Ha sido invitado a entrar a esta sala por %(inviterName)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": "Ha sido desconectado de todos los dispositivos y no continuara recibiendo notificaciones. Para volver a habilitar las notificaciones, vuelva a conectarse en cada dispositivo", + "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.", "You have no visible notifications": "No tiene notificaciones visibles", - "You may wish to login with a different account, or add this email to this account.": "Puede ingresar con una cuenta diferente, o agregar este e-mail a esta cuenta.", + "You may wish to login with a different account, or add this email to this account.": "Quizás quieras iniciar sesión con otra cuenta, o añadir este correo electrónico a esta cuenta.", "You must register to use this functionality": "Usted debe ser un registrar para usar esta funcionalidad", "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 password has been reset": "Su contraseña ha sido restablecida", + "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?", "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": "No debería confiarle aun para asegurar su información", + "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.", - "Your home server does not support device management.": "Su servidor privado no suporta la gestión de dispositivos.", + "Your home server does not support device management.": "Tu servidor doméstico no suporta la gestión de dispositivos.", "Sun": "Dom", "Mon": "Lun", "Tue": "Mar", @@ -559,7 +559,7 @@ "Dec": "Dic", "Warning": "Advertencia", "Unpin Message": "Desmarcar Mensaje", - "Online": "Conectado", + "Online": "En línea", "Submit debug logs": "Enviar registros de depuración", "The platform you're on": "La plataforma en la que te encuentras", "The version of Riot.im": "La versión de Riot.im", @@ -571,7 +571,7 @@ "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": "Aviso: 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 cualquiera que conozca el 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", @@ -604,9 +604,9 @@ "Leave": "Salir", "Uploaded on %(date)s by %(user)s": "Subido el %(date)s por %(user)s", "Send Custom Event": "Enviar Evento Personalizado", - "All notifications are currently disabled for all targets.": "Las notificaciones estan desactivadas para todos los objetivos.", + "All notifications are currently disabled for all targets.": "Las notificaciones están deshabilitadas para todos los objetivos.", "Failed to send logs: ": "Error al enviar registros: ", - "delete the alias.": "borrar el alias.", + "delete the alias.": "eliminar el alias.", "To return to your account in future you need to set a password": "Para regresar a tu cuenta en el futuro debes establecer una contraseña", "Forget": "Olvidar", "World readable": "Legible por todo el mundo", @@ -614,7 +614,7 @@ "You cannot delete this image. (%(code)s)": "No puedes eliminar esta imagen. (%(code)s)", "Cancel Sending": "Cancelar envío", "This Room": "Esta sala", - "The Home Server may be too old to support third party networks": "El Home Server puede ser demasiado antiguo para soportar redes de terceros", + "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", @@ -623,7 +623,7 @@ "View Decrypted Source": "Ver Fuente Descifrada", "Failed to update keywords": "Error al actualizar las palabras clave", "Notes:": "Notas:", - "remove %(name)s from the directory.": "retirar %(name)s del directorio.", + "remove %(name)s from the directory.": "eliminar a %(name)s del directorio.", "Notifications on the following keywords follow rules which can’t be displayed here:": "Las notificaciones de las siguientes palabras clave siguen reglas que no se pueden mostrar aquí:", "Safari and Opera work too.": "Safari y Opera también funcionan.", "Please set a password!": "¡Por favor establece una contraseña!", @@ -636,7 +636,7 @@ "Members": "Miembros", "No update available.": "No hay actualizaciones disponibles.", "Noisy": "Ruidoso", - "Failed to get protocol list from Home Server": "Error al obtener la lista de protocolos desde el Home Server", + "Failed to get protocol list from Home Server": "Error al obtener la lista de protocolos desde el Servidor Doméstico", "Collecting app version information": "Recolectando información de la versión de la aplicación", "Delete the room alias %(alias)s and remove %(name)s from the directory?": "¿Borrar el alias de la sala %(alias)s y eliminar %(name)s del directorio?", "This will allow you to return to your account after signing out, and sign in on other devices.": "Esto te permitirá regresar a tu cuenta después de cerrar sesión, así como iniciar sesión en otros dispositivos.", @@ -644,21 +644,21 @@ "Enable notifications for this account": "Habilitar notificaciones para esta cuenta", "Directory": "Directorio", "Invite to this community": "Invitar a esta comunidad", - "Search for a room": "Buscar sala", + "Search for a room": "Buscar una sala", "Messages containing keywords": "Mensajes que contienen palabras clave", "Error saving email notification preferences": "Error al guardar las preferencias de notificación por email", "Tuesday": "Martes", "Enter keywords separated by a comma:": "Introduzca palabras clave separadas por una coma:", "Search…": "Buscar…", "You have successfully set a password and an email address!": "¡Has establecido una nueva contraseña y dirección de correo electrónico!", - "Remove %(name)s from the directory?": "¿Retirar %(name)s del directorio?", + "Remove %(name)s from the directory?": "¿Eliminar a %(name)s del directorio?", "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot usa muchas características avanzadas del navegador, algunas de las cuales no están disponibles en su navegador actual.", "Event sent!": "Evento enviado!", "Preparing to send logs": "Preparando para enviar registros", "Enable desktop notifications": "Habilitar notificaciones de escritorio", "Unnamed room": "Sala sin nombre", "Explore Account Data": "Explorar Datos de la Cuenta", - "Remove from Directory": "Retirar del Directorio", + "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", @@ -693,10 +693,10 @@ "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", - "All Rooms": "Todas las salas", + "All Rooms": "Todas las Salas", "You cannot delete this message. (%(code)s)": "No puedes eliminar este mensaje. (%(code)s)", "Thursday": "Jueves", - "Forward Message": "Reenviar mensaje", + "Forward Message": "Reenviar Mensaje", "Logs sent": "Registros enviados", "Back": "Atrás", "Reply": "Responder", @@ -710,7 +710,7 @@ "Yesterday": "Ayer", "Error encountered (%(errorDetail)s).": "Error encontrado (%(errorDetail)s).", "Login": "Iniciar sesión", - "Low Priority": "Baja Prioridad", + "Low Priority": "Prioridad Baja", "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", @@ -722,7 +722,7 @@ "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.", "Enable email notifications": "Habilitar notificaciones por email", "Event Type": "Tipo de Evento", - "No rooms to show": "Sin salas para mostrar", + "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", @@ -773,7 +773,7 @@ "You are no longer ignoring %(userId)s": "Ya no está ignorando a %(userId)s", "Opens the Developer Tools dialog": "Abre el diálogo de Herramientas de Desarrollador", "Verifies a user, device, and pubkey tuple": "Verifica a un usuario, dispositivo, y tupla de clave pública", - "%(oldDisplayName)s changed their display name to %(displayName)s.": "%(oldDisplayName)s cambió su nombre visible a %(displayName)s.", + "%(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", @@ -784,43 +784,43 @@ "Not a valid Riot keyfile": "No es un archivo de claves de Riot válido", "Message Pinning": "Mensajes con chincheta", "Jitsi Conference Calling": "Llamadas de conferencia Jitsi", - "Disable Emoji suggestions while typing": "Desactivar sugerencias de Emoji mientras escribe", + "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", "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": "Desactivar emoji grande en la conversación", + "Disable big emoji in chat": "Deshabilitar emoji grande en la conversación", "Automatically replace plain text Emoji": "Sustituir automáticamente Emojis de texto", "Mirror local video feed": "Clonar transmisión de video local", - "Disable Community Filter Panel": "Desactivar Panel de Filtro de la Comunidad", - "Disable Peer-to-Peer for 1:1 calls": "Desactivar pares para llamadas 1:1", + "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", "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", - "Delete %(count)s devices|other": "Borrar %(count)s dispositivos", - "Delete %(count)s devices|one": "Borrar dispositivo", + "Delete %(count)s devices|other": "Eliminar %(count)s dispositivos", + "Delete %(count)s devices|one": "Eliminar dispositivo", "Select devices": "Seleccionar dispositivos", "Drop file here to upload": "Soltar aquí el fichero a subir", " (unsupported)": " (no soportado)", - "Ongoing conference call%(supportedText)s.": "Llamada de conferencia en curso%(supportedText)s", + "Ongoing conference call%(supportedText)s.": "Llamada de conferencia en curso%(supportedText)s.", "This event could not be displayed": "No se pudo mostrar este evento", "%(senderName)s sent an image": "%(senderName)s envió una imagen", - "%(senderName)s sent a video": "%(senderName)s envió un video", + "%(senderName)s sent a video": "%(senderName)s envió un vídeo", "%(senderName)s uploaded a file": "%(senderName)s subió un fichero", "Your key share request has been sent - please check your other devices for key share requests.": "Se envió su solicitud para compartir la clave - por favor, compruebe sus otros dispositivos para solicitudes de compartir clave.", "Key share requests are sent to your other devices automatically. If you rejected or dismissed the key share request on your other devices, click here to request the keys for this session again.": "Las solicitudes para compartir la clave se envían a sus otros dispositivos automáticamente. Si rechazó o descartó la solicitud en sus otros dispositivos, pulse aquí para solicitar otra vez las claves durante esta sesión.", "If your other devices do not have the key for this message you will not be able to decrypt them.": "Si sus otros dispositivos no tienen la clave para este mensaje no podrá descifrarlos.", "Key request sent.": "Solicitud de clave enviada.", - "Re-request encryption keys from your other devices.": "Volver a solicitar claves de cifrado de sus otros dispositivos.", + "Re-request encryption keys from your other devices.": "Volver a solicitar las claves de cifrado de tus otros dispositivos.", "Encrypting": "Cifrando", "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?", - "Ban this user?": "¿Proscribir 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.", "Demote": "Degradar", @@ -834,7 +834,7 @@ "Make Moderator": "Convertir en Moderador", "bold": "negrita", "italic": "cursiva", - "deleted": "borrado", + "deleted": "eliminado", "underlined": "subrayado", "inline-code": "código en línea", "block-quote": "cita extensa", @@ -855,7 +855,7 @@ "%(duration)sm": "%(duration)sm", "%(duration)sh": "%(duration)sh", "%(duration)sd": "%(duration)sd", - "Online for %(duration)s": "En línea para %(duration)s", + "Online for %(duration)s": "En línea durante %(duration)s", "Idle for %(duration)s": "En reposo durante %(duration)s", "Offline for %(duration)s": "Desconectado durante %(duration)s", "Unknown for %(duration)s": "Desconocido durante %(duration)s", @@ -872,10 +872,10 @@ "Drop here to tag direct chat": "Soltar aquí para etiquetar la conversación", "Drop here to restore": "Soltar aquí para restaurar", "Community Invites": "Invitaciones a comunidades", - "You have no historical rooms": "No tiene salas en su historial", + "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 are trying to access a room.": "Está intentando acceder a una sala.", + "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", "To change the room's main address, you must be a": "Para cambiar la dirección principal de la sala, debe ser un", @@ -883,7 +883,7 @@ "To change the permissions in the room, you must be a": "Para cambiar los permisos de la sala, debe ser un", "To change the topic, you must be a": "Para cambiar el tema, debe ser un", "To modify widgets in the room, you must be a": "Para modificar los widgets de la sala, debe ser un", - "Banned by %(displayName)s": "Proscrito por %(displayName)s", + "Banned by %(displayName)s": "Vetado por %(displayName)s", "To send messages, you must be a": "Para cambiar mensajes, debe ser un", "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", @@ -897,11 +897,11 @@ "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)", - "You don't currently have any stickerpacks enabled": "En este momento no tiene pegatinas activadas", - "Add a stickerpack": "Añadir un lote de pegatinas", - "Stickerpack": "Lote de pegatinas", - "Hide Stickers": "Ocultar pegatinas", - "Show Stickers": "Mostrar pegatinas", + "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", @@ -928,13 +928,13 @@ "Message removed by %(userId)s": "Mensaje eliminado por %(userId)s", "Message removed": "Mensaje eliminado", "Robot check is currently unavailable on desktop - please use a web browser": "La comprobación de robot no está actualmente disponible en escritorio - por favor, use un navegador Web", - "This Home Server would like to make sure you are not a robot": "A este Home Server le gustaría asegurarse de que no es un robot", + "This Home Server would like to make sure you are not a robot": "Este Servidor Doméstico quiere asegurarse de que no eres un robot", "Sign in with CAS": "Ingresar con CAS", - "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Puede usar las opciones personalizadas del servidor para ingresar en otros servidores de Matrix especificando una URL del Home server diferente.", - "This allows you to use this app with an existing Matrix account on a different home server.": "Esto le permite usar esta aplicación con una cuenta de Matrix ya existente en un home server diferente.", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Puede usar las opciones personalizadas del servidor para ingresar en otros servidores de Matrix especificando una URL del Servidor Doméstico diferente.", + "This allows you to use this app with an existing Matrix account on a different home server.": "Esto le permite usar esta aplicación con una cuenta de Matrix ya existente en un servidor doméstico diferente.", "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Puede también usar un servidor de identidad personalizado, pero esto habitualmente evitará la interacción con usuarios mediante dirección de correo electrónico.", "An email has been sent to %(emailAddress)s": "Se envió un correo electrónico a %(emailAddress)s", - "Please check your email to continue registration.": "Por favor compruebe su correo electrónico para continuar con el registro.", + "Please check your email to continue registration.": "Por favor consulta tu correo electrónico para continuar con el registro.", "Token incorrect": "Token incorrecto", "A text message has been sent to %(msisdn)s": "Se envió un mensaje de texto a %(msisdn)s", "Please enter the code it contains:": "Por favor introduzca el código que contiene:", @@ -948,8 +948,8 @@ "You are registering with %(SelectedTeamName)s": "Está registrándose con %(SelectedTeamName)s", "Default server": "Servidor por defecto", "Custom server": "Servidor personalizado", - "Home server URL": "URL del Home server", - "Identity server URL": "URL del servidor de Identidad", + "Home server URL": "URL del servidor doméstico", + "Identity server URL": "URL del servidor de identidad", "What does this mean?": "¿Qué significa esto?", "Remove from community": "Eliminar de la comunidad", "Disinvite this user from community?": "¿Quitar como invitado a este usuario de la comunidad?", @@ -959,7 +959,7 @@ "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 not appear": "La insignia no aparecerá", - "Are you sure you want to remove '%(roomName)s' from %(groupId)s?": "¿Está seguro de querer eliminar '%(roomName)s' de %(groupId)s?", + "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.", "Failed to remove room from community": "Falló la eliminación de la sala de la comunidad", "Failed to remove '%(roomName)s' from %(groupId)s": "Falló la eliminación de '%(roomName)s' de %(groupId)s", @@ -976,7 +976,7 @@ "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": "Borrar widget", + "Delete Widget": "Eliminar Componente", "Deleting a widget removes it for all users in this room. Are you sure you want to delete this widget?": "Al borrar un widget se elimina para todos usuarios de la sala. ¿Está seguro?", "Failed to remove widget": "Falló la eliminación del widget", "An error ocurred whilst trying to remove the widget from the room": "Ocurrió un error mientras se intentaba eliminar el widget de la sala", @@ -997,7 +997,7 @@ "%(severalUsers)sleft %(count)s times|other": "%(severalUsers)s se fueron %(count)s veces", "%(severalUsers)sleft %(count)s times|one": "%(severalUsers)s se fueron", "%(oneUser)sleft %(count)s times|other": "%(oneUser)s se fue %(count)s veces", - "%(oneUser)sleft %(count)s times|one": "%(oneUser)s se fue", + "%(oneUser)sleft %(count)s times|one": "%(oneUser)s salió", "%(severalUsers)sjoined and left %(count)s times|other": "%(severalUsers)s se unieron y fueron %(count)s veces", "%(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", @@ -1019,13 +1019,13 @@ "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|one": "fueron proscritos", - "was banned %(count)s times|other": "fue proscrito %(count)s veces", - "was banned %(count)s times|one": "fue proscrito", - "were unbanned %(count)s times|other": "fueron proscritos %(count)s veces", - "were unbanned %(count)s times|one": "dejaron de ser proscritos", - "was unbanned %(count)s times|other": "dejaron de ser proscritos %(count)s veces", - "was unbanned %(count)s times|one": "dejó de ser proscrito", + "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", + "were unbanned %(count)s times|other": "les quitaron el veto %(count)s veces", + "were unbanned %(count)s times|one": "les quitaron el veto", + "was unbanned %(count)s times|other": "se le quitó el veto %(count)s veces", + "was unbanned %(count)s times|one": "se le quitó el veto", "were kicked %(count)s times|other": "fueron echados %(count)s veces", "were kicked %(count)s times|one": "fueron echados", "was kicked %(count)s times|other": "fue echado %(count)s veces", @@ -1070,7 +1070,7 @@ "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", - "This setting cannot be changed later!": "Este ajuste no se puede cambiar posteriormente", + "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.", @@ -1084,14 +1084,14 @@ "Your unverified device '%(displayName)s' is requesting encryption keys.": "Su 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?": "¿Salir y eliminar claves de cifrado?", - "Clear Storage and Sign Out": "Limpiar Almacenamiento y Desconectar", + "Log out and remove encryption keys?": "¿Cerrar sesión y eliminar claves de cifrado?", + "Clear Storage and Sign Out": "Borrar Almacenamiento y Cerrar Sesión", "Send Logs": "Enviar Registros", "Refresh": "Refrescar", "We encountered an error trying to restore your previous session.": "Encontramos un error al intentar restaurar su sesión anterior.", "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.": "Si ha usado anteriormente una versión más reciente de Riot, su sesión puede ser incompatible con ésta. Cierre la ventana y vuelva a la versión más reciente.", "Clearing your browser's storage may fix the problem, but will sign you out and cause any encrypted chat history to become unreadable.": "Limpiando el almacenamiento del navegador puede arreglar el problema, pero le desconectará y cualquier historial de conversación cifrado se volverá ilegible.", - "User names may only contain letters, numbers, dots, hyphens and underscores.": "Los nombres de usuario pueden contener letras, números, punto, guiones y subrayado.", + "User names may only contain letters, numbers, dots, hyphens and underscores.": "Los nombres de usuario solo pueden contener letras, números, puntos, guiones y guiones bajos.", "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", @@ -1109,7 +1109,7 @@ "\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contiene dispositivos que no ha visto antes.", "Unknown devices": "Dispositivos desconocidos", "Unable to reject invite": "No se pudo rechazar la invitación", - "Share Message": "Compartir Mensaje", + "Share Message": "Compartir mensaje", "Collapse Reply Thread": "Colapsar Hilo de Respuestas", "Topic": "Tema", "Make this room private": "Hacer privada esta sala", @@ -1127,24 +1127,24 @@ "Add users to the community summary": "Agregar usuario al resumen de la comunidad", "Who would you like to add to this summary?": "¿A quién le gustaría agregar a este resumen?", "Failed to add the following users to the summary of %(groupId)s:": "Falló la adición de los usuarios siguientes al resumen de %(groupId)s:", - "Add a User": "Agregar un Usuario", + "Add a User": "Agregar un usuario", "Failed to remove a user from the summary of %(groupId)s": "Falló la eliminación de un usuario del resumen de %(groupId)s", "The user '%(displayName)s' could not be removed from the summary.": "No se pudo eliminar al usuario '%(displayName)s' del resumen.", - "Failed to upload image": "Falló la subida de la imagen", + "Failed to upload image": "No se pudo cargar la imagen", "Failed to update community": "Falló la actualización de la comunidad", "Unable to accept invite": "No se pudo aceptar la invitación", "Unable to join community": "No se pudo unir a comunidad", - "Leave Community": "Abandonar Comunidad", - "Leave %(groupName)s?": "¿Abandonar %(groupName)s?", + "Leave Community": "Salir de la Comunidad", + "Leave %(groupName)s?": "¿Salir de %(groupName)s?", "Unable to leave community": "No se pudo abandonar la comunidad", - "Community Settings": "Configuración de la Comunidad", + "Community Settings": "Ajustes de Comunidad", "Changes made to your community name and avatar might not be seen by other users for up to 30 minutes.": "Las modificaciones realizadas al nombre y avatar de la comunidad pueden no mostrarse a otros usuarios hasta dentro de 30 minutos.", "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "Estas salas se muestran a los miembros de la comunidad en la página de la misma. Los miembros pueden unirse a las salas pulsando sobre ellas.", - "Featured Rooms:": "Salas Destacadas:", - "Featured Users:": "Usuarios Destacados:", - "%(inviter)s has invited you to join this community": "%(inviter)s le ha invitado a unirse a esta comunidad", + "Featured Rooms:": "Salas destacadas:", + "Featured Users:": "Usuarios destacados:", + "%(inviter)s has invited you to join this community": "%(inviter)s te invitó a unirte a esta comunidad", "Join this community": "Unirse a esta comunidad", - "Leave this community": "Abandonar esta comunidad", + "Leave this community": "Salir de esta comunidad", "You are an administrator of this community": "Usted es un administrador de esta comunidad", "You are a member of this community": "Usted es un miembro de esta comunidad", "Who can join this community?": "¿Quién puede unirse a esta comunidad?", @@ -1153,7 +1153,7 @@ "Long Description (HTML)": "Descripción Larga (HTML)", "Description": "Descripción", "Community %(groupId)s not found": "No se encontraron %(groupId)s de la comunidad", - "This Home server does not support communities": "Este Home server no soporta comunidades", + "This Home server does not support communities": "Este Servidor Doméstico no soporta comunidades", "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", @@ -1169,18 +1169,18 @@ "Error whilst fetching joined communities": "Se produjo un error al recuperar las comunidades suscritas", "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 todas formas o cancelar.", + "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.|one": "Reemviar mensaje o cancelar mensaje ahora.", + "%(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.", "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?", "Room": "Sala", - "Clear filter": "Limpiar filtro", - "Light theme": "Tema ligero", + "Clear filter": "Borrar filtro", + "Light theme": "Tema claro", "Dark theme": "Tema oscuro", "Status.im theme": "Tema Status.im", "Autocomplete Delay (ms):": "Retraso del completado automático (en ms):", @@ -1196,7 +1196,7 @@ "Start automatically after system login": "Iniciar automáticamente después de ingresar en el sistema", "No Audio Outputs detected": "No se detectaron Salidas de Sonido", "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 haya seguido el enlace en él, pulse debajo.", + "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.", "Try the app first": "Probar primero la app", @@ -1206,9 +1206,9 @@ "This server does not support authentication with a phone number.": "Este servidor no soporta autenticación mediante número de teléfono.", "Missing password.": "Falta la contraseña.", "Passwords don't match.": "Las contraseñas no coinciden.", - "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "La contraseña es demasiado corta (mín %(MIN_PASSWORD_LENGTH)s).", - "This doesn't look like a valid email address.": "Ésta no parece una dirección de correo electrónico válida.", - "This doesn't look like a valid phone number.": "Éste no parece un número de teléfono válido.", + "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Contraseña demasiado corta (mínimo %(MIN_PASSWORD_LENGTH)s).", + "This doesn't look like a valid email address.": "Esto no parece ser una dirección de correo electrónico válida.", + "This doesn't look like a valid phone number.": "Esto no parece ser un número telefónico válido.", "An unknown error occurred.": "Ocurrió un error desconocido.", "I already have an account": "Ya tengo una cuenta", "Notify the whole room": "Notificar a toda la sala", @@ -1239,7 +1239,20 @@ "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.", "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": "La carga lenta de los miembros no está soportada", + "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.", - "System Alerts": "Alertas de Sistema" + "System Alerts": "Alertas de Sistema", + "Forces the current outbound group session in an encrypted room to be discarded": "Obliga a que la sesión de salida grupal actual en una sala cifrada se descarte", + "Error Discarding Session": "Error al Descartar la Sesión", + "Sorry, your homeserver is too old to participate in this room.": "Lo sentimos, tu servidor doméstico es demasiado antiguo para participar en esta sala.", + "Please contact your homeserver administrator.": "Por favor contacta al administrador de tu servidor doméstico.", + "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.", + "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" } diff --git a/src/i18n/strings/eu.json b/src/i18n/strings/eu.json index 703602ea9f..888cf66e62 100644 --- a/src/i18n/strings/eu.json +++ b/src/i18n/strings/eu.json @@ -1264,5 +1264,7 @@ "Lazy loading members not supported": "Kideen karga alferrerako euskarririk ez", "Lazy loading is not supported by your current homeserver.": "Zure hasiera zerbitzariak ez du onartzen karga alferra.", "Legal": "Legezkoa", - "Please contact your service administrator to continue using this service.": "Jarri kontaktuan zerbitzuaren administratzailearekin zerbitzu hau erabiltzen jarraitzeko." + "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" } diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 22a61d214c..9d950f2ef1 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -1264,5 +1264,10 @@ "Click here to see older messages.": "Cliquer ici pour voir les vieux messages.", "Failed to upgrade room": "Échec de la mise à niveau du salon", "The room upgrade could not be completed": "La mise à niveau du salon n'a pas pu être effectuée", - "Upgrade this room to version %(version)s": "Mettre à niveau ce salon vers la version %(version)s" + "Upgrade this room to version %(version)s": "Mettre à niveau ce salon vers la version %(version)s", + "Forces the current outbound group session in an encrypted room to be discarded": "Force la session de groupe sortante actuelle dans un salon chiffré à être rejetée", + "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" } diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 888ad80e17..a88dc6cc28 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -1264,5 +1264,10 @@ "Click here to see older messages.": "Ide kattintva megnézheted a régi üzeneteket.", "Failed to upgrade room": "A szoba frissítése sikertelen", "The room upgrade could not be completed": "A szoba frissítését nem sikerült befejezni", - "Upgrade this room to version %(version)s": "A szoba frissítése %(version)s verzióra" + "Upgrade this room to version %(version)s": "A szoba frissítése %(version)s verzióra", + "Error Discarding Session": "Hiba a munkamenet törlésénél", + "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" } diff --git a/src/i18n/strings/id.json b/src/i18n/strings/id.json index 86605c1d41..0c6ee2afe7 100644 --- a/src/i18n/strings/id.json +++ b/src/i18n/strings/id.json @@ -151,7 +151,7 @@ "Access Token:": "Token Akses:", "Active call (%(roomName)s)": "Panggilan aktif (%(roomName)s)", "Admin": "Admin", - "Admin Tools": "Alat admin", + "Admin Tools": "Peralatan Admin", "VoIP": "VoIP", "Missing Media Permissions, click here to request.": "Tidak ada Izin Media, klik disini untuk meminta.", "No Webcams detected": "Tidak ada Webcam terdeteksi", diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index 78ee961578..919d6794eb 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -1255,5 +1255,15 @@ "Please contact your homeserver administrator.": "Contatta l'amministratore del tuo homeserver.", "Lazy loading members not supported": "Il caricamento lento dei membri non è supportato", "Lazy loading is not supported by your current homeserver.": "Il caricamento lento non è supportato dal tuo attuale homeserver.", - "Legal": "Informazioni legali" + "Legal": "Informazioni legali", + "Forces the current outbound group session in an encrypted room to be discarded": "Forza l'eliminazione dell'attuale sessione di gruppo in uscita in una stanza criptata", + "Error Discarding Session": "Errore nell'eliminazione della sessione", + "This room has been replaced and is no longer active.": "Questa stanza è stata sostituita e non è più attiva.", + "The conversation continues here.": "La conversazione continua qui.", + "Upgrade room to version %(ver)s": "Aggiorna la stanza alla versione %(ver)s", + "This room is a continuation of another conversation.": "Questa stanza è la continuazione di un'altra conversazione.", + "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" } diff --git a/src/i18n/strings/lt.json b/src/i18n/strings/lt.json index 9657109608..b911458438 100644 --- a/src/i18n/strings/lt.json +++ b/src/i18n/strings/lt.json @@ -671,5 +671,116 @@ "Offline": "Atsijungęs", "Failed to set avatar.": "Nepavyko nustatyti avataro.", "Forget room": "Pamiršti kambarį", - "Share room": "Bendrinti kambarį" + "Share room": "Bendrinti kambarį", + "There are unknown devices in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "Šiame kambaryje yra nepatvirtintų įrenginių: jeigu tęsite jų nepatvirtinę, tuomet kas nors galės slapta klausytis jūsų skambučio.", + "Usage": "Naudojimas", + "Searches DuckDuckGo for results": "Atlieka rezultatų paiešką sistemoje DuckDuckGo", + "To use it, just wait for autocomplete results to load and tab through them.": "Norėdami tai naudoti, tiesiog, palaukite, kol bus įkelti automatiškai užbaigti rezultatai, o tuomet, pereikite per juos naudodami Tab klavišą.", + "%(targetName)s left the room.": "%(targetName)s išėjo iš kambario.", + "%(senderName)s changed the pinned messages for the room.": "%(senderName)s pakeitė prisegtas kambario žinutes.", + "Sorry, your homeserver is too old to participate in this room.": "Atleiskite, jūsų namų serveris yra per senas dalyvauti šiame kambaryje.", + "Please contact your homeserver administrator.": "Prašome susisiekti su savo namų serverio administratoriumi.", + "Enable inline URL previews by default": "Įjungti tiesiogines URL nuorodų peržiūras pagal numatymą", + "Enable URL previews for this room (only affects you)": "Įjungti URL nuorodų peržiūras šiame kambaryje (įtakoja tik jus)", + "Enable URL previews by default for participants in this room": "Įjungti URL nuorodų peržiūras pagal numatymą dalyviams šiame kambaryje", + "Confirm password": "Pakartokite slaptažodį", + "Demote yourself?": "Pažeminti save?", + "Demote": "Pažeminti", + "Share Link to User": "Bendrinti nuorodą su naudotoju", + "Direct chats": "Tiesioginiai pokalbiai", + "The conversation continues here.": "Pokalbis tęsiasi čia.", + "Jump to message": "Pereiti prie žinutės", + "Drop here to demote": "Vilkite čia, norėdami pažeminti", + "Favourites": "Mėgstami", + "This invitation was sent to an email address which is not associated with this account:": "Šis pakvietimas buvo išsiųstas į el. pašto adresą, kuris nėra susietas su šia paskyra:", + "You may wish to login with a different account, or add this email to this account.": "Jūs galite pageidauti prisijungti, naudojant kitą paskyrą, arba pridėti šį el. paštą į šią paskyrą.", + "You have been kicked from %(roomName)s by %(userName)s.": "%(userName)s išmetė jus iš %(roomName)s.", + "You have been kicked from this room by %(userName)s.": "%(userName)s išmetė jus iš šio kambario.", + "You have been banned from %(roomName)s by %(userName)s.": "%(userName)s užblokavo jus kambaryje %(roomName)s.", + "You have been banned from this room by %(userName)s.": "%(userName)s užblokavo jus šiame kambaryje.", + "To change the room's name, you must be a": "Norėdami pakeisti kambario pavadinimą, privalote būti", + "To change the room's main address, you must be a": "Norėdami pakeisti pagrindinį kambario adresą, privalote būti", + "To change the room's history visibility, you must be a": "Norėdami pakeisti kambario istorijos matomumą, privalote būti", + "To change the permissions in the room, you must be a": "Norėdami pakeisti leidimus kambaryje, privalote būti", + "To modify widgets in the room, you must be a": "Norėdami modifikuoti valdiklius šiame kambaryje, privalote būti", + "The visibility of existing history will be unchanged": "Esamos istorijos matomumas išliks nepakeistas", + "End-to-end encryption is in beta and may not be reliable": "Ištisinis šifravimas yra beta versijoje ir gali būti nepatikimas", + "You should not yet trust it to secure data": "Kol kas neturėtumėte pasitikėti, kad jis apsaugos jūsų duomenis", + "Encryption is enabled in this room": "Šifravimas šiame kambaryje yra įjungtas", + "Encryption is not enabled in this room": "Šifravimas šiame kambaryje nėra įjungtas", + "To kick users, you must be a": "Norėdami išmesti naudotojus, privalote būti", + "To ban users, you must be a": "Norėdami užblokuoti naudotojus, privalote būti", + "Banned users": "Užblokuoti naudotojai", + "This room is not accessible by remote Matrix servers": "Šis kambarys nėra pasiekiamas nuotoliniams Matrix serveriams", + "Who can read history?": "Kas gali skaityti istoriją?", + "Room version number: ": "Kambario versijos numeris: ", + "There is a known vulnerability affecting this room.": "Yra žinomas pažeidžiamumas, kuris paveikia šį kambarį.", + "Only room administrators will see this warning": "Šį įspėjimą matys tik kambario administratoriai", + "Remote addresses for this room:": "Nuotoliniai šio kambario adresai:", + "You have enabled URL previews by default.": "Jūs esate įjungę URL nuorodų peržiūras pagal numatymą.", + "You have disabled URL previews by default.": "Jūs esate išjungę URL nuorodų peržiūras pagal numatymą.", + "URL previews are enabled by default for participants in this room.": "URL nuorodų peržiūros yra įjungtos pagal numatymą šio kambario dalyviams.", + "URL previews are disabled by default for participants in this room.": "URL nuorodų peržiūros yra išjungtos pagal numatymą šio kambario dalyviams.", + "Invalid file%(extra)s": "Neteisingas failas %(extra)s", + "This room is a continuation of another conversation.": "Šis kambarys yra kito pokalbio pratęsimas.", + "Click here to see older messages.": "Spustelėkite čia, norėdami matyti senesnes žinutes.", + "This Home Server would like to make sure you are not a robot": "Šis namų serveris norėtų įsitikinti, kad nesate robotas", + "Token incorrect": "Neteisingas prieigos raktas", + "Sign in with": "Prisijungti naudojant", + "Sign in": "Prisijungti", + "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Jeigu nenurodysite savo el. pašto adreso, negalėsite atstatyti savo slaptažodį. Ar esate tikri?", + "Home server URL": "Namų serverio URL", + "Identity server URL": "Tapatybės serverio URL", + "Please contact your service administrator to continue using the service.": "Norėdami tęsti naudotis paslauga, susisiekite su savo paslaugos administratoriumi.", + "Reload widget": "Įkelti valdiklį iš naujo", + "Picture": "Paveikslas", + "Create new room": "Sukurti naują kambarį", + "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ą", + "collapse": "suskleisti", + "expand": "išskleisti", + "Room directory": "Kambarių katalogas", + "Start chat": "Pradėti pokalbį", + "ex. @bob:example.com": "pvz., @jonas:example.com", + "Add User": "Pridėti naudotoją", + "Matrix ID": "Matrix ID", + "email address": "el. pašto adresas", + "You have entered an invalid address.": "Įvedėte neteisingą adresą.", + "Try using one of the following valid address types: %(validTypesList)s.": "Pabandykite naudoti vieną iš šių teisingų adreso tipų: %(validTypesList)s.", + "Logs sent": "Žurnalai išsiųsti", + "Failed to send logs: ": "Nepavyko išsiųsti žurnalų: ", + "Submit debug logs": "Pateikti derinimo žurnalus", + "Start new chat": "Pradėti naują pokalbį", + "Click on the button below to start chatting!": "Norėdami pradėti bendravimą, paspauskite ant žemiau esančio mygtuko!", + "Create Community": "Sukurti bendruomenę", + "Community Name": "Bendruomenės pavadinimas", + "Example": "Pavyzdys", + "Community ID": "Bendruomenės ID", + "example": "pavyzdys", + "Create": "Sukurti", + "Create Room": "Sukurti kambarį", + "Room name (optional)": "Kambario pavadinimas (nebūtina)", + "Advanced options": "Išplėstiniai parametrai", + "This setting cannot be changed later!": "Šio nustatymo vėliau nebeįmanoma bus pakeisti!", + "Unknown error": "Nežinoma klaida", + "Incorrect password": "Neteisingas slaptažodis", + "To continue, please enter your password:": "Norėdami tęsti, įveskite savo slaptažodį:", + "password": "slaptažodis", + "Device name": "Įrenginio pavadinimas", + "Device key": "Įrenginio raktas", + "An error has occurred.": "Įvyko klaida.", + "Ignore request": "Nepaisyti užklausos", + "Loading device info...": "Įkeliama įrenginio informacija...", + "Failed to upgrade room": "Nepavyko atnaujinti kambarį", + "The room upgrade could not be completed": "Nepavyko užbaigti kambario naujinimo", + "Sign out": "Atsijungti", + "Log out and remove encryption keys?": "Atsijungti ir pašalinti šifravimo raktus?", + "Send Logs": "Siųsti žurnalus", + "Refresh": "Įkelti iš naujo", + "Unable to restore session": "Nepavyko atkurti seanso", + "Invalid Email Address": "Neteisingas el. pašto adresas" } diff --git a/src/i18n/strings/nn.json b/src/i18n/strings/nn.json index c1174dcd5a..dcbdb9977c 100644 --- a/src/i18n/strings/nn.json +++ b/src/i18n/strings/nn.json @@ -69,15 +69,15 @@ "Riot does not have permission to send you notifications - please check your browser settings": "Riot har ikkje tillating til å senda deg varsel - ver venleg og sjekk nettlesarinnstillingane dine", "Riot was not given permission to send notifications - please try again": "Riot fekk ikkje tillating til å senda varsel - ver venleg og prøv igjen", "Unable to enable Notifications": "Klarte ikkje å skru på Varsel", - "This email address was not found": "Denne emailadressa var ikkje funne", - "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Emailadressa di ser ikkje ut til å vera tilknytta ein Matrix-ID på denne heimtenaren.", + "This email address was not found": "Denne epostadressa var ikkje funnen", + "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Epostadressa di ser ikkje ut til å vera tilknytta ein Matrix-ID på denne heimtenaren.", "Default": "Utgangspunktinnstilling", "Restricted": "Avgrensa", "Moderator": "Moderator", "Admin": "Administrator", "Start a chat": "Start ei samtale", "Who would you like to communicate with?": "Kven vil du koma i kontakt med?", - "Email, name or matrix ID": "Email, namn eller Matrix-ID", + "Email, name or matrix ID": "Epost, namn eller Matrix-ID", "Start Chat": "Start ei Samtale", "Invite new room members": "Byd nye rommedlemer inn", "Who would you like to add to this room?": "Kven vil du leggja til i rommet?", @@ -120,9 +120,9 @@ "Unignored user": "Avoversedd brukar", "You are no longer ignoring %(userId)s": "Du overser ikkje %(userId)s no lenger", "Define the power level of a user": "Set ein brukar si makthøgd", - "This email address is already in use": "Denne emailadressa er allereie i bruk", + "This email address is already in use": "Denne epostadressa er allereie i bruk", "The platform you're on": "Platformen du er på", - "Failed to verify email address: make sure you clicked the link in the email": "Fekk ikkje til å stadfesta emailadressa: sjå til at du klikka på den rette lenkja i emailen", + "Failed to verify email address: make sure you clicked the link in the email": "Fekk ikkje til å stadfesta epostadressa: sjå til at du klikka på den rette lenkja i eposten", "Your identity server's URL": "Din identitetstenar si nettadresse", "Every page you use in the app": "Alle sider du brukar i æppen", "e.g. ": "t.d. ", @@ -262,7 +262,7 @@ "Passwords can't be empty": "Passordsfelta kan ikkje vera tomme", "Warning!": "Åtvaring!", "Continue": "Gå fram", - "Do you want to set an email address?": "Vil du setja ei emailadresse?", + "Do you want to set an email address?": "Vil du setja ei epostadresse?", "Current password": "Noverande passord", "Password": "Passord", "New Password": "Nytt Passord", @@ -278,8 +278,8 @@ "Last seen": "Sist sedd", "Select devices": "Vel einingar", "Failed to set display name": "Fekk ikkje til å setja visingsnamn", - "Error saving email notification preferences": "Klarte ikkje å lagra foretrukne emailvarselinnstillingar", - "An error occurred whilst saving your email notification preferences.": "Noko gjekk gale med lagringa av dine foretrukne emailvarselinstillingar.", + "Error saving email notification preferences": "Klarte ikkje å lagra foretrukne epostvarselinnstillingar", + "An error occurred whilst saving your email notification preferences.": "Noko gjekk gale med lagringa av dine foretrukne epostvarselinstillingar.", "Keywords": "Nykelord", "Enter keywords separated by a comma:": "Skriv inn nykelord med komma imellom:", "OK": "Greitt", @@ -291,8 +291,8 @@ "Notify me for anything else": "Varsl meg for kva som helst anna", "Enable notifications for this account": "Skru varsel på for denne brukaren", "All notifications are currently disabled for all targets.": "Alle varsel er for augeblunket skrudd av for alle mål.", - "Add an email address above to configure email notifications": "Legg til ein emailadresse i feltet over for å endra emailvarselinnstillingar", - "Enable email notifications": "Skru emailvarsel på", + "Add an email address above to configure email notifications": "Legg til ein epostadresse i feltet over for å endra epostvarselinnstillingar", + "Enable email notifications": "Skru epostvarsel på", "Notifications on the following keywords follow rules which can’t be displayed here:": "Varsel på fylgjande nykelord følgjer reglar som ikkje kan visast her:", "Unable to fetch notification target list": "Klarte ikkje å henta varselmållista", "Notification targets": "Varselmål", @@ -451,8 +451,8 @@ "You have no historical rooms": "Du har inkje historiske rom", "Historical": "Historiske", "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Klarte ikkje å forsikra at adressa som denne innbydinga er send til samsvarar med den som er tilknytta brukaren din.", - "This invitation was sent to an email address which is not associated with this account:": "Denne invitasjonen er send til ei emailadressa som ikkje er tilknytta denne brukaren:", - "You may wish to login with a different account, or add this email to this account.": "Kanskje du ynskjer å logga inn med ein anna brukar, eller leggja til denne emailen til denne brukaren.", + "This invitation was sent to an email address which is not associated with this account:": "Denne invitasjonen er send til ei epostadressa som ikkje er tilknytta denne brukaren:", + "You may wish to login with a different account, or add this email to this account.": "Kanskje du ynskjer å logga inn med ein annan brukar, eller leggja til denne eposten til denne brukaren.", "You have been invited to join this room by %(inviterName)s": "Du vart boden inn i dette rommet av %(inviterName)s", "Would you like to accept or decline this invitation?": "Vil du seia ja eller nei til denne innbydinga?", "Reason: %(reasonText)s": "Grunnlag: %(reasonText)s", @@ -587,18 +587,18 @@ "This Home Server would like to make sure you are not a robot": "Denne heimtenaren ynskjer å forsikra seg om at du ikkje er ein robot", "Sign in with CAS": "Logg inn med CAS", "This allows you to use this app with an existing Matrix account on a different home server.": "Dette tillèt deg å bruka denne æppen med ein Matrixbrukar som allereie finst på ein annan heimtenar.", - "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Du kan i tillegg setja ein eigen identitetstenar, men dette hindrar som regel samhandling med brukarar som brukar emailadresse.", + "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Du kan i tillegg setja ein eigen identitetstenar, men dette hindrar som regel samhandling med brukarar som brukar epostadresse.", "Dismiss": "Avvis", "To continue, please enter your password.": "For å gå fram, ver venleg og skriv passordet ditt inn.", "Password:": "Passord:", - "An email has been sent to %(emailAddress)s": "En email vart send til %(emailAddress)s", - "Please check your email to continue registration.": "Ver venleg og sjekk emailen din for å gå vidare med påmeldinga.", + "An email has been sent to %(emailAddress)s": "En epost vart send til %(emailAddress)s", + "Please check your email to continue registration.": "Ver venleg og sjekk eposten din for å gå vidare med påmeldinga.", "A text message has been sent to %(msisdn)s": "Ei tekstmelding vart send til %(msisdn)s", "Please enter the code it contains:": "Ver venleg og skriv koden den inneheld inn:", "Code": "Kode", "Start authentication": "Byrj godkjenning", "powered by Matrix": "Matrixdriven", - "The email field must not be blank.": "Emailfeltet kan ikkje vera tomt.", + "The email field must not be blank.": "Epostfeltet kan ikkje vera tomt.", "The user name field must not be blank.": "Brukarnamnfeltet kan ikkje vera tomt.", "The phone number field must not be blank.": "Telefonnummerfeltet kan ikkje vera tomt.", "The password field must not be blank.": "Passordfeltet kan ikkje vera tomt.", @@ -608,10 +608,10 @@ "Forgot your password?": "Gløymt passordet ditt?", "%(serverName)s Matrix ID": "%(serverName)s Matrix-ID", "Sign in with": "Logg inn med", - "Email address": "Emailadresse", + "Email address": "Epostadresse", "Sign in": "Logg inn", - "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Viss du ikkje seier kva emailadresse du vil bruka vil du ikkje kunna attendestille passordet ditt. Er du sikker?", - "Email address (optional)": "Emailadresse (valfritt)", + "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Viss du ikkje seier kva epostadresse du vil bruka vil du ikkje kunna attendestille passordet ditt. Er du sikker?", + "Email address (optional)": "Epostadresse (valfritt)", "You are registering with %(SelectedTeamName)s": "Du melder deg inn med %(SelectedTeamName)s", "Mobile phone number (optional)": "Mobiltelefonnummer (valfritt)", "Register": "Meld deg inn", @@ -738,7 +738,7 @@ "Add User": "Legg Brukar til", "Matrix ID": "Matrix-ID", "Matrix Room ID": "Matrixrom-ID", - "email address": "emailadresse", + "email address": "epostadresse", "You have entered an invalid address.": "Du har skrive ei ugangbar adresse inn.", "Try using one of the following valid address types: %(validTypesList)s.": "Prøv å bruka ein av dei fylgjande gangbare adressesortane: %(validTypesList)s.", "Preparing to send logs": "Førebur loggsending", @@ -781,7 +781,7 @@ "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.": "Dette gjer at brukaren din vert ubrukeleg til evig tid. Du kjem ikkje til å kunna logga inn, og ingen andre kjem til å kunna melde seg inn med den gamle brukar-IDen din. Brukaren din forlét òg alle rom han er i, og brukardetaljane dine vil verta fjerna frå identitetstenaren. Denne handlinga kan ikkje gjerast om.", "Deactivate Account": "Avliv Brukaren", "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.": "Å avliva brukaren din gjer i utgangspunktet ikkje at vi gløymer meldingane du har send. Viss du vil at vi skal gløyma meldingane dine, ver venleg og kryss av i firkanten under.", - "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.": "Meldingssynlegheit på Matrix liknar på email. At vi gløymer meldingane dine tyder at meldingar du har send ikkje vil verta delt med nye, ikkje-innmeldte brukarar, men brukare som er meldt på som allereie har tilgang til desse meldingane vil fortsatt kunne sjå kopien deira.", + "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.": "Meldingssynlegheit på Matrix liknar på epost. At vi gløymer meldingane dine tyder at meldingar du har send ikkje vil verta delt med nye, ikkje-innmeldte brukarar, men brukare som er meldt på som allereie har tilgang til desse meldingane vil fortsatt kunne sjå kopien deira.", "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)": "Ver venleg og gløym alle meldingane eg har send når brukaren min vert avliven (Åtvaring: dette gjer at framtidige brukarar ikkje fær eit fullstendig oversyn av samtalene)", "To continue, please enter your password:": "For å gå fram, ver venleg og skriv passordet ditt inn:", "password": "passord", @@ -817,12 +817,12 @@ "We encountered an error trying to restore your previous session.": "Noko gjekk gale med framhentinga av den førre øykta di.", "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.": "Viss du har bruka ei nyare utgåve av Riot før, kan det henda at øykta di ikkje passar inn i denne utgåva. Lukk dette vindauget og gå attende til den nyare utgåva.", "Clearing your browser's storage may fix the problem, but will sign you out and cause any encrypted chat history to become unreadable.": "Det kan henda at å tømma nettlesarlageret rettar opp i det, men det loggar deg ut og kan gjera den krypterte pratehistoria uleseleg.", - "Invalid Email Address": "Ugangbar Emailadresse", - "This doesn't appear to be a valid email address": "Det ser ikkje ut til at emailadressa er gangbar", + "Invalid Email Address": "Ugangbar Epostadresse", + "This doesn't appear to be a valid email address": "Det ser ikkje ut til at epostadressa er gangbar", "Verification Pending": "Ventar på Godkjenning", - "Please check your email and click on the link it contains. Once this is done, click continue.": "Ver venleg og sjekk emailen din og klikk på lenkja du har fått. Når det er gjort, klikk gå fram.", - "Unable to add email address": "Klarte ikkje å leggja emailadressa til", - "Unable to verify email address.": "Klarte ikkje å stadfesta emailadressa.", + "Please check your email and click on the link it contains. Once this is done, click continue.": "Ver venleg og sjekk eposten din og klikk på lenkja du har fått. Når det er gjort, klikk gå fram.", + "Unable to add email address": "Klarte ikkje å leggja epostadressa til", + "Unable to verify email address.": "Klarte ikkje å stadfesta epostadressa.", "This will allow you to reset your password and receive notifications.": "Dette tillèt deg å attendestilla passordet ditt og å få varsel.", "Skip": "Hopp over", "User names may only contain letters, numbers, dots, hyphens and underscores.": "Brukarnamn kan berre innehalda bokstavar, tal, prikkar, bindestrek og understrek.", @@ -834,9 +834,9 @@ "This will be your account name on the homeserver, or you can pick a different server.": "Dette vert brukarnamnet ditt på heimtenaren, elles so kan du velja ein annan tenar.", "If you already have a Matrix account you can log in instead.": "Viss du har ein Matrixbrukar allereie kan du logga på i staden.", "You have successfully set a password!": "Du sette passordet ditt!", - "You have successfully set a password and an email address!": "Du sette passordet og emailadressa di!", + "You have successfully set a password and an email address!": "Du sette passordet og epostadressa di!", "You can now return to your account after signing out, and sign in on other devices.": "Du kan no gå attende til brukaren din etter å ha logga ut, og logga inn på andre einingar.", - "Remember, you can always set an email address in user settings if you change your mind.": "Hugs at du alltid kan setja ei emailadresse i brukarinnstillingar viss du skiftar meining.", + "Remember, you can always set an email address in user settings if you change your mind.": "Hugs at du alltid kan setja ei epostadresse i brukarinnstillingar viss du skiftar meining.", "Failed to change password. Is your password correct?": "Fekk ikkje til å skifta passord. Er passordet rett?", "(HTTP status %(httpStatus)s)": "(HTTP-tilstand %(httpStatus)s)", "Please set a password!": "Ver venleg og set eit passord!", @@ -1059,8 +1059,8 @@ "Microphone": "Ljodopptaking", "Camera": "Kamera", "VoIP": "VoIP", - "Email": "Email", - "Add email address": "Legg emailadresse til", + "Email": "Epost", + "Add email address": "Legg epostadresse til", "Display name": "Visingsnamn", "Account": "Brukar", "To return to your account in future you need to set a password": "For å kunna koma attende til brukaren din i framtida må du setja eit passord", @@ -1071,21 +1071,21 @@ "matrix-react-sdk version:": "matrix-react-sdk-utgåve:", "riot-web version:": "riot-web-utgåve:", "olm version:": "olm-utgåve:", - "Failed to send email": "Fekk ikkje til å senda emailen", - "The email address linked to your account must be entered.": "Du må skriva emailadressa som er tilknytta brukaren din inn.", + "Failed to send email": "Fekk ikkje til å senda eposten", + "The email address linked to your account must be entered.": "Du må skriva epostadressa som er tilknytta brukaren din inn.", "A new password must be entered.": "Du må skriva eit nytt passord inn.", "New passwords must match each other.": "Dei nye passorda må vera like.", - "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "Ein email vert send til %(emailAddress)s. Når du har far fylgd lenkja i den, klikk under.", - "I have verified my email address": "Eg har godkjend emailadressa mi", + "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "Ein epost vart send til %(emailAddress)s. Når du har far fylgd lenkja i den, klikk under.", + "I have verified my email address": "Eg har godkjend epostadressa mi", "Your password has been reset": "Passordet ditt vart attendesett", "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": "Du vart logga av alle einingar og får ikkje lenger pushvarsel. For å skru varsel på att, logg inn igjen på kvar eining", "Return to login screen": "Gå attende til innlogging", - "To reset your password, enter the email address linked to your account": "For å attendestilla passordet ditt, skriv emailadressa som er lenkja til brukaren din inn", + "To reset your password, enter the email address linked to your account": "For å attendestilla passordet ditt, skriv epostadressa som er lenkja til brukaren din inn", "New password": "Nytt passord", "Confirm your new password": "Stadfest det nye passordet ditt", - "Send Reset Email": "Send attendestillingsemail", + "Send Reset Email": "Send attendestillingsepost", "Create an account": "Lag ein brukar", - "This Home Server does not support login using email address.": "Denne Heimtenaren støttar ikkje innlogging med email.", + "This Home Server does not support login using email address.": "Denne Heimtenaren støttar ikkje innlogging med epost.", "Please contact your service administrator to continue using this service.": "Ver venleg og kontakt din tenesteadministrator for å halda fram med å bruka tenesten.", "Incorrect username and/or password.": "Urett brukarnamn og/eller passord.", "Please note you are logging into the %(hs)s server, not matrix.org.": "Merk deg at du loggar inn på %(hs)s-tenaren, ikkje matrix.org.", @@ -1103,7 +1103,7 @@ "Missing password.": "Vantande passord.", "Passwords don't match.": "Passorda er ikkje like.", "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Passordet er for kort (i det minste %(MIN_PASSWORD_LENGTH)s).", - "This doesn't look like a valid email address.": "Dette ser ikkje ut som ei gangbar emailadresse.", + "This doesn't look like a valid email address.": "Dette ser ikkje ut som ei gangbar epostadresse.", "This doesn't look like a valid phone number.": "Dette ser ikkje ut som eit gangbart telefonnummer.", "You need to enter a user name.": "Du må skriva eit brukarnamn inn.", "An unknown error occurred.": "Noko ukjend gjekk gale.", diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index 8137be265b..05c102d516 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -1251,5 +1251,11 @@ "Click here to see older messages.": "Kliknutím sem zobrazíte staršie správy.", "Failed to upgrade room": "Nepodarilo sa aktualizovať miestnosť", "The room upgrade could not be completed": "Nie je možné dokončiť aktualizáciu miestnosti na jej najnovšiu verziu", - "Upgrade this room to version %(version)s": "Aktualizácia tejto miestnosti na verziu %(version)s" + "Upgrade this room to version %(version)s": "Aktualizácia tejto miestnosti na verziu %(version)s", + "Upgrade Room Version": "Aktualizovať verziu miestnosti", + "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:": "Aktualizácia verzii tejto miestnosti si vyžaduje jej uzatvorenie a vytvorenie novej miestnosti na jej pôvodnom mieste. Aby bol prechod pre členov miestnosti čo najplynulejší, nasledovné kroky sa vykonajú automaticky:", + "Create a new room with the same name, description and avatar": "Vznikne nová miestnosť s rovnakým názvom, témou a obrázkom", + "Update any local room aliases to point to the new room": "Všetky lokálne aliasy pôvodnej miestnosti sa aktualizujú tak, aby ukazovali na novú miestnosť", + "Stop users from speaking in the old version of the room, and post a message advising users to move to the new room": "V pôvodnej miestnosti bude zverejnené odporúčanie prejsť do novej miestnosti a posielanie do pôvodnej miestnosti bude zakázané pre všetkých používateľov", + "Put a link back to the old room at the start of the new room so people can see old messages": "História novej miestnosti sa začne odkazom do pôvodnej miestnosti, aby si členovia vedeli zobraziť staršie správy" } diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json index da167bb4e3..032a50cec6 100644 --- a/src/i18n/strings/sv.json +++ b/src/i18n/strings/sv.json @@ -1003,8 +1003,8 @@ "%(oneUser)schanged their name %(count)s times|one": "%(oneUser)sbytte namn", "%(severalUsers)schanged their avatar %(count)s times|other": "%(severalUsers)sändrade sin avatar %(count)s gånger", "%(severalUsers)schanged their avatar %(count)s times|one": "%(severalUsers)sändrade sin avatar", - "%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)ssändrade sin avatar %(count)s gånger", - "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)ssändrade sin avatar", + "%(oneUser)schanged their avatar %(count)s times|other": "%(oneUser)sändrade sin avatar %(count)s gånger", + "%(oneUser)schanged their avatar %(count)s times|one": "%(oneUser)sändrade sin avatar", "%(items)s and %(count)s others|other": "%(items)s och %(count)s andra", "%(items)s and %(count)s others|one": "%(items)s och en annan", "collapse": "fäll ihop", diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 536628c3b1..a80039de52 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -1264,5 +1264,11 @@ "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" + "Upgrade this room to version %(version)s": "升級此聊天室到版本 %(version)s", + "Forces the current outbound group session in an encrypted room to be discarded": "強制目前在已加密的聊天室中的外發群組工作階段丟棄", + "Error Discarding Session": "丟棄工作階段錯誤", + "Registration Required": "需要註冊", + "You need to register to do this. Would you like to register now?": "您必須註冊以繼續。您想要現在註冊嗎?", + "Unable to query for supported registration methods": "無法查詢支援的註冊方式", + "Unable to connect to Homeserver. Retrying...": "無法連線到家伺服器。正在重試……" } From 2380f2cb1f76d3e2035f124d766a6ca0e3c88283 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 7 Sep 2018 14:31:45 +0100 Subject: [PATCH 146/162] js-sdk rc.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fb8acbecf7..dfbaf4e20c 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "linkifyjs": "^2.1.6", "lodash": "^4.13.1", "lolex": "2.3.2", - "matrix-js-sdk": "0.10.9", + "matrix-js-sdk": "0.11.0-rc.1", "optimist": "^0.6.1", "pako": "^1.0.5", "prop-types": "^15.5.8", From 1cab61f56055e14cd330532201e47a556f255e56 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 7 Sep 2018 14:35:44 +0100 Subject: [PATCH 147/162] Prepare changelog for v0.13.4-rc.1 --- CHANGELOG.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5298e1cd63..7bcd68e1e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,34 @@ +Changes in [0.13.4-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.13.4-rc.1) (2018-09-07) +=============================================================================================================== +[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.13.3...v0.13.4-rc.1) + + * Error on splash screen if sync is failing + [\#2155](https://github.com/matrix-org/matrix-react-sdk/pull/2155) + * Do full registration if HS doesn't support ILAG + [\#2150](https://github.com/matrix-org/matrix-react-sdk/pull/2150) + * Re-apply "Don't rely on room members to query power levels" + [\#2152](https://github.com/matrix-org/matrix-react-sdk/pull/2152) + * s/DidMount/WillMount/ in MessageComposerInput + [\#2151](https://github.com/matrix-org/matrix-react-sdk/pull/2151) + * Revert "Don't rely on room members to query power levels" + [\#2149](https://github.com/matrix-org/matrix-react-sdk/pull/2149) + * Don't rely on room members to query power levels + [\#2145](https://github.com/matrix-org/matrix-react-sdk/pull/2145) + * Correctly mark email as optional + [\#2148](https://github.com/matrix-org/matrix-react-sdk/pull/2148) + * guests trying to join communities should fire the ILAG flow. + [\#2059](https://github.com/matrix-org/matrix-react-sdk/pull/2059) + * Fix DM avatars, part 3 + [\#2146](https://github.com/matrix-org/matrix-react-sdk/pull/2146) + * Fix: show spinner again while recovering from connection error + [\#2143](https://github.com/matrix-org/matrix-react-sdk/pull/2143) + * Fix: infinite spinner on trying to create welcomeUserId room without consent + [\#2147](https://github.com/matrix-org/matrix-react-sdk/pull/2147) + * Show spinner in member list while loading members + [\#2139](https://github.com/matrix-org/matrix-react-sdk/pull/2139) + * Slash command to discard megolm session + [\#2140](https://github.com/matrix-org/matrix-react-sdk/pull/2140) + Changes in [0.13.3](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.13.3) (2018-09-03) ===================================================================================================== [Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.13.3-rc.2...v0.13.3) From 830edeb9ca7424001357e1d3288fd274265c97c3 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 7 Sep 2018 14:35:44 +0100 Subject: [PATCH 148/162] v0.13.4-rc.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dfbaf4e20c..06fbd51a1c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "matrix-react-sdk", - "version": "0.13.3", + "version": "0.13.4-rc.1", "description": "SDK for matrix.org using React", "author": "matrix.org", "repository": { From 9a3717a274103cc259f448baa201e1b5f0855121 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Fri, 7 Sep 2018 19:53:01 +0200 Subject: [PATCH 149/162] only dispatch an action for self-membership as everything listens to the dispatcher, dispatching an action can be quite slow, especially when only matched in one listener, and the rest all having to be called to just say "no, thanks". This is especially the case for the RoomMember.membership event being put on the dispatcher, as there can be thousands of these events when the room members are loading. Since the RoomMember.membership action is only used on one place, and only for the syncing user, change it to just that and only dispatch in that case. This saves 100-300ms when setting the OOB members in a big room (7000k members) Maybe later on we can back this by room.getMyMembership() and avoid the listener even... --- src/actions/MatrixActionCreators.js | 19 ++++++++++++------- src/stores/RoomListStore.js | 3 +-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/actions/MatrixActionCreators.js b/src/actions/MatrixActionCreators.js index 6e1d52a88f..893564b325 100644 --- a/src/actions/MatrixActionCreators.js +++ b/src/actions/MatrixActionCreators.js @@ -149,9 +149,9 @@ function createRoomTimelineAction(matrixClient, timelineEvent, room, toStartOfTi */ /** - * Create a MatrixActions.RoomMember.membership action that represents - * a MatrixClient `RoomMember.membership` matrix event, emitted when a - * member's membership is updated. + * Create a MatrixActions.Room.selfMembership action that represents + * a MatrixClient `RoomMember.membership` matrix event for the syncing user, + * emitted when the member's membership is updated. * * @param {MatrixClient} matrixClient the matrix client. * @param {MatrixEvent} membershipEvent the m.room.member event. @@ -159,8 +159,10 @@ function createRoomTimelineAction(matrixClient, timelineEvent, room, toStartOfTi * @param {string} oldMembership the member's previous membership. * @returns {RoomMembershipAction} an action of type `MatrixActions.RoomMember.membership`. */ -function createRoomMembershipAction(matrixClient, membershipEvent, member, oldMembership) { - return { action: 'MatrixActions.RoomMember.membership', member }; +function createSelfRoomMembershipAction(matrixClient, membershipEvent, member, oldMembership) { + if (member.userId === matrixClient.getUserId()) { + return { action: 'MatrixActions.Room.selfMembership', member }; + } } /** @@ -202,7 +204,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', createRoomMembershipAction); + this._addMatrixClientListener(matrixClient, 'RoomMember.membership', createSelfRoomMembershipAction); this._addMatrixClientListener(matrixClient, 'Event.decrypted', createEventDecryptedAction); }, @@ -217,7 +219,10 @@ export default { */ _addMatrixClientListener(matrixClient, eventName, actionCreator) { const listener = (...args) => { - dis.dispatch(actionCreator(matrixClient, ...args), true); + const payload = actionCreator(matrixClient, ...args); + if (payload) { + dis.dispatch(payload, true); + } }; matrixClient.on(eventName, listener); this._matrixClientListenersStop.push(() => { diff --git a/src/stores/RoomListStore.js b/src/stores/RoomListStore.js index 6571e1590f..02d728ff2e 100644 --- a/src/stores/RoomListStore.js +++ b/src/stores/RoomListStore.js @@ -120,8 +120,7 @@ class RoomListStore extends Store { this._generateRoomLists(); } break; - case 'MatrixActions.RoomMember.membership': { - if (!this._matrixClient || payload.member.userId !== this._matrixClient.credentials.userId) break; + case 'MatrixActions.Room.selfMembership': { this._generateRoomLists(); } break; From 0cd222ef0be30a7842ac02c29acddc71a745c989 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Fri, 7 Sep 2018 23:44:20 +0200 Subject: [PATCH 150/162] make users available in member by requesting them from client right before before this was already foreseen, but memberDict wasn't being refreshed as it's only used in roomMembers(), I got rid of memberDict as well --- src/components/views/rooms/MemberList.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js index 6ef448f0fd..87758fa922 100644 --- a/src/components/views/rooms/MemberList.js +++ b/src/components/views/rooms/MemberList.js @@ -32,7 +32,6 @@ module.exports = React.createClass({ displayName: 'MemberList', getInitialState: function() { - this.memberDict = this.getMemberDict(); this._mounted = false; const cli = MatrixClientPeg.get(); @@ -196,8 +195,6 @@ module.exports = React.createClass({ _updateList: new rate_limited_func(function() { // console.log("Updating memberlist"); - this.memberDict = this.getMemberDict(); - const newState = { members: this.roomMembers(), }; @@ -206,15 +203,15 @@ module.exports = React.createClass({ this.setState(newState); }, 500), - getMemberDict: function() { - if (!this.props.roomId) return {}; + getMembersWithUser: function() { + if (!this.props.roomId) return []; const cli = MatrixClientPeg.get(); const room = cli.getRoom(this.props.roomId); if (!room) return {}; - const all_members = room.currentState.members; + const allMembers = Object.values(room.currentState.members); - Object.values(all_members).forEach(function(member) { + allMembers.forEach(function(member) { // work around a race where you might have a room member object // before the user object exists. This may or may not cause // https://github.com/vector-im/vector-web/issues/186 @@ -226,14 +223,13 @@ module.exports = React.createClass({ // the right solution here is to fix the race rather than leave it as 0 }); - return all_members; + return allMembers; }, roomMembers: function() { const ConferenceHandler = CallHandler.getConferenceHandler(); - const allMembersDict = this.memberDict || {}; - const allMembers = Object.values(allMembersDict); + const allMembers = this.getMembersWithUser(); const filteredAndSortedMembers = allMembers.filter((m) => { return ( m.membership === 'join' || m.membership === 'invite' From b8bfed13084ff5c4b3517932b241c53b3429e2e0 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Sun, 9 Sep 2018 10:26:16 +0100 Subject: [PATCH 151/162] point deps at #develop to unbreak npm i --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fb8acbecf7..9410535aae 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "linkifyjs": "^2.1.6", "lodash": "^4.13.1", "lolex": "2.3.2", - "matrix-js-sdk": "0.10.9", + "matrix-js-sdk": "matrix-org/matrix-js-sdk#develop", "optimist": "^0.6.1", "pako": "^1.0.5", "prop-types": "^15.5.8", From 86c92ee56dd53ea1642118313e4ba37dea9c7e1a Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Tue, 4 Sep 2018 20:33:04 +0100 Subject: [PATCH 152/162] downgraded parallelshell due to https://github.com/darkguy2008/parallelshell/issues/57 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9410535aae..71d1aa5448 100644 --- a/package.json +++ b/package.json @@ -133,7 +133,7 @@ "matrix-mock-request": "^1.2.1", "matrix-react-test-utils": "^0.1.1", "mocha": "^5.0.5", - "parallelshell": "^3.0.2", + "parallelshell": "3.0.1", "react-addons-test-utils": "^15.4.0", "require-json": "0.0.1", "rimraf": "^2.4.3", From ef20813f2e1d45c7e0ba66e30d58815d27c94ec6 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Sun, 9 Sep 2018 18:38:21 +0100 Subject: [PATCH 153/162] remove layering warnings --- README.md | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index c3106ccec7..ac45497dd4 100644 --- a/README.md +++ b/README.md @@ -11,16 +11,8 @@ a 'skin'. A skin provides: * The containing application * Zero or more 'modules' containing non-UI functionality -**WARNING: As of July 2016, the skinning abstraction is broken due to rapid -development of `matrix-react-sdk` to meet the needs of Riot (codenamed Vector), the first app -to be built on top of the SDK** (https://github.com/vector-im/riot-web). -Right now `matrix-react-sdk` depends on some functionality from `riot-web` -(e.g. CSS), and `matrix-react-sdk` contains some Riot specific behaviour -(grep for 'vector'). This layering will be fixed asap once Riot development -has stabilised, but for now we do not advise trying to create new skins for -matrix-react-sdk until the layers are clearly separated again. - -In the interim, `vector-im/riot-web` and `matrix-org/matrix-react-sdk` should +As of Aug 2018, the only skin that exists is `vector-im/riot-web`; it and +`matrix-org/matrix-react-sdk` should effectively be considered as a single project (for instance, matrix-react-sdk bugs are currently filed against vector-im/riot-web rather than this project). @@ -48,15 +40,14 @@ https://github.com/matrix-org/synapse/tree/master/CONTRIBUTING.rst Please follow the Matrix JS/React code style as per: https://github.com/matrix-org/matrix-react-sdk/blob/master/code_style.md -Whilst the layering separation between matrix-react-sdk and Riot is broken -(as of July 2016), code should be committed as follows: +Code should be committed as follows: * All new components: https://github.com/matrix-org/matrix-react-sdk/tree/master/src/components * Riot-specific components: https://github.com/vector-im/riot-web/tree/master/src/components * In practice, `matrix-react-sdk` is still evolving so fast that the maintenance burden of customising and overriding these components for Riot can seriously impede development. So right now, there should be very few (if any) customisations for Riot. - * CSS for Matrix SDK components: https://github.com/vector-im/riot-web/tree/master/src/skins/vector/css/matrix-react-sdk - * CSS for Riot-specific overrides and components: https://github.com/vector-im/riot-web/tree/master/src/skins/vector/css/riot-web + * CSS: https://github.com/vector-im/riot-web/tree/master/src/skins/vector/css/matrix-react-sdk + * Theme specific CSS & resources: https://github.com/matrix-org/matrix-react-sdk/tree/master/res/themes React components in matrix-react-sdk are come in two different flavours: 'structures' and 'views'. Structures are stateful components which handle the @@ -84,6 +75,7 @@ practices that anyone working with the SDK needs to be be aware of and uphold: * Per-view CSS is optional - it could choose to inherit all its styling from the context of the rest of the app, although this is unusual for any but + * Theme specific CSS & resources: https://github.com/matrix-org/matrix-react-sdk/tree/master/res/themes structural components (lacking presentation logic) and the simplest view components. @@ -139,8 +131,7 @@ for now. OUTDATED: To Create Your Own Skin ================================= -**This is ALL LIES currently, as skinning is currently broken - see the WARNING -section at the top of this readme.** +**This is ALL LIES currently, and needs to be updated** Skins are modules are exported from such a package in the `lib` directory. `lib/skins` contains one directory per-skin, named after the skin, and the From f99aef8edea4c20d6dae236f4942f30d6d88b152 Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 10 Sep 2018 11:36:06 +0100 Subject: [PATCH 154/162] js-sdk v0.11.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 06fbd51a1c..ebdf9b9cd6 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "linkifyjs": "^2.1.6", "lodash": "^4.13.1", "lolex": "2.3.2", - "matrix-js-sdk": "0.11.0-rc.1", + "matrix-js-sdk": "0.11.0", "optimist": "^0.6.1", "pako": "^1.0.5", "prop-types": "^15.5.8", From bb37e36e71029b95f379c5749da21b4b4b106ece Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 10 Sep 2018 11:38:52 +0100 Subject: [PATCH 155/162] Prepare changelog for v0.13.4 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7bcd68e1e6..390b90a41e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +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) + + * No changes since rc.1 + Changes in [0.13.4-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.13.4-rc.1) (2018-09-07) =============================================================================================================== [Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.13.3...v0.13.4-rc.1) From 405f0bcf983bdb7c04c701cec3d00131189062a8 Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 10 Sep 2018 11:38:53 +0100 Subject: [PATCH 156/162] v0.13.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ebdf9b9cd6..182dfecb5b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "matrix-react-sdk", - "version": "0.13.4-rc.1", + "version": "0.13.4", "description": "SDK for matrix.org using React", "author": "matrix.org", "repository": { From 5044d4f2d63d2eb46ea940948ea2de32533ebb15 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Mon, 10 Sep 2018 14:56:10 +0200 Subject: [PATCH 157/162] dont keep the spinner in the memberlist when fetching /members fails --- src/components/views/rooms/MemberList.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js index 223c555fbb..623bdaa821 100644 --- a/src/components/views/rooms/MemberList.js +++ b/src/components/views/rooms/MemberList.js @@ -91,7 +91,9 @@ module.exports = React.createClass({ const cli = MatrixClientPeg.get(); const room = cli.getRoom(this.props.roomId); if (room) { - await room.loadMembersIfNeeded(); + try { + await room.loadMembersIfNeeded(); + } catch(ex) {/* already logged in RoomView */} } }, From dcc8a45aa119b26d4caa37ea47feee3f26b37cd4 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Mon, 10 Sep 2018 16:55:24 +0200 Subject: [PATCH 158/162] add final return for clarity --- src/actions/MatrixActionCreators.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/actions/MatrixActionCreators.js b/src/actions/MatrixActionCreators.js index 893564b325..17be9a5e0f 100644 --- a/src/actions/MatrixActionCreators.js +++ b/src/actions/MatrixActionCreators.js @@ -163,6 +163,7 @@ function createSelfRoomMembershipAction(matrixClient, membershipEvent, member, o if (member.userId === matrixClient.getUserId()) { return { action: 'MatrixActions.Room.selfMembership', member }; } + return null; } /** From 92f7e29132136992c92f21bbaa4035e0f609a939 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Mon, 10 Sep 2018 17:32:40 +0200 Subject: [PATCH 159/162] missed one {} -> [], fix e2e tests --- src/components/views/rooms/MemberList.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js index 87758fa922..3672196506 100644 --- a/src/components/views/rooms/MemberList.js +++ b/src/components/views/rooms/MemberList.js @@ -207,7 +207,7 @@ module.exports = React.createClass({ if (!this.props.roomId) return []; const cli = MatrixClientPeg.get(); const room = cli.getRoom(this.props.roomId); - if (!room) return {}; + if (!room) return []; const allMembers = Object.values(room.currentState.members); From 2aaf3e6b89ce9d7a781baf1acc4720603caded17 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Mon, 10 Sep 2018 17:39:03 +0200 Subject: [PATCH 160/162] dont assign member in getInitialState --- src/components/views/rooms/MemberList.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js index 3672196506..4a22df8451 100644 --- a/src/components/views/rooms/MemberList.js +++ b/src/components/views/rooms/MemberList.js @@ -32,8 +32,6 @@ module.exports = React.createClass({ displayName: 'MemberList', getInitialState: function() { - this._mounted = false; - const cli = MatrixClientPeg.get(); if (cli.hasLazyLoadMembersEnabled()) { return {loading: true}; @@ -43,6 +41,7 @@ module.exports = React.createClass({ }, componentWillMount: function() { + this._mounted = false; const cli = MatrixClientPeg.get(); if (!cli.hasLazyLoadMembersEnabled()) { this._listenForMembersChanges(); From 694ee5a2c87931833a1818082f064d1e1bd0eea7 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Mon, 10 Sep 2018 18:09:11 +0200 Subject: [PATCH 161/162] fix logging room id when LL members fail --- src/components/structures/RoomView.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js index 54f730de5d..c6bd285b49 100644 --- a/src/components/structures/RoomView.js +++ b/src/components/structures/RoomView.js @@ -318,7 +318,7 @@ module.exports = React.createClass({ // lazy load members if enabled if (SettingsStore.isFeatureEnabled('feature_lazyloading')) { room.loadMembersIfNeeded().catch((err) => { - const errorMessage = `Fetching room members for ${this.roomId} failed.` + + const errorMessage = `Fetching room members for ${roomId} failed.` + " Room members will appear incomplete."; console.error(errorMessage); console.error(err); From deaad4bcb17d30a89df394b71d7419bb4d5e3f94 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Mon, 10 Sep 2018 18:11:08 +0200 Subject: [PATCH 162/162] even better as the method called is on room --- src/components/structures/RoomView.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js index c6bd285b49..88c1d153eb 100644 --- a/src/components/structures/RoomView.js +++ b/src/components/structures/RoomView.js @@ -318,7 +318,7 @@ module.exports = React.createClass({ // lazy load members if enabled if (SettingsStore.isFeatureEnabled('feature_lazyloading')) { room.loadMembersIfNeeded().catch((err) => { - const errorMessage = `Fetching room members for ${roomId} failed.` + + const errorMessage = `Fetching room members for ${room.roomId} failed.` + " Room members will appear incomplete."; console.error(errorMessage); console.error(err);