From 4a1ba01f44df7bbe7a7d7812b9c359701edb0e6c Mon Sep 17 00:00:00 2001 From: MTRNord Date: Sun, 13 Aug 2017 00:56:37 +0000 Subject: [PATCH 01/42] fix deprecation warning --- src/languageHandler.js | 47 +++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/src/languageHandler.js b/src/languageHandler.js index e956d4f8bd..54a8596d5d 100644 --- a/src/languageHandler.js +++ b/src/languageHandler.js @@ -231,35 +231,30 @@ export function getCurrentLanguage() { } function getLangsJson() { - const deferred = Promise.defer(); - - request( - { method: "GET", url: i18nFolder + 'languages.json' }, - (err, response, body) => { - if (err || response.status < 200 || response.status >= 300) { - deferred.reject({err: err, response: response}); - return; + return new Promise((resolve, reject) => { + request( + { method: "GET", url: i18nFolder + 'languages.json' }, + (err, response, body) => { + if (err || response.status < 200 || response.status >= 300) { + reject({err: err, response: response}); + } + resolve(JSON.parse(body)); } - deferred.resolve(JSON.parse(body)); - } - ); - return deferred.promise; + ); + }); } function getLanguage(langPath) { - const deferred = Promise.defer(); - - let response_return = {}; - request( - { method: "GET", url: langPath }, - (err, response, body) => { - if (err || response.status < 200 || response.status >= 300) { - deferred.reject({err: err, response: response}); - return; + return new Promise((resolve, reject) => { + let response_return = {}; + request( + { method: "GET", url: langPath }, + (err, response, body) => { + if (err || response.status < 200 || response.status >= 300) { + reject({err: err, response: response}); + } + resolve(JSON.parse(body)); } - - deferred.resolve(JSON.parse(body)); - } - ); - return deferred.promise; + ); + }); } From b0d088dfd0bf32482857ad209d5ea0f9c65da2f2 Mon Sep 17 00:00:00 2001 From: Jan Kudrik Date: Thu, 17 Aug 2017 17:11:38 +0000 Subject: [PATCH 02/42] Added translation using Weblate (Czech) --- src/i18n/strings/cs.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/i18n/strings/cs.json diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/src/i18n/strings/cs.json @@ -0,0 +1 @@ +{} \ No newline at end of file From 4a1106de2f1c7df1e51a35254daa9a03584eda2f Mon Sep 17 00:00:00 2001 From: Bamstam Date: Fri, 18 Aug 2017 14:47:01 +0000 Subject: [PATCH 03/42] Translated using Weblate (German) Currently translated at 94.9% (914 of 963 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, 3 insertions(+), 5 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 8cd9498880..2280336741 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -552,10 +552,8 @@ "Failed to forget room %(errCode)s": "Das Entfernen des Raums ist fehlgeschlagen %(errCode)s", "Failed to join the room": "Fehler beim Betreten des Raumes", "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Eine Textnachricht wurde an +%(msisdn)s gesendet. Bitte gebe den Verifikationscode ein, den er beinhaltet", - "and %(count)s others...": { - "other": "und %(count)s weitere...", - "one": "und ein(e) weitere(r)..." - }, + "and %(count)s others....other": "und %(count)s weitere...", + "and %(count)s others....one": "und ein(e) weitere(r)...", "Are you sure?": "Bist du sicher?", "Attachment": "Anhang", "Ban": "Dauerhaft aus dem Raum ausschließen", @@ -905,7 +903,7 @@ "Something went wrong!": "Etwas ging schief!", "This will be your account name on the homeserver, or you can pick a different server.": "Dies wird dein zukünftiger Benutzername auf dem Heimserver. Alternativ kannst du auch einen anderen Server auswählen.", "If you already have a Matrix account you can log in instead.": "Wenn du bereits ein Matrix-Benutzerkonto hast, kannst du dich stattdessen auch direkt anmelden.", - "Home": "Start", + "Home": "Startseite", "Username invalid: %(errMessage)s": "Ungültiger Benutzername: %(errMessage)s", "a room": "einen Raum", "Accept": "Akzeptieren", From 45e7f1c40103bdde303cdec9d7ab05e9184ca264 Mon Sep 17 00:00:00 2001 From: Krombel Date: Fri, 18 Aug 2017 15:56:02 +0000 Subject: [PATCH 04/42] Translated using Weblate (German) Currently translated at 100.0% (963 of 963 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 | 52 +++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 2280336741..e71ac2653d 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -649,7 +649,7 @@ "%(items)s and %(remaining)s others": "%(items)s und %(remaining)s weitere", "%(items)s and one other": "%(items)s und ein(e) weitere(r)", "%(items)s and %(lastItem)s": "%(items)s und %(lastItem)s", - "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)s sind dem Raum %(repeats)s mal beigetreten", + "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)ssind dem Raum %(repeats)s mal beigetreten", "%(oneUser)sjoined %(repeats)s times": "%(oneUser)shat den Raum %(repeats)s mal betreten", "%(severalUsers)sjoined": "%(severalUsers)shaben den Raum betreten", "%(oneUser)sjoined": "%(oneUser)shat den Raum betreten", @@ -984,5 +984,53 @@ "Encryption key request": "Verschlüsselungs-Schlüssel-Anfrage", "Your unverified device '%(displayName)s' is requesting encryption keys.": "Dein nicht verifiziertes Gerät '%(displayName)s' fordert Verschlüsselungs-Schlüssel an.", "Updates": "Updates", - "Check for update": "Suche nach Updates" + "Check for update": "Suche nach Updates", + "Add a widget": "Widget hinzufügen", + "Allow": "Erlauben", + "Changes colour scheme of current room": "Ändere Farbschema des aktuellen Raumes", + "Delete widget": "Widget entfernen", + "Define the power level of a user": "Setze das Berechtigungslevel eines Benutzers", + "Edit": "Bearbeiten", + "Enable automatic language detection for syntax highlighting": "Aktiviere automatische Spracherkennung zum Syntax-Hervorheben", + "Hide Apps": "Apps verbergen", + "Hide join/leave messages (invites/kicks/bans unaffected)": "Verberge Beitritt-/Verlassen-Meldungen (nicht Einladungen/Kicks/Bannungen)", + "Hide avatar and display name changes": "Verberge Avatar- und Anzeigenamen-Änderungen", + "Matrix Apps": "Matrix Apps", + "Revoke widget access": "Ziehe Widget-Zugriff zurück", + "Sets the room topic": "Setzt das Raum-Thema", + "Show Apps": "Zeige Apps", + "To get started, please pick a username!": "Um zu starten, wähle bitte einen Nutzernamen!", + "Unable to create widget.": "Widget kann nicht erstellt werden.", + "Unbans user with given id": "Entbanne Nutzer mit angegebener ID", + "You are not in this room.": "Du bist nicht in diesem Raum.", + "You do not have permission to do that in this room.": "Du hast keine Berechtigung, dies in diesem Raum zu tun.", + "Verifies a user, device, and pubkey tuple": "Verifiziert ein Tupel aus Nutzer, Gerät und öffentlichem Schlüssel", + "Autocomplete Delay (ms):": "Verzögerung zur Autovervollständigung (ms):", + "This Home server does not support groups": "Dieser Heimserver unterstützt keine Gruppen", + "Loading device info...": "Lädt Geräte-Info...", + "Groups": "Gruppen", + "Create a new group": "Erstelle eine neue Gruppe", + "Create Group": "Erstelle Gruppe", + "Group Name": "Gruppenname", + "Example": "Beispiel", + "Create": "Erstelle", + "Group ID": "Gruppen-ID", + "+example:%(domain)s": "+beispiel:%(domain)s", + "Group IDs must be of the form +localpart:%(domain)s": "Gruppen-IDs müssen von der Form '+lokalteil:%(domain)s' sein", + "It is currently only possible to create groups on your own home server: use a group ID ending with %(domain)s": "Es ist aktuell nur möglich, Gruppen auf deinem eigenen Heimserver zu erstellen. Nutze eine Gruppen-ID, die mit %(domain)s endet", + "Room creation failed": "Raum-Erstellung fehlgeschlagen", + "You are a member of these groups:": "Du bist Mitglied in folgenden Gruppen:", + "Create a group to represent your community! Define a set of rooms and your own custom homepage to mark out your space in the Matrix universe.": "Erstelle eine Gruppe um deine Community darzustellen! Definiere eine Menge von Räumen und deine eigene angepasste Startseite um deinen Bereich im Matrix-Universum zu markieren.", + "Join an existing group": "Trete eine existierenden Gruppe bei", + "To join an exisitng group you'll have to know its group identifier; this will look something like +example:matrix.org.": "Um einer existierenden Gruppe beizutreten, musst du ihre Gruppen-Kennung wissen. Diese sieht z.B. aus wie '+example:matrix.org'.", + "Featured Rooms:": "Hervorgehobene Räume:", + "Error whilst fetching joined groups": "Fehler beim Laden beigetretener Gruppen", + "Featured Users:": "Hervorgehobene Nutzer:", + "Edit Group": "Gruppe bearbeiten", + "Automatically replace plain text Emoji": "Automatisch Klarzeichen-Emoji ersetzen", + "Failed to upload image": "Bild-Hochladen fehlgeschlagen", + "Failed to update group": "Aktualisieren der Gruppe fehlgeschlagen", + "Hide avatars in user and room mentions": "Verberge Profilbilder in Benutzer- und Raum-Erwähnungen", + "AM": "am", + "PM": "pm" } From d7f5295949de0679c5157207d18d140e7bc7dc3a Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Fri, 18 Aug 2017 18:40:00 +0100 Subject: [PATCH 05/42] untested WIP for supporting multiple widgets properly --- src/ScalarAuthClient.js | 5 ++++- src/components/views/elements/AppTile.js | 2 +- src/components/views/rooms/AuxPanel.js | 5 ++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/ScalarAuthClient.js b/src/ScalarAuthClient.js index b1d17b93a9..dddd01b9f9 100644 --- a/src/ScalarAuthClient.js +++ b/src/ScalarAuthClient.js @@ -76,10 +76,13 @@ class ScalarAuthClient { return defer.promise; } - getScalarInterfaceUrlForRoom(roomId, screen) { + getScalarInterfaceUrlForRoom(roomId, screen, id) { var url = SdkConfig.get().integrations_ui_url; url += "?scalar_token=" + encodeURIComponent(this.scalarToken); url += "&room_id=" + encodeURIComponent(roomId); + if (id) { + url += '&integ_id=' + id; + } if (screen) { url += '&screen=' + encodeURIComponent(screen); } diff --git a/src/components/views/elements/AppTile.js b/src/components/views/elements/AppTile.js index a78b802ad7..72cba73075 100644 --- a/src/components/views/elements/AppTile.js +++ b/src/components/views/elements/AppTile.js @@ -122,7 +122,7 @@ export default React.createClass({ _onEditClick: function(e) { console.log("Edit widget ID ", this.props.id); const IntegrationsManager = sdk.getComponent("views.settings.IntegrationsManager"); - const src = this._scalarClient.getScalarInterfaceUrlForRoom(this.props.room.roomId, 'type_' + this.props.type); + const src = this._scalarClient.getScalarInterfaceUrlForRoom(this.props.room.roomId, 'type_' + this.props.type, this.props.id); Modal.createTrackedDialog('Integrations Manager', '', IntegrationsManager, { src: src, }, "mx_IntegrationsManager"); diff --git a/src/components/views/rooms/AuxPanel.js b/src/components/views/rooms/AuxPanel.js index 8fa805d3cf..69fe209580 100644 --- a/src/components/views/rooms/AuxPanel.js +++ b/src/components/views/rooms/AuxPanel.js @@ -129,7 +129,10 @@ module.exports = React.createClass({ ); let appsDrawer = null; + let appCount = 0; if(UserSettingsStore.isFeatureEnabled('matrix_apps') && this.props.showApps) { + const appsStateEvents = this.props.room.currentState.getStateEvents('im.vector.modular.widgets'); + if (appsStateEvents) appCount = appsStateEvents.length; appsDrawer = +
{ appsDrawer } { fileDropTarget } { callView } From 345903514a1106a593074db91e5c704e12a3c2d1 Mon Sep 17 00:00:00 2001 From: kaiyou Date: Sat, 19 Aug 2017 11:02:32 +0000 Subject: [PATCH 06/42] Translated using Weblate (French) Currently translated at 100.0% (916 of 916 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 | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 9b5ff58d9e..77ab2fa9ed 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -120,7 +120,7 @@ "zh-tw": "Chinese (Taiwan)", "zu": "Zulu", "anyone": "n'importe qui", - "Direct Chat": "Discussion Directe", + "Direct Chat": "Discussion directe", "Direct chats": "Conversations directes", "Disable inline URL previews by default": "Désactiver l’aperçu des URLs", "Disinvite": "Désinviter", @@ -150,7 +150,7 @@ "Failed to change power level": "Échec du changement de niveau d'autorité", "Failed to delete device": "Échec de la suppression de l'appareil", "Failed to forget room %(errCode)s": "Échec lors de l'oubli du salon %(errCode)s", - "Please Register": "Veuillez vous enregistrer", + "Please Register": "Veuillez vous inscrire", "Remove": "Supprimer", "was banned": "a été banni(e)", "was invited": "a été invité(e)", @@ -182,7 +182,7 @@ "Algorithm": "Algorithme", "all room members": "tous les membres du salon", "all room members, from the point they are invited": "tous les membres du salon, depuis le moment où ils ont été invités", - "all room members, from the point they joined": "tous les membres du salon, depuis le moment où ils ont joint", + "all room members, from the point they joined": "tous les membres du salon, depuis le moment où ils ont rejoint", "an address": "une adresse", "and": "et", "%(items)s and %(remaining)s others": "%(items)s et %(remaining)s autres", @@ -191,10 +191,8 @@ "%(names)s and %(lastPerson)s are typing": "%(names)s et %(lastPerson)s sont en train d'écrire", "%(names)s and one other are typing": "%(names)s et un autre sont en train d'écrire", "%(names)s and %(count)s others are typing": "%(names)s et %(count)s d'autres sont en train d'écrire", - "and %(count)s others...": { - "other": "et %(count)s autres...", - "one": "et un autre..." - }, + "and %(count)s others....other": "et %(count)s autres...", + "and %(count)s others....one": "et un autre...", "An email has been sent to": "Un e-mail a été envoyé à", "A new password must be entered.": "Un nouveau mot de passe doit être entré.", "Anyone who knows the room's link, apart from guests": "Tout ceux qui connaissent le lien du salon, à part les visiteurs", @@ -856,7 +854,7 @@ "Accept": "Accepter", "Active call (%(roomName)s)": "Appel en cours (%(roomName)s)", "Admin tools": "Outils d'administration", - "Alias (optional)": "Alias (optionnel)", + "Alias (optional)": "Alias (facultatif)", "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.": "Impossible de se connecter au homeserver - veuillez vérifier votre connexion, assurez vous que vous faites confiance au certificat SSL de votre homeserver, et qu'aucune extension de navigateur ne bloque les requêtes.", "Click here to join the discussion!": "Cliquer ici pour joindre la discussion !", "Close": "Fermer", From c6a48cbda6d64861a7346362b93ea12311572700 Mon Sep 17 00:00:00 2001 From: Jean Date: Sat, 19 Aug 2017 11:03:05 +0000 Subject: [PATCH 07/42] Translated using Weblate (French) Currently translated at 100.0% (916 of 916 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 77ab2fa9ed..58ee6e084d 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -859,7 +859,7 @@ "Click here to join the discussion!": "Cliquer ici pour joindre la discussion !", "Close": "Fermer", "Custom": "Personnaliser", - "Decline": "Décliner", + "Decline": "Refuser", "Disable Notifications": "Désactiver les Notifications", "Drop File Here": "Déposer le Fichier Ici", "Enable Notifications": "Activer les Notifications", From b7569a983158b756b60a4a7fd94ed83f0d8b0ca7 Mon Sep 17 00:00:00 2001 From: Richard Lewis Date: Mon, 21 Aug 2017 15:29:11 +0100 Subject: [PATCH 08/42] Revert auxPanel changes (this should already have been fixed in a separate PR). --- src/components/views/rooms/AuxPanel.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/components/views/rooms/AuxPanel.js b/src/components/views/rooms/AuxPanel.js index 69fe209580..a50743a25d 100644 --- a/src/components/views/rooms/AuxPanel.js +++ b/src/components/views/rooms/AuxPanel.js @@ -129,10 +129,7 @@ module.exports = React.createClass({ ); let appsDrawer = null; - let appCount = 0; if(UserSettingsStore.isFeatureEnabled('matrix_apps') && this.props.showApps) { - const appsStateEvents = this.props.room.currentState.getStateEvents('im.vector.modular.widgets'); - if (appsStateEvents) appCount = appsStateEvents.length; appsDrawer = +
{ appsDrawer } { fileDropTarget } { callView } From 5648a7488aca1c12e3164f5ab0ac29525ad1a4f4 Mon Sep 17 00:00:00 2001 From: Szimszon Date: Mon, 21 Aug 2017 19:54:01 +0000 Subject: [PATCH 09/42] Translated using Weblate (Hungarian) Currently translated at 100.0% (963 of 963 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 | 88 ++++++++++++++++++++++++++++++---------- 1 file changed, 67 insertions(+), 21 deletions(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index acad67ada0..29b2060c9b 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -190,10 +190,8 @@ "%(items)s and %(remaining)s others": "%(items)s és még: %(remaining)s", "%(items)s and one other": "%(items)s és még egy", "%(items)s and %(lastItem)s": "%(items)s és %(lastItem)s", - "and %(count)s others...": { - "other": "és még: %(count)s ...", - "one": "és még egy..." - }, + "and %(count)s others....other": "és még: %(count)s ...", + "and %(count)s others....one": "és még egy...", "%(names)s and %(lastPerson)s are typing": "%(names)s és %(lastPerson)s írnak", "%(names)s and one other are typing": "%(names)s és még valaki ír", "%(names)s and %(count)s others are typing": "%(names)s és %(count)s ember ír", @@ -219,8 +217,8 @@ "Bug Report": "Hiba jelentés", "Bulk Options": "Tömeges beállítások", "Call Timeout": "Hívás időtúllépés", - "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.": "Nem lehet kapcsolódni az egyedi szerverhez - ellenőrizd a kapcsolatot, biztosítsd, hogy a egyedi szerver tanúsítványa hiteles legyen, és a böngésző kiterjesztések ne blokkolják a kéréseket.", - "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Nem lehet csatlakozni az egyedi szerverhez HTTP-n keresztül ha HTTPS van a böngésző címsorában. Vagy használj HTTPS-t vagy engedélyezd a nem biztonságos script-et.", + "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.": "Nem lehet kapcsolódni a saját szerverhez - ellenőrizd a kapcsolatot, biztosítsd, hogy a saját szerver tanúsítványa hiteles legyen, és a böngésző kiterjesztések ne blokkolják a kéréseket.", + "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Nem lehet csatlakozni a saját szerverhez HTTP-n keresztül ha HTTPS van a böngésző címsorában. Vagy használj HTTPS-t vagy engedélyezd a nem biztonságos script-et.", "Can't load user settings": "A felhasználói beállítások nem tölthetők be", "Change Password": "Jelszó megváltoztatása", "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s megváltoztatta a nevét erről: %(oldDisplayName)s erre: %(displayName)s.", @@ -311,7 +309,7 @@ "Enter Code": "Kód megadása", "Enter passphrase": "Jelmondat megadása", "Error decrypting attachment": "Csatolmány visszafejtése sikertelen", - "Error: Problem communicating with the given homeserver.": "Hiba: Probléma van az egyedi szerverrel való kommunikációval.", + "Error: Problem communicating with the given homeserver.": "Hiba: Probléma van az saját szerverrel való kommunikációval.", "Event information": "Esemény információ", "Existing Call": "Hívás folyamatban", "Export": "Mentés", @@ -351,7 +349,7 @@ "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.": "A biztonság érdekében a kilépéskor a ponttól pontig való (E2E) titkosításhoz szükséges kulcsok törlésre kerülnek a böngészőből. Ha a régi üzeneteket továbbra is el szeretnéd olvasni, kérlek mentsed ki a szobákhoz tartozó kulcsot.", "Found a bug?": "Hibát találtál?", "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s : %(fromPowerLevel)s -> %(toPowerLevel)s", - "Guest access is disabled on this Home Server.": "Vendég belépés tiltva van az Otthoni szerveren.", + "Guest access is disabled on this Home Server.": "Vendég belépés tiltva van a Saját szerveren.", "Guests can't set avatars. Please register.": "A vendégek nem tudnak avatar képet beállítani. Kérlek regisztrálj.", "Guest users can't create new rooms. Please register to create room and start a chat.": "Vendégek nem készíthetnek szobákat. Kérlek regisztrálj, hogy szobát tudják nyitni és el tudj kezdeni csevegni.", "Guest users can't upload files. Please register to upload.": "Vendégek nem tölthetnek fel fájlokat. A feltöltéshez kérlek regisztrálj.", @@ -363,7 +361,7 @@ "Hide Text Formatting Toolbar": "Szövegformázási menü elrejtése", "Historical": "Archív", "Home": "Kezdőlap", - "Homeserver is": "Egyedi szerver:", + "Homeserver is": "Saját szerver:", "Identity Server is": "Azonosítási szerver:", "I have verified my email address": "Ellenőriztem az e-mail címemet", "Import": "Betöltés", @@ -531,7 +529,7 @@ "since they were invited": "onnantól, hogy meg lett hívva", "Some of your messages have not been sent.": "Néhány üzeneted nem lett elküldve.", "Someone": "Valaki", - "Sorry, this homeserver is using a login which is not recognised ": "Bocs, ez az egyedi szerver olyan beléptetést használ ami nem ismert ", + "Sorry, this homeserver is using a login which is not recognised ": "Bocs, ez a saját szerver olyan beléptetést használ ami nem ismert ", "Start a chat": "Csevegés indítása", "Start authentication": "Azonosítás indítása", "Start Chat": "Csevegés indítása", @@ -551,10 +549,10 @@ "The email address linked to your account must be entered.": "A fiókodhoz kötött e-mail címet add meg.", "Press to start a chat with someone": "Nyomd meg a gombot ha szeretnél csevegni valakivel", "Privacy warning": "Magánéleti figyelmeztetés", - "The file '%(fileName)s' exceeds this home server's size limit for uploads": "'%(fileName)s' fájl túllépte az Otthoni szerverben beállított feltöltési méret határt", + "The file '%(fileName)s' exceeds this home server's size limit for uploads": "'%(fileName)s' fájl túllépte a Saját szerverben beállított feltöltési méret határt", "The file '%(fileName)s' failed to upload": "'%(fileName)s' fájl feltöltése sikertelen", "The remote side failed to pick up": "A hívott fél nem vette fel", - "This Home Server does not support login using email address.": "Az Otthoni szerver nem támogatja a belépést e-mail címmel.", + "This Home Server does not support login using email address.": "A Saját szerver nem támogatja a belépést e-mail címmel.", "This invitation was sent to an email address which is not associated with this account:": "A meghívó olyan e-mail címre lett küldve ami nincs összekötve ezzel a fiókkal:", "There was a problem logging in.": "Hiba történt a bejelentkezésnél.", "This room has no local addresses": "Ennek a szobának nincs helyi címe", @@ -676,7 +674,7 @@ "You need to be able to invite users to do that.": "Hogy ezt csinálhasd meg kell tudnod hívni felhasználókat.", "You need to be logged in.": "Be kell jelentkezz.", "You need to enter a user name.": "Be kell írnod a felhasználói nevet.", - "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Ez az e-mail cím, úgy néz ki, nincs összekötve a Matrix azonosítóval ezen az egyedi szerveren.", + "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Ez az e-mail cím, úgy néz ki, nincs összekötve a Matrix azonosítóval ezen a saját szerveren.", "Your password has been reset": "A jelszavad visszaállítottuk", "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "A jelszavadat sikeresen megváltoztattuk. Nem kapsz \"push\" értesítéseket amíg a többi eszközön vissza nem jelentkezel", "to demote": "a hozzáférési szint csökkentéséhez", @@ -685,7 +683,7 @@ "You seem to be uploading files, are you sure you want to quit?": "Úgy tűnik fájlokat töltesz fel, biztosan kilépsz?", "You should not yet trust it to secure data": "Még ne bízz meg a titkosításban", "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Nem leszel képes visszavonni ezt a változtatást mivel a felhasználót ugyanarra a szintre emeled amin te vagy.", - "Your home server does not support device management.": "Az Otthoni szervered nem támogatja az eszközök kezelését.", + "Your home server does not support device management.": "A Saját szervered nem támogatja az eszközök kezelését.", "Sun": "Vas", "Mon": "Hé", "Tue": "K", @@ -744,7 +742,7 @@ "quote": "idézet", "bullet": "lista", "numbullet": "számozott lista", - "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)s %(repeats)s alkalommal léptek be", + "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)s%(repeats)s alkalommal léptek be", "%(oneUser)sjoined %(repeats)s times": "%(oneUser)s %(repeats)s alkalommal lépett be", "%(severalUsers)sjoined": "%(severalUsers)s csatlakozott", "%(oneUser)sjoined": "%(oneUser)s csatlakozott", @@ -837,7 +835,7 @@ "Verify...": "Ellenőrzés...", "ex. @bob:example.com": "pl.: @bob:example.com", "Add User": "Felhasználó hozzáadás", - "This Home Server would like to make sure you are not a robot": "Az Otthoni szerver meg szeretne győződni arról, hogy nem vagy robot", + "This Home Server would like to make sure you are not a robot": "A Saját szerver meg szeretne győződni arról, hogy nem vagy robot", "Sign in with CAS": "Belépés CAS-sal", "Please check your email to continue registration.": "Ellenőrizd az e-mailedet a regisztráció folytatásához.", "Token incorrect": "Helytelen token", @@ -846,7 +844,7 @@ "You are registering with %(SelectedTeamName)s": "%(SelectedTeamName)s névvel regisztrálsz", "Default server": "Alapértelmezett szerver", "Custom server": "Egyedi szerver", - "Home server URL": "Otthoni szerver URL", + "Home server URL": "Saját szerver URL", "Identity server URL": "Azonosítási szerver URL", "What does this mean?": "Ez mit jelent?", "Error decrypting audio": "Hiba a hang visszafejtésénél", @@ -899,13 +897,13 @@ "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "A megjelenítési neved az ahogy a többiek látják amikor a szobában csevegsz. Mit szeretnél mi legyen?", "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Jelenleg fekete listára teszel minden ismeretlen eszközt. Ha üzenetet szeretnél küldeni ezekre az eszközökre először ellenőrizned kell őket.", "We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Azt javasoljuk, hogy menj végig ellenőrző folyamaton minden eszköznél, hogy meg megerősítsd minden eszköz a jogos tulajdonosához tartozik, de újraküldheted az üzenetet ellenőrzés nélkül, ha úgy szeretnéd.", - "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Használhatod az Otthoni szerver opciót hogy más Matrix szerverre csatlakozz Otthoni szerver URL megadásával.", - "This allows you to use this app with an existing Matrix account on a different home server.": "Ezzel használhatod ezt az alkalmazást a meglévő Matrix fiókoddal és másik Otthoni szerveren.", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Használhatod az Otthoni szerver opciót, hogy más Matrix szerverre csatlakozz Saját szerver URL megadásával.", + "This allows you to use this app with an existing Matrix account on a different home server.": "Ezzel használhatod ezt az alkalmazást a meglévő Matrix fiókoddal és másik Saját szerveren.", "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Beállíthatsz egy egyedi azonosító szervert is de ez tulajdonképpen meggátolja az együttműködést e-mail címmel azonosított felhasználókkal.", "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Ha nem állítasz be e-mail címet nem fogod tudni a jelszavadat alaphelyzetbe állítani. Biztos vagy benne?", "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Azonosítás céljából egy harmadik félhez leszel irányítva (%(integrationsUrl)s). Folytatod?", "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "URL előnézet alapból %(globalDisableUrlPreview)s van a szoba résztvevői számára.", - "This will be your account name on the homeserver, or you can pick a different server.": "Ez lesz a felhasználói neved az egyedi szerveren, vagy választhatsz egy másik szervert.", + "This will be your account name on the homeserver, or you can pick a different server.": "Ez lesz a felhasználói neved a saját szerveren, vagy választhatsz egy másik szervert.", "Disable Peer-to-Peer for 1:1 calls": "Közvetlen kapcsolat tiltása az 1:1 hívásoknál", "To return to your account in future you need to set a password": "Ahhoz hogy később visszatérj a fiókodba be kell állítanod egy jelszót", "Skip": "Kihagy", @@ -916,5 +914,53 @@ "Your unverified device '%(displayName)s' is requesting encryption keys.": "Az ellenőrizetlen eszközöd '%(displayName)s' titkosítási kulcsokat kér.", "Encryption key request": "Titkosítási kulcs kérés", "Updates": "Frissítések", - "Check for update": "Frissítések keresése" + "Check for update": "Frissítések keresése", + "Add a widget": "Kisalkalmazás hozzáadása", + "Allow": "Engedélyez", + "Changes colour scheme of current room": "Az aktuális szoba színének megváltoztatása", + "Delete widget": "Kisalkalmazás törlése", + "Define the power level of a user": "A felhasználó szintjének meghatározása", + "Edit": "Szerkeszt", + "Enable automatic language detection for syntax highlighting": "Nyelv automatikus felismerése szintaxis kiemeléshez", + "Hide Apps": "Alkalmazások elrejtése", + "Hide join/leave messages (invites/kicks/bans unaffected)": "Belép/kilép üzenetek elrejtése (meghívók, kirúgások, kitiltások nem érintettek)", + "Hide avatar and display name changes": "Profilkép és megjelenítési név változás üzenetek elrejtése", + "Matrix Apps": "Mátrix alkalmazások", + "AM": "de", + "PM": "du", + "Revoke widget access": "Kisalkalmazás hozzáférésének visszavonása", + "Sets the room topic": "Szoba téma beállítás", + "Show Apps": "Alkalmazások megmutatása", + "To get started, please pick a username!": "Az induláshoz válassz egy felhasználói nevet!", + "Unable to create widget.": "Nem lehet kisalkalmazást létrehozni.", + "Unbans user with given id": "Visszaengedi a megadott azonosítójú felhasználót", + "You are not in this room.": "Nem vagy ebben a szobában.", + "You do not have permission to do that in this room.": "Nincs jogod ezt tenni ebben a szobában.", + "Verifies a user, device, and pubkey tuple": "A felhasználó, eszköz és publikus kulcs hármas ellenőrzése", + "Autocomplete Delay (ms):": "Várakozás automatikus kiegészítés előtt (ms):", + "This Home server does not support groups": "Ez a saját szerver nem támogatja a csoportokat", + "Loading device info...": "Eszköz információk betöltése...", + "Groups": "Csoportok", + "Create a new group": "Új csoport létrehozása", + "Create Group": "Csoport létrehozása", + "Group Name": "Csoport neve", + "Example": "Példa", + "Create": "Létrehoz", + "Group ID": "Csoport azonosító", + "+example:%(domain)s": "+példa:%(domain)s", + "Group IDs must be of the form +localpart:%(domain)s": "A csoport azonosítónak az alábbi formában kell lennie: +helyirész:%(domain)s", + "It is currently only possible to create groups on your own home server: use a group ID ending with %(domain)s": "Egyenlőre csoportokat csak a saját szerveren lehet létrehozni: használd a csoport azonosítót a %(domain)s végződéssel", + "Room creation failed": "Szoba létrehozás sikertelen", + "You are a member of these groups:": "Ezeknek a csoportoknak vagy a tagja:", + "Create a group to represent your community! Define a set of rooms and your own custom homepage to mark out your space in the Matrix universe.": "Hozz létre csoportot a közösség meghatározásához! Jelölj ki szobákat és saját kezdőoldalt amivel meghatározhatod a territóriumodat a Matrix univerzumában.", + "Join an existing group": "Csatlakozz meglévő csoporthoz", + "To join an exisitng group you'll have to know its group identifier; this will look something like +example:matrix.org.": "Ahhoz, hogy meglévő csoporthoz csatlakozhass tudnod kell a csoport azonosítóját ami valahogy így nézhet ki: +példa:matrix.org.", + "Featured Rooms:": "Kiemelt szobák:", + "Error whilst fetching joined groups": "Hiba a csatlakozott csoportok betöltésénél", + "Featured Users:": "Kiemelt felhasználók:", + "Edit Group": "Csoport szerkesztése", + "Automatically replace plain text Emoji": "Egyszerű szöveg automatikus cseréje Emoji-ra", + "Failed to upload image": "Kép feltöltése sikertelen", + "Failed to update group": "Csoport frissítése sikertelen", + "Hide avatars in user and room mentions": "Profilképek elrejtése felhasználó és szoba említésekben" } From 74ab7c9bb3713894e4f57213dcd903574877ea12 Mon Sep 17 00:00:00 2001 From: Richard Lewis Date: Tue, 22 Aug 2017 09:59:27 +0100 Subject: [PATCH 10/42] Fix encoding --- src/ScalarAuthClient.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ScalarAuthClient.js b/src/ScalarAuthClient.js index dddd01b9f9..0b753cf3ab 100644 --- a/src/ScalarAuthClient.js +++ b/src/ScalarAuthClient.js @@ -81,7 +81,7 @@ class ScalarAuthClient { url += "?scalar_token=" + encodeURIComponent(this.scalarToken); url += "&room_id=" + encodeURIComponent(roomId); if (id) { - url += '&integ_id=' + id; + url += '&integ_id=' + encodeURIComponent(id); } if (screen) { url += '&screen=' + encodeURIComponent(screen); From a69cc9169fcd45d4d97970991c4d9db95f7b2f2d Mon Sep 17 00:00:00 2001 From: Richard Lewis Date: Tue, 22 Aug 2017 10:04:57 +0100 Subject: [PATCH 11/42] lint fix. --- src/components/views/elements/AppTile.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/views/elements/AppTile.js b/src/components/views/elements/AppTile.js index 72cba73075..4883bcf6b1 100644 --- a/src/components/views/elements/AppTile.js +++ b/src/components/views/elements/AppTile.js @@ -122,7 +122,8 @@ export default React.createClass({ _onEditClick: function(e) { console.log("Edit widget ID ", this.props.id); const IntegrationsManager = sdk.getComponent("views.settings.IntegrationsManager"); - const src = this._scalarClient.getScalarInterfaceUrlForRoom(this.props.room.roomId, 'type_' + this.props.type, this.props.id); + const src = this._scalarClient.getScalarInterfaceUrlForRoom( + this.props.room.roomId, 'type_' + this.props.type, this.props.id); Modal.createTrackedDialog('Integrations Manager', '', IntegrationsManager, { src: src, }, "mx_IntegrationsManager"); From 630c4057285433377df49494172f24502ec277e7 Mon Sep 17 00:00:00 2001 From: Jan Kudrik Date: Thu, 17 Aug 2017 18:59:37 +0000 Subject: [PATCH 12/42] Translated using Weblate (Czech) Currently translated at 5.5% (53 of 963 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 | 56 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json index 9e26dfeeb6..25aa1eb1a9 100644 --- a/src/i18n/strings/cs.json +++ b/src/i18n/strings/cs.json @@ -1 +1,55 @@ -{} \ No newline at end of file +{ + "Close": "Zavřít", + "Favourites": "Oblíbené", + "Filter room members": "Filtrovat členy místnosti", + "Historical": "Historické", + "Home": "Úvod", + "%(displayName)s is typing": "%(displayName)s právě píše", + "Jump to first unread message.": "Přeskočit na první nepřečtenou zprávu.", + "Logout": "Odhlásit se", + "Low priority": "Nízká priorita", + "Notifications": "Upozornění", + "People": "Lidé", + "Rooms": "Místnosti", + "Scroll to unread messages": "Přejít k nepřečteným zprávám", + "Search": "Hledání", + "Send a message (unencrypted)": "Poslat zprávu (nezašifrovaně)", + "Settings": "Nastavení", + "Start Chat": "Začít chat", + "This room": "Tato místnost", + "Unencrypted room": "Nezašifrovaná místnost", + "Failed to upload file": "Nahrát soubor", + "Video call": "Videohovor", + "Voice call": "Telefonát", + "Sun": "Ne", + "Mon": "Po", + "Tue": "Út", + "Wed": "St", + "Thu": "Čt", + "Fri": "Pá", + "Sat": "So", + "Jan": "Led", + "Feb": "Úno", + "Mar": "Bře", + "Apr": "Dub", + "May": "Kvě", + "Jun": "Čvn", + "Jul": "Čvc", + "Aug": "Srp", + "Sep": "Zář", + "Oct": "Říj", + "Nov": "Lis", + "Dec": "Pro", + "There are no visible files in this room": "V této místnosti nejsou žádné viditelné soubory", + "Create new room": "Založit novou místnost", + "Room directory": "Adresář místností", + "Start chat": "Začít chat", + "Options": "Možnosti", + "Register": "Zaregistrovat", + "Cancel": "Storno", + "Direct Chat": "Přímý chat", + "Error": "Chyba", + "Failed to join the room": "Nepodařilo se vstoupit do místnosti", + "Favourite": "V oblíbených", + "Mute": "Ztišit" +} From 3c34c141c29ad5bd68c51805dc7b983a0abb3082 Mon Sep 17 00:00:00 2001 From: kaiyou Date: Sat, 19 Aug 2017 11:18:37 +0000 Subject: [PATCH 13/42] Translated using Weblate (French) Currently translated at 99.5% (959 of 963 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 | 147 +++++++++++++++++++++++++-------------- 1 file changed, 96 insertions(+), 51 deletions(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 58ee6e084d..1162f77f42 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -271,7 +271,7 @@ "Failed to send request.": "Erreur lors de l'envoi de la requête.", "Failed to set display name": "Échec lors de l'enregistrement du nom d'affichage", "Failed to set up conference call": "Échec lors de l’établissement de l’appel", - "Failed to toggle moderator status": "Échec lors de l’établissement du statut de modérateur", + "Failed to toggle moderator status": "Échec lors de l’activation du statut de modérateur", "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s a accepté l’invitation de %(displayName)s.", "Access Token:": "Jeton d’accès :", "Always show message timestamps": "Toujours afficher l'heure des messages", @@ -286,17 +286,17 @@ "favourite": "favoris", "Favourites": "Favoris", "Fill screen": "Plein écran", - "Filter room members": "Filtrer les membres par nom", + "Filter room members": "Filtrer les membres du salon", "Forget room": "Oublier le salon", "Forgot your password?": "Mot de passe perdu ?", "For security, this session has been signed out. Please sign in again.": "Par sécurité, la session a expiré. Merci de vous authentifier à nouveau.", "Found a bug?": "Trouvé un problème ?", "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s à %(toPowerLevel)s", - "Guest users can't create new rooms. Please register to create room and start a chat.": "Les visiteurs ne peuvent créer de nouveaux salons. Merci de vous enregistrer pour commencer une discussion.", - "Guest users can't upload files. Please register to upload.": "Les visiteurs ne peuvent pas télécharger de fichier. Veuillez vous enregistrer pour télécharger.", + "Guest users can't create new rooms. Please register to create room and start a chat.": "Les visiteurs ne peuvent créer de nouveaux salons. Merci de vous inscrire pour commencer une discussion.", + "Guest users can't upload files. Please register to upload.": "Les visiteurs ne peuvent pas télécharger de fichier. Veuillez vous inscrire pour télécharger.", "had": "avait", "Hangup": "Raccrocher", - "Hide read receipts": "Cacher les accusés de réception", + "Hide read receipts": "Cacher les accusés de lecture", "Hide Text Formatting Toolbar": "Cacher la barre de formatage de texte", "Historical": "Historique", "Homeserver is": "Le homeserver est", @@ -319,10 +319,10 @@ "%(displayName)s is typing": "%(displayName)s est en train d'écrire", "Sign in with": "Je veux m'identifier avec", "Join Room": "Rejoindre le salon", - "joined and left": "a joint et quitté", - "joined": "a joint", - "%(targetName)s joined the room.": "%(targetName)s a joint le salon.", - "Joins room with given alias": "Joint le salon avec l'alias défini", + "joined and left": "a rejoint et quitté", + "joined": "a rejoint", + "%(targetName)s joined the room.": "%(targetName)s a rejoint le salon.", + "Joins room with given alias": "Rejoint le salon avec l'alias défini", "%(senderName)s kicked %(targetName)s.": "%(senderName)s a expulsé %(targetName)s.", "Kick": "Expulser", "Kicks user with given id": "Expulse l'utilisateur avec l'ID donné", @@ -355,14 +355,14 @@ "Never send encrypted messages to unverified devices in this room": "Ne jamais envoyer de message chiffré aux appareils non-vérifiés dans ce salon", "Never send encrypted messages to unverified devices in this room from this device": "Ne jamais envoyer de message chiffré aux appareils non-vérifiés dans ce salon depuis cet appareil", "New address (e.g. #foo:%(localDomain)s)": "Nouvelle adresse (par ex. #foo:%(localDomain)s)", - "New Composer & Autocomplete": "Nouveau compositeur & Autocomplétion", + "New Composer & Autocomplete": "Nouveau compositeur et autocomplétion", "New password": "Nouveau mot de passe", "New passwords don't match": "Les mots de passe ne correspondent pas", "New passwords must match each other.": "Les nouveaux mots de passe doivent être identiques.", "none": "aucun", "not set": "non défini", "not specified": "non spécifié", - "(not supported by this browser)": "(non supporté par cet explorateur)", + "(not supported by this browser)": "(non supporté par ce navigateur)", "": "", "NOT verified": "NON vérifié", "No devices with registered encryption keys": "Pas d’appareil avec des clés de chiffrement enregistrées", @@ -381,13 +381,13 @@ "Operation failed": "L'opération a échoué", "Bulk Options": "Options de masse", "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.": "Changer le mot de passe réinitialise actuellement les clés de chiffrement sur tous les appareils, rendant l’historique chiffré illisible, à moins d’exporter les clés du salon en avance de phase puis de les ré-importer. Ceci sera amélioré prochainement.", - "Default": "Défaut", + "Default": "Par défaut", "Email address": "Adresse e-mail", "Error decrypting attachment": "Erreur lors du déchiffrement de la pièce jointe", "Failed to set avatar.": "Erreur lors de la définition de la photo de profil.", "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.": "Par sécurité une déconnexion supprimera toutes les clés de chiffrement de ce navigateur. Si vous voulez être capable de déchiffrer l’historique de votre conversation lors de sessions futures de Riot, merci d’exporter les clés pour le salon.", - "Guests can't set avatars. Please register.": "Les visiteurs ne peuvent définir de photo de profil. Merci de vous enregistrer.", - "Guests can't use labs features. Please register.": "Les visiteurs ne peuvent utiliser les fonctionalités du laboratoire. Merci de vous enregistrer.", + "Guests can't set avatars. Please register.": "Les visiteurs ne peuvent définir de photo de profil. Merci de vous inscrire.", + "Guests can't use labs features. Please register.": "Les visiteurs ne peuvent utiliser les fonctionalités du laboratoire. Merci de vous inscrire.", "Guests cannot join this room even if explicitly invited.": "Les visiteurs ne peuvent rejoindre ce salon, même si explicitement invités.", "Invalid file%(extra)s": "Fichier %(extra)s invalide", "Mute": "Couper le son", @@ -399,10 +399,10 @@ "Power level must be positive integer.": "Le niveau d'autorité doit être un entier positif.", "Press": "Cliquer", "Privacy warning": "Alerte de confidentialité", - "Privileged Users": "Utilisateur Privilégié", + "Privileged Users": "Utilisateur privilégié", "Profile": "Profil", "Reason": "Raison", - "Revoke Moderator": "Révoquer le Modérateur", + "Revoke Moderator": "Révoquer le modérateur", "Refer a friend to Riot:": "Recommander Riot à un ami :", "rejected": "rejeté", "%(targetName)s rejected the invitation.": "%(targetName)s a rejeté l’invitation.", @@ -412,17 +412,17 @@ "%(senderName)s removed their profile picture.": "%(senderName)s a supprimé sa photo de profil.", "Remove %(threePid)s?": "Supprimer %(threePid)s ?", "%(senderName)s requested a VoIP conference.": "%(senderName)s a demandé une conférence audio.", - "Report it": "Le rapporter", + "Report it": "Le signaler", "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.": "Réinitialiser le mot de passe va réinitialiser les clés de chiffrement sur tous les appareils, rendant l’historique chiffré illisible, à moins que vous ayez exporté les clés du salon en avance de phase puis que vous les ré-importiez. Cela sera amélioré prochainement.", - "restore": "restorer", + "restore": "restaurer", "Return to app": "Retourner à l’application", "Return to login screen": "Retourner à l’écran d’identification", - "Riot does not have permission to send you notifications - please check your browser settings": "Riot n’a pas la permission de vous envoyer des notifications - Merci de vérifier les paramètres de votre explorateur", - "Riot was not given permission to send notifications - please try again": "Riot n’a pas reçu la permission de vous envoyer des notifications - Merci d’essayer à nouveau", + "Riot does not have permission to send you notifications - please check your browser settings": "Riot n’a pas la permission de vous envoyer des notifications - merci de vérifier les paramètres de votre navigateur", + "Riot was not given permission to send notifications - please try again": "Riot n’a pas reçu la permission de vous envoyer des notifications - merci d’essayer à nouveau", "riot-web version:": "Version de riot-web :", "Room %(roomId)s not visible": "Le salon %(roomId)s n'est pas visible", "Room Colour": "Couleur du salon", - "Room name (optional)": "Nom du salon (optionnel)", + "Room name (optional)": "Nom du salon (facultatif)", "Rooms": "Salons", "Scroll to bottom of page": "Aller en bas de la page", "Scroll to unread messages": "Aller aux messages non-lus", @@ -431,7 +431,7 @@ "Searches DuckDuckGo for results": "Recherche des résultats dans DuckDuckGo", "Send a message (unencrypted)": "Envoyer un message (non chiffré)", "Send an encrypted message": "Envoyer un message chiffré", - "Sender device information": "Information de l'appareil de l'expéditeur", + "Sender device information": "Informations de l'appareil de l'expéditeur", "Send Invites": "Envoyer les invitations", "Send Reset Email": "Envoyer l'e-mail de réinitialisation", "sent an image": "a envoyé une image", @@ -441,7 +441,7 @@ "Server error": "Erreur du serveur", "Server may be unavailable or overloaded": "Le serveur semble être inaccessible ou surchargé", "Server may be unavailable, overloaded, or search timed out :(": "Le serveur semble être inaccessible, surchargé ou la recherche a expiré :(", - "Server may be unavailable, overloaded, or the file too big": "Le serveur semble être inaccessible, surchargé ou le fichier trop important", + "Server may be unavailable, overloaded, or the file too big": "Le serveur semble être inaccessible, surchargé ou le fichier est trop volumineux", "Server may be unavailable, overloaded, or you hit a bug.": "Le serveur semble être indisponible, surchargé, ou vous avez rencontré un problème.", "Server unavailable, overloaded, or something else went wrong.": "Le serveur semble être inaccessible, surchargé ou quelque chose s'est mal passé.", "Session ID": "Identifiant de session", @@ -458,15 +458,15 @@ "Some of your messages have not been sent.": "Certains de vos messages n’ont pas été envoyés.", "Someone": "Quelqu'un", "Sorry, this homeserver is using a login which is not recognised ": "Désolé, ce homeserver utilise un identifiant qui n’est pas reconnu ", - "Start a chat": "Démarrer une conversation", - "Start Chat": "Démarrer une conversation", + "Start a chat": "Démarrer une discussion", + "Start Chat": "Démarrer une discussion", "Submit": "Soumettre", "Success": "Succès", "tag as %(tagName)s": "marquer comme %(tagName)s", - "tag direct chat": "marquer comme conversation directe", + "tag direct chat": "marquer comme discussion directe", "The default role for new room members is": "Le rôle par défaut des nouveaux membres est", "The main address for this room is": "L'adresse principale pour ce salon est", - "This action cannot be performed by a guest user. Please register to be able to do this.": "Cette action ne peut être effectuée par un visiteur. Merci de vous enregistrer afin de pouvoir effectuer cette action.", + "This action cannot be performed by a guest user. Please register to be able to do this.": "Cette action ne peut être effectuée par un visiteur. Merci de vous inscrire afin de pouvoir effectuer cette action.", "This email address is already in use": "Cette adresse e-mail est déjà utilisée", "This email address was not found": "Cette adresse e-mail n’a pas été trouvée", "%(actionVerb)s this person?": "%(actionVerb)s cette personne ?", @@ -500,7 +500,7 @@ "to restore": "pour restaurer", "To send events of type": "Pour envoyer des évènements du type", "To send messages": "Pour envoyer des messages", - "to start a chat with someone": "pour démarrer une conversation avec quelqu’un", + "to start a chat with someone": "pour démarrer une discussion avec quelqu’un", "to tag as %(tagName)s": "pour marquer comme %(tagName)s", "to tag direct chat": "pour marquer comme conversation directe", "To use it, just wait for autocomplete results to load and tab through them.": "Pour l’utiliser, attendez simplement que les résultats de l’auto-complétion s’affichent et défilez avec la touche Tab.", @@ -563,7 +563,7 @@ "You have no visible notifications": "Vous n'avez pas de notifications visibles", "you must be a": "vous devez être un", "You need to be able to invite users to do that.": "Vous devez être capable d’inviter des utilisateurs pour faire ça.", - "You need to be logged in.": "Vous devez être connecté.", + "You need to be logged in.": "Vous devez être identifié.", "You need to enter a user name.": "Vous devez entrer un nom d’utilisateur.", "You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.": "Vous devez vous connecter à nouveau pour générer les clés de chiffrement pour cet appareil, et soumettre la clé publique à votre homeserver. Cette action ne se reproduira pas ; veuillez nous excuser pour la gêne occasionnée.", "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Votre adresse e-mail ne semble pas associée à un identifiant Matrix sur ce homeserver.", @@ -573,7 +573,7 @@ "You seem to be uploading files, are you sure you want to quit?": "Vous semblez être en train de télécharger des fichiers, êtes-vous sûr(e) de vouloir quitter ?", "You should not yet trust it to secure data": "Vous ne pouvez pas encore lui faire confiance pour sécuriser vos données", "changing room on a RoomView is not supported": "changer de salon sur un RoomView n'est pas supporté", - "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Vous ne pourrez pas défaire ce changement car vous promouvez l’utilisateur aux mêmes pouvoirs que vous.", + "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Vous ne pourrez pas annuler ce changement car vous promouvez l’utilisateur au même niveau d'autorité que le vôtre.", "Sun": "Dim", "Mon": "Lun", "Tue": "Mar", @@ -646,11 +646,11 @@ "%(oneUser)sleft and rejoined": "%(oneUser)sa quitté et à nouveau joint le salon", "%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)sont rejeté leurs invitations %(repeats)s fois", "%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)sa rejeté son invitation %(repeats)s fois", - "%(severalUsers)srejected their invitations": "%(severalUsers)sont rejeté leurs invitations", + "%(severalUsers)srejected their invitations": "%(severalUsers)sont rejeté leur invitation", "%(oneUser)srejected their invitation": "%(oneUser)sa rejeté son invitation", - "%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)sont vu leurs invitations rétractées %(repeats)s fois", + "%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)sont vu leur invitation rétractée %(repeats)s fois", "%(oneUser)shad their invitation withdrawn %(repeats)s times": "%(oneUser)sa vu son invitation rétractée %(repeats)s fois", - "%(severalUsers)shad their invitations withdrawn": "%(severalUsers)sont vu leurs invitations rétractées", + "%(severalUsers)shad their invitations withdrawn": "%(severalUsers)sont vu leur invitation rétractée", "%(oneUser)shad their invitation withdrawn": "%(oneUser)sa vu son invitation rétractée", "were invited %(repeats)s times": "ont été invité(e)s %(repeats)s fois", "was invited %(repeats)s times": "a été invité(e) %(repeats)s fois", @@ -690,8 +690,8 @@ "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "Le fichier exporté est protégé par une phrase secrète. Vous devez entrer cette phrase secrète ici pour déchiffrer le fichier.", "You must join the room to see its files": "Vous devez joindre le salon pour voir ses fichiers", "Reject all %(invitedRooms)s invites": "Rejeter la totalité des %(invitedRooms)s invitations", - "Start new chat": "Démarrer une nouvelle conversation", - "Guest users can't invite users. Please register.": "Les visiteurs ne peuvent inviter d’autres utilisateurs. Merci de vous enregistrer.", + "Start new chat": "Démarrer une nouvelle discussion", + "Guest users can't invite users. Please register.": "Les visiteurs ne peuvent inviter d’autres utilisateurs. Merci de vous inscrire.", "Failed to invite": "Echec de l'invitation", "Failed to invite user": "Echec lors de l'invitation de l'utilisateur", "Failed to invite the following users to the %(roomName)s room:": "Echec lors de l’invitation des utilisateurs suivants dans le salon %(roomName)s :", @@ -700,7 +700,7 @@ "Unknown error": "Erreur inconnue", "Incorrect password": "Mot de passe incorrect", "This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Ceci rendra votre compte inutilisable de manière permanente. Vous ne pourrez pas enregistrer à nouveau le même identifiant utilisateur.", - "This action is irreversible.": "Cette action est irreversible.", + "This action is irreversible.": "Cette action est irréversible.", "To continue, please enter your password.": "Pour continuer, merci d'entrer votre mot de passe.", "To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "Pour vérifier que vous pouvez faire confiance à cet appareil, merci de contacter son propriétaire par un autre moyen (par ex. en personne ou par téléphone) et demandez lui si la clé qu’il/elle voit dans ses Paramètres Utilisateur pour cet appareil correspond à la clé ci-dessous :", "Device name": "Nom de l'appareil", @@ -715,7 +715,7 @@ "Continue anyway": "Continuer quand même", "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Votre nom d’affichage est la manière dont vous allez apparaître pour les autres quand vous parlerez dans les salons. Que voulez-vous qu’il soit ?", "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Vous êtes en train d’ajouter à la liste noire des appareils non-vérifiés ; pour envoyer des messages à ces appareils vous devez les vérifier.", - "We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Nous vous recommandons d’effectuer le process de vérification pour tous les appareils afin de confirmer qu’ils appartiennent à leurs propriétaires légitimes, mais vous pouvez renvoyer le(s) message(s) sans vérifier si vous préférez.", + "We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Nous vous recommandons d’effectuer le processus de vérification pour tous les appareils afin de confirmer qu’ils appartiennent à leurs propriétaires légitimes, mais vous pouvez renvoyer le(s) message(s) sans vérifier si vous préférez.", "\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contient des appareils que vous n'avez encore jamais vus.", "Unknown devices": "Appareils inconnus", "Unknown Address": "Adresse inconnue", @@ -780,7 +780,7 @@ "Device already verified!": "Appareil déjà vérifié !", "Export": "Exporter", "Failed to register as guest:": "Échec de l’inscription en tant que visiteur :", - "Guest access is disabled on this Home Server.": "L’accès en tant que visiteur est désactivé sur ce serveur.", + "Guest access is disabled on this Home Server.": "L’accès en tant que visiteur est désactivé sur ce homeserver.", "Import": "Importer", "Incorrect username and/or password.": "Nom d’utilisateur et/ou mot de passe incorrect.", "Results from DuckDuckGo": "Résultats de DuckDuckGo", @@ -792,7 +792,7 @@ "Unrecognised room alias:": "Alias de salon non-reconnu :", "Use compact timeline layout": "Utiliser l'affichage compact", "Verified key": "Clé vérifiée", - "WARNING: Device already verified, but keys do NOT MATCH!": "ATTENTION : Appareil déjà vérifié mais les clés NE CORRESPONDENT PAS !", + "WARNING: Device already verified, but keys do NOT MATCH!": "ATTENTION : appareil déjà vérifié mais les clés NE CORRESPONDENT PAS !", "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!": "ATTENTION : ERREUR DE VÉRIFICATION DES CLÉS ! La clé de signature pour %(userId)s et l'appareil %(deviceId)s est “%(fprint)s” et ne correspond pas à la clé “%(fingerprint)s” qui a été fournie. Cela peut signifier que vos communications sont interceptées !", "VoIP": "Voix sur IP", "Missing Media Permissions, click here to request.": "Manque de permissions pour les médias, cliquer ici pour les demander.", @@ -808,7 +808,7 @@ "Are you sure you want to leave the room '%(roomName)s'?": "Êtes-vous sûr de vouloir quitter le salon '%(roomName)s' ?", "Custom level": "Niveau personnalisé", "Device ID:": "Identifiant de l'appareil :", - "device id: ": "Identifiant appareil : ", + "device id: ": "identifiant appareil : ", "Device key:": "Clé de l’appareil :", "Email address (optional)": "Adresse e-mail (facultatif)", "List this room in %(domain)s's room directory?": "Lister ce salon dans le répertoire de %(domain)s ?", @@ -826,7 +826,7 @@ "%(count)s new messages.one": "%(count)s nouveau message", "%(count)s new messages.other": "%(count)s nouveaux messages", "Disable markdown formatting": "Désactiver le formattage markdown", - "Error: Problem communicating with the given homeserver.": "Erreur : Problème de communication avec le homeserveur.", + "Error: Problem communicating with the given homeserver.": "Erreur : problème de communication avec le homeserver.", "Failed to fetch avatar URL": "Échec lors de la récupération de l’URL de l’avatar", "The phone number entered looks invalid": "Le numéro de téléphone entré semble être invalide", "This room is private or inaccessible to guests. You may be able to join if you register.": "Ce salon est privé ou interdits aux visiteurs. Vous pourrez peut-être le joindre si vous vous enregistrez.", @@ -834,7 +834,7 @@ "Uploading %(filename)s and %(count)s others.one": "Téléchargement de %(filename)s et %(count)s autre", "Uploading %(filename)s and %(count)s others.other": "Téléchargement de %(filename)s et %(count)s autres", "You must register to use this functionality": "Vous devez vous inscrire pour utiliser cette fonctionnalité", - "Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Tout renvoyer or tout annuler maintenant. Vous pouvez aussi sélectionner des messages individuels à envoyer ou annuler.", + "Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Tout renvoyer ou tout annuler maintenant. Vous pouvez aussi sélectionner des messages individuels à envoyer ou annuler.", "Create new room": "Créer un nouveau salon", "Welcome page": "Page d'accueil", "Room directory": "Répertoire des salons", @@ -860,17 +860,17 @@ "Close": "Fermer", "Custom": "Personnaliser", "Decline": "Refuser", - "Disable Notifications": "Désactiver les Notifications", - "Drop File Here": "Déposer le Fichier Ici", - "Enable Notifications": "Activer les Notifications", + "Disable Notifications": "Désactiver les notifications", + "Drop File Here": "Déposer le fichier Ici", + "Enable Notifications": "Activer les notifications", "Failed to upload profile picture!": "Échec du téléchargement de la photo de profil !", "Incoming call from %(name)s": "Appel entrant de %(name)s", "Incoming video call from %(name)s": "Appel vidéo entrant de %(name)s", "Incoming voice call from %(name)s": "Appel vocal entrant de %(name)s", "No display name": "Pas de nom d'affichage", "Otherwise, click here to send a bug report.": "Sinon, cliquer ici pour envoyer un rapport d'erreur.", - "Private Chat": "Conversation Privée", - "Public Chat": "Conversation Publique", + "Private Chat": "Conversation privée", + "Public Chat": "Conversation publique", "Reason: %(reasonText)s": "Raison: %(reasonText)s", "Rejoin": "Rejoindre", "Room contains unknown devices": "Le salon contient des appareils inconnus", @@ -895,7 +895,7 @@ "You have been banned from %(roomName)s by %(userName)s.": "Vous avez été bannis de %(roomName)s par %(userName)s.", "You have been kicked from %(roomName)s by %(userName)s.": "Vous avez été expulsé de %(roomName)s by %(userName)s.", "You may wish to login with a different account, or add this email to this account.": "Vous souhaiteriez peut-être vous identifier avec un autre compte, ou ajouter cette e-mail à votre compte.", - "Your home server does not support device management.": "Votre home server ne supporte pas la gestion d'appareils.", + "Your home server does not support device management.": "Votre homeserver ne supporte pas la gestion d'appareils.", "(~%(count)s results).one": "(~%(count)s résultat)", "(~%(count)s results).other": "(~%(count)s résultats)", "Device Name": "Nom de l'appareil", @@ -915,7 +915,7 @@ "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (pouvoir %(powerLevelNumber)s)", "(could not connect media)": "(impossible de se connecter au média)", "(no answer)": "(pas de réponse)", - "(unknown failure: %(reason)s)": "(erreur inconnue: %(reason)s)", + "(unknown failure: %(reason)s)": "(erreur inconnue : %(reason)s)", "Your browser does not support the required cryptography extensions": "Votre navigateur ne supporte pas les extensions cryptographiques nécessaires", "Not a valid Riot keyfile": "Fichier de clé Riot non valide", "Authentication check failed: incorrect password?": "Erreur d’identification: mot de passe incorrect ?", @@ -923,7 +923,7 @@ "Do you want to set an email address?": "Souhaitez-vous configurer une adresse e-mail ?", "This will allow you to reset your password and receive notifications.": "Ceci va vous permettre de réinitialiser votre mot de passe et de recevoir des notifications.", "Press to start a chat with someone": "Cliquez sur pour entamer une discussion avec quelqu'un", - "You're not in any rooms yet! Press to make a room or to browse the directory": "Vous n'avez pas encore rejoint de salle ! Cliquez sur pour créer une salle ou sur pour explorer l'annuaire", + "You're not in any rooms yet! Press to make a room or to browse the directory": "Vous n'avez pas encore rejoint de salon ! Cliquez sur pour créer un salon ou sur pour explorer le répertoire", "To return to your account in future you need to set a password": "Pour pouvoir accéder à votre compte dans le futur, vous devez enregistrer un mot de passe", "Skip": "Passer", "Start verification": "Commencer la vérification", @@ -933,5 +933,50 @@ "Your unverified device '%(displayName)s' is requesting encryption keys.": "Votre appareil non vérifié '%(displayName)s' demande des clés de chiffrement.", "Encryption key request": "Requête de clé de chiffrement", "Updates": "Mises à jour", - "Check for update": "Rechercher une mise à jour" + "Check for update": "Rechercher une mise à jour", + "Add a widget": "Ajouter un widget", + "Allow": "Autoriser", + "Changes colour scheme of current room": "Change le jeu de couleur du salon", + "Delete widget": "Supprimer le widget", + "Define the power level of a user": "Définir le niveau de privilèges d'un utilisateur", + "Edit": "Modifier", + "Enable automatic language detection for syntax highlighting": "Activer la détection automatique de langue pour la correction orthographique", + "Hide Apps": "Masquer les applications", + "Hide join/leave messages (invites/kicks/bans unaffected)": "Masquer les messages d'arrivée/départ (n'affecte pas les invitations/exclusions/bannissements)", + "Hide avatar and display name changes": "Masquer les changements d'avatar et de nom", + "Matrix Apps": "Matrix Apps", + "Revoke widget access": "Désactiver les accès du widget", + "Sets the room topic": "Configure le sujet du salon", + "Show Apps": "Afficher les applications", + "To get started, please pick a username!": "Pour débuter, choisissez un nom d'utilisateur !", + "Unable to create widget.": "Impossible de créer le widget.", + "Unbans user with given id": "Amnistie l'utilisateur à partir de son identifiant", + "You are not in this room.": "Vous n'êtes pas dans ce salon.", + "You do not have permission to do that in this room.": "Vous n'avez pas la permission d'effectuer cette action dans ce salon.", + "Autocomplete Delay (ms):": "Délai pour l'autocomplétion (ms) :", + "This Home server does not support groups": "Ce homeserver ne supporte pas les groupes", + "Loading device info...": "Chargement des informations sur l'appareil...", + "Groups": "Groupes", + "Create a new group": "Créer un nouveau groupe", + "Create Group": "Créer le groupe", + "Group Name": "Nom du groupe", + "Example": "Exemple", + "Create": "Créer", + "Group ID": "Identifiant du groupe", + "+example:%(domain)s": "+exemple:%(domain)s", + "Group IDs must be of the form +localpart:%(domain)s": "Les identifiants de groupe doivent être au format +localpart:%(domain)s", + "It is currently only possible to create groups on your own home server: use a group ID ending with %(domain)s": "Il n'est pas encore possible de créer des groupes sur votre propre homeserver : utilisez un identifiant de groupe terminant par %(domain)s", + "Room creation failed": "Impossible de créer le salon", + "You are a member of these groups:": "Vous êtes membre des groupes suivants :", + "Create a group to represent your community! Define a set of rooms and your own custom homepage to mark out your space in the Matrix universe.": "Créez un groupe pour représenter votre communauté ! Définissez un jeu de salons et votre propre page d'accueil pour marquer votre espace dans l'univers Matrix.", + "Join an existing group": "Rejoindre un groupe existant", + "To join an exisitng group you'll have to know its group identifier; this will look something like +example:matrix.org.": "Pour rejoindre un groupe existant, vous devez connaître son identifiant de groupe ; il ressemble à +exemple:matrix.org.", + "Featured Rooms:": "Salons mis en avant :", + "Error whilst fetching joined groups": "Erreur en récupérant la liste des groupes", + "Featured Users:": "Utilisateurs mis en avant :", + "Edit Group": "Modifier le groupe", + "Automatically replace plain text Emoji": "Remplacer automatiquement le texte par des Emoji", + "Failed to upload image": "Impossible de télécharger l'image", + "Failed to update group": "Impossible de modifier le groupe", + "Hide avatars in user and room mentions": "Masquer les avatars dans les mentions d'utilisateur et de salon" } From 9f762db59fda3459c156e73b3cd3f299b566bcd0 Mon Sep 17 00:00:00 2001 From: lazz0 Date: Sat, 19 Aug 2017 23:55:27 +0000 Subject: [PATCH 14/42] Translated using Weblate (Spanish) Currently translated at 75.7% (729 of 963 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 | 98 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 92 insertions(+), 6 deletions(-) diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index 1f6b26403c..0436c1a629 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -140,10 +140,8 @@ "%(items)s and %(remaining)s others": "%(items)s y %(remaining)s otros", "%(items)s and one other": "%(items)s y otro", "%(items)s and %(lastItem)s": "%(items)s y %(lastItem)s", - "and %(count)s others...": { - "other": "y %(count)s otros...", - "one": "y otro..." - }, + "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", "%(names)s and one other are typing": "%(names)s y otro están escribiendo", "%(names)s and %(count)s others are typing": "%(names)s y %(count)s otros están escribiendo", @@ -308,7 +306,7 @@ "is a": "es un", "'%(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 esta escribiendo", + "%(displayName)s is typing": "%(displayName)s está escribiendo", "Sign in with": "Quiero iniciar sesión con", "Join Room": "Unirte a la sala", "joined and left": "unido y dejado", @@ -649,5 +647,93 @@ "To send messages": "Para enviar mensajes", "to start a chat with someone": "para empezar a charlar con alguien", "to tag as %(tagName)s": "para etiquetar como %(tagName)s", - "to tag direct chat": "para etiquetar como charla directa" + "to tag direct chat": "para etiquetar como charla directa", + "Add a widget": "Añadir widget", + "Allow": "Permitir", + "Changes colour scheme of current room": "Cambia el esquema de colores de esta sala", + "Delete widget": "Eliminar widget", + "Define the power level of a user": "Definir el nivel de poder de los usuarios", + "Edit": "Editar", + "Enable automatic language detection for syntax highlighting": "Activar la detección automática del lenguaje para resaltar la sintaxis", + "Hide Apps": "Ocultar aplicaciones", + "Hide join/leave messages (invites/kicks/bans unaffected)": "Ocultar mensajes de entrada/salida (no afecta invitaciones/kicks/bans)", + "Hide avatar and display name changes": "Ocultar cambios de avatar y nombre visible", + "Matrix Apps": "Aplicaciones Matrix", + "Once you've followed the link it contains, click below": "Cuando haya seguido el enlace que contiene, haga click debajo", + "Sets the room topic": "Configura el tema de la sala", + "Show Apps": "Mostrar aplicaciones", + "To get started, please pick a username!": "Para empezar, ¡por favor elija un nombre de usuario!", + "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Se ha intentado cargar cierto punto en la cronología de esta sala, pero no tiene permiso para ver el mensaje solicitado.", + "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", + "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 restore previous session": "No se ha podido restablecer la sesión anterior", + "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 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", + "Unable to load device list": "No se ha podido cargar la lista de dispositivos", + "Undecryptable": "No se puede descifrar", + "Unencrypted room": "Sala sin cifrado", + "Unencrypted message": "Mensaje no cifrado", + "unknown caller": "Persona que llama desconocida", + "unknown device": "dispositivo desconocido", + "Unknown room %(roomId)s": "Sala desconocida %(roomId)s", + "Unknown (user, device) pair:": "Pareja desconocida (usuario, dispositivo):", + "unknown": "desconocido", + "Unnamed Room": "Sala sin nombre", + "Unverified": "Sin verificar", + "Uploading %(filename)s and %(count)s others.zero": "Subiendo %(filename)s", + "Uploading %(filename)s and %(count)s others.one": "Subiendo %(filename)s y %(count)s otros", + "Uploading %(filename)s and %(count)s others.other": "Subiendo %(filename)s y %(count)s otros", + "Upload avatar": "Subir avatar", + "Upload Failed": "Error al subir", + "Upload Files": "Subir archivos", + "Upload file": "Subir archivo", + "Upload new:": "Subir nuevo:", + "Usage": "Uso", + "Use compact timeline layout": "Usar diseño de cronología compacto", + "Use with caution": "Usar con precaución", + "User ID": "Identificación de usuario", + "User Interface": "Interfaz de usuario", + "%(user)s is a": "%(user)s es un", + "User name": "Nombre de usuario", + "Username invalid: %(errMessage)s": "Nombre de usuario no válido: %(errMessage)s", + "Users": "Usuarios", + "User": "Usuario", + "Verification Pending": "Verificación pendiente", + "Verification": "Verificación", + "verified": "verificado", + "Verified": "Verificado", + "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 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!": "¡Advertencia!", + "WARNING: Device already verified, but keys do NOT MATCH!": "AVISO: 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 comunicar?", + "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s ha retirado 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.", + "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 cannot place a call with yourself.": "No puede iniciar una llamada con usted mismo." } From eeadf63b6f378cc6b14bae5172dfa810b498c6e8 Mon Sep 17 00:00:00 2001 From: strix aluco Date: Mon, 21 Aug 2017 22:35:44 +0000 Subject: [PATCH 15/42] Translated using Weblate (Ukrainian) Currently translated at 20.7% (200 of 963 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/uk/ --- src/i18n/strings/uk.json | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/uk.json b/src/i18n/strings/uk.json index 1b74eed81e..363d179020 100644 --- a/src/i18n/strings/uk.json +++ b/src/i18n/strings/uk.json @@ -173,5 +173,30 @@ "No Webcams detected": "Веб-камеру не виявлено", "Favourites": "Вибрані", "favourite": "вибране", - "Fill screen": "На весь екран" + "Fill screen": "На весь екран", + "No media permissions": "Нема дозволів на відео/аудіо", + "You may need to manually permit Riot to access your microphone/webcam": "Можливо, вам треба дозволити Riot використання мікрофону/камери вручну", + "Default Device": "Уставний пристрій", + "Microphone": "Мікрофон", + "Camera": "Камера", + "Advanced": "Додаткові", + "Algorithm": "Алгоритм", + "Hide removed messages": "Приховати видалені повідомлення", + "Always show message timestamps": "Завжди показувати часові позначки повідомлень", + "Authentication": "Впізнавання", + "Alias (optional)": "Псевдонім (необов'язково)", + "all room members": "усі члени кімнати", + "all room members, from the point they are invited": "усі члени кімнати з моменту запрошення", + "all room members, from the point they joined": "усі члени кімнати з моменту приєднання", + "and": "та", + "%(items)s and %(remaining)s others": "%(items)s та інші %(remaining)s", + "%(items)s and one other": "%(items)s і ще один інший", + "%(items)s and %(lastItem)s": "%(items)s та %(lastItem)s", + "and %(count)s others....other": "та %(count)s інші...", + "and %(count)s others....one": "і інше...", + "%(names)s and %(lastPerson)s are typing": "%(names)s та %(lastPerson)s пишуть", + "%(names)s and one other are typing": "%(names)s та інші пишуть", + "%(names)s and %(count)s others are typing": "%(names)s та %(count)s інших пишуть", + "An email has been sent to": "Лист було надіслано", + "A new password must be entered.": "Має бути введений новий пароль." } From e427df4133371ab51a0c173f7e9184d2838c8a52 Mon Sep 17 00:00:00 2001 From: kaiyou Date: Sat, 19 Aug 2017 11:18:37 +0000 Subject: [PATCH 16/42] Translated using Weblate (French) Currently translated at 98.6% (958 of 971 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 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index eefbac14ec..50d9113245 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -191,8 +191,10 @@ "%(names)s and %(lastPerson)s are typing": "%(names)s et %(lastPerson)s sont en train d'écrire", "%(names)s and one other are typing": "%(names)s et un autre sont en train d'écrire", "%(names)s and %(count)s others are typing": "%(names)s et %(count)s d'autres sont en train d'écrire", - "and %(count)s others....other": "et %(count)s autres...", - "and %(count)s others....one": "et un autre...", + "and %(count)s others...": { + "other": "et %(count)s autres...", + "one": "et un autre..." + }, "An email has been sent to": "Un e-mail a été envoyé à", "A new password must be entered.": "Un nouveau mot de passe doit être entré.", "Anyone who knows the room's link, apart from guests": "Tout ceux qui connaissent le lien du salon, à part les visiteurs", From ca0061f7a1baa8eee846b43911b2f11b2fd7da48 Mon Sep 17 00:00:00 2001 From: Krombel Date: Fri, 18 Aug 2017 15:56:22 +0000 Subject: [PATCH 17/42] Translated using Weblate (German) Currently translated at 99.1% (963 of 971 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 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index a22ce01772..2fbee2717d 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -552,8 +552,10 @@ "Failed to forget room %(errCode)s": "Das Entfernen des Raums ist fehlgeschlagen %(errCode)s", "Failed to join the room": "Fehler beim Betreten des Raumes", "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Eine Textnachricht wurde an +%(msisdn)s gesendet. Bitte gebe den Verifikationscode ein, den er beinhaltet", - "and %(count)s others....other": "und %(count)s weitere...", - "and %(count)s others....one": "und ein(e) weitere(r)...", + "and %(count)s others...": { + "other": "und %(count)s weitere...", + "one": "und ein(e) weitere(r)..." + }, "Are you sure?": "Bist du sicher?", "Attachment": "Anhang", "Ban": "Dauerhaft aus dem Raum ausschließen", From ce4abc6bccb38bae368c1092247d683275a29c0f Mon Sep 17 00:00:00 2001 From: Andrey Date: Tue, 22 Aug 2017 16:53:08 +0000 Subject: [PATCH 18/42] Translated using Weblate (Russian) Currently translated at 94.9% (922 of 971 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 | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index e3129eb257..3f3403d716 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -969,5 +969,14 @@ "Your unverified device '%(displayName)s' is requesting encryption keys.": "Ваше непроверенное устройство '%(displayName)s' запрашивает ключи шифрования.", "Encryption key request": "Запрос ключа шифрования", "Updates": "Обновления", - "Check for update": "Проверить наличие обновлений" + "Check for update": "Проверить наличие обновлений", + "Add a widget": "Добавить виджет", + "Allow": "Принять", + "Cannot add any more widgets": "Невозможно добавить больше виджетов", + "Changes colour scheme of current room": "Изменяет цветовую схему текущей комнаты", + "Delete widget": "Удалить виджет", + "Define the power level of a user": "Определить уровень доступа пользователя", + "Do you want to load widget from URL:": "Загрузить виджет из URL-адреса:", + "Edit": "Изменить", + "Enable automatic language detection for syntax highlighting": "Включить автоматическое определение языка для подсветки синтаксиса" } From 56219dd64908a3c6b39176936126af576398bcfe Mon Sep 17 00:00:00 2001 From: lazz0 Date: Sat, 19 Aug 2017 23:55:27 +0000 Subject: [PATCH 19/42] Translated using Weblate (Spanish) Currently translated at 74.9% (728 of 971 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 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index 0a7cfb8441..96a986decc 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -140,8 +140,10 @@ "%(items)s and %(remaining)s others": "%(items)s y %(remaining)s otros", "%(items)s and one other": "%(items)s y otro", "%(items)s and %(lastItem)s": "%(items)s y %(lastItem)s", - "and %(count)s others....other": "y %(count)s otros...", - "and %(count)s others....one": "y otro...", + "and %(count)s others...": { + "other": "y %(count)s otros...", + "one": "y otro..." + }, "%(names)s and %(lastPerson)s are typing": "%(names)s y %(lastPerson)s están escribiendo", "%(names)s and one other are typing": "%(names)s y otro están escribiendo", "%(names)s and %(count)s others are typing": "%(names)s y %(count)s otros están escribiendo", From ecaaee3b24ebb6f3be7e1506ab0d979d2d80b2bc Mon Sep 17 00:00:00 2001 From: strix aluco Date: Mon, 21 Aug 2017 22:35:44 +0000 Subject: [PATCH 20/42] Translated using Weblate (Ukrainian) Currently translated at 20.5% (200 of 971 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/uk/ --- src/i18n/strings/uk.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/uk.json b/src/i18n/strings/uk.json index 363d179020..ae538d76bf 100644 --- a/src/i18n/strings/uk.json +++ b/src/i18n/strings/uk.json @@ -192,8 +192,10 @@ "%(items)s and %(remaining)s others": "%(items)s та інші %(remaining)s", "%(items)s and one other": "%(items)s і ще один інший", "%(items)s and %(lastItem)s": "%(items)s та %(lastItem)s", - "and %(count)s others....other": "та %(count)s інші...", - "and %(count)s others....one": "і інше...", + "and %(count)s others...": { + "other": "та %(count)s інші...", + "one": "і інше..." + }, "%(names)s and %(lastPerson)s are typing": "%(names)s та %(lastPerson)s пишуть", "%(names)s and one other are typing": "%(names)s та інші пишуть", "%(names)s and %(count)s others are typing": "%(names)s та %(count)s інших пишуть", From 3939d948bf5071d16c2baa14d918446c15e17af2 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 22 Aug 2017 18:43:33 +0100 Subject: [PATCH 21/42] js-sdk v0.10.1-rc.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 661db4b6bc..39a8984d33 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "isomorphic-fetch": "^2.2.1", "linkifyjs": "^2.1.3", "lodash": "^4.13.1", - "matrix-js-sdk": "matrix-org/matrix-js-sdk#develop", + "matrix-js-sdk": "0.8.1-rc.1", "optimist": "^0.6.1", "prop-types": "^15.5.8", "react": "^15.4.0", From 8312cf6ab23f693971ad2d9b2fbadea4955df22f Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 22 Aug 2017 18:50:33 +0100 Subject: [PATCH 22/42] Temporarily bump version so we compare to 0.10.0-rc.2 rather than 0.9.7 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 39a8984d33..05b4db0d39 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "matrix-react-sdk", - "version": "0.9.7", + "version": "0.10.0-rc.2", "description": "SDK for matrix.org using React", "author": "matrix.org", "repository": { From f4fb502fc3398aa0d59a901b451180896e629575 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 22 Aug 2017 18:53:11 +0100 Subject: [PATCH 23/42] Prepare changelog for v0.10.1-rc.1 --- CHANGELOG.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8bc4bbcfce..84ec9e754d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,55 @@ +Changes in [0.10.1-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.10.1-rc.1) (2017-08-22) +=============================================================================================================== +[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.10.0-rc.2...v0.10.1-rc.1) + + * Matthew/multiple widgets + [\#1327](https://github.com/matrix-org/matrix-react-sdk/pull/1327) + * Fix proptypes on UserPickerDialog + [\#1326](https://github.com/matrix-org/matrix-react-sdk/pull/1326) + * AppsDrawer: Remove unnecessary bind + [\#1325](https://github.com/matrix-org/matrix-react-sdk/pull/1325) + * Position add app widget link + [\#1322](https://github.com/matrix-org/matrix-react-sdk/pull/1322) + * Remove app tile beta tag. + [\#1323](https://github.com/matrix-org/matrix-react-sdk/pull/1323) + * Add missing translation. + [\#1324](https://github.com/matrix-org/matrix-react-sdk/pull/1324) + * Note that apps are not E2EE + [\#1319](https://github.com/matrix-org/matrix-react-sdk/pull/1319) + * Only render appTile body (including warnings) if drawer shown. + [\#1321](https://github.com/matrix-org/matrix-react-sdk/pull/1321) + * Timeline improvements + [\#1320](https://github.com/matrix-org/matrix-react-sdk/pull/1320) + * Add a space between widget name and "widget" in widget event tiles + [\#1318](https://github.com/matrix-org/matrix-react-sdk/pull/1318) + * Move manage integrations button from settings page to room header as a + stand-alone component + [\#1286](https://github.com/matrix-org/matrix-react-sdk/pull/1286) + * Don't apply case logic to app names + [\#1316](https://github.com/matrix-org/matrix-react-sdk/pull/1316) + * Stop integ manager opening on every room switch + [\#1315](https://github.com/matrix-org/matrix-react-sdk/pull/1315) + * Add behaviour to toggle app draw on app tile header click + [\#1313](https://github.com/matrix-org/matrix-react-sdk/pull/1313) + * Change OOO so that MELS generation will continue over hidden events + [\#1308](https://github.com/matrix-org/matrix-react-sdk/pull/1308) + * Implement TextualEvent tiles for im.vector.modular.widgets + [\#1312](https://github.com/matrix-org/matrix-react-sdk/pull/1312) + * Don't show widget security warning to the person that added it to the room + [\#1314](https://github.com/matrix-org/matrix-react-sdk/pull/1314) + * remove unused strings introduced by string change + [\#1311](https://github.com/matrix-org/matrix-react-sdk/pull/1311) + * hotfix bad fn signature regression + [\#1310](https://github.com/matrix-org/matrix-react-sdk/pull/1310) + * Show a dialog if the maximum number of widgets allowed has been reached. + [\#1291](https://github.com/matrix-org/matrix-react-sdk/pull/1291) + * Fix Robot translation + [\#1309](https://github.com/matrix-org/matrix-react-sdk/pull/1309) + * Refactor ChatInviteDialog to be UserPickerDialog + [\#1300](https://github.com/matrix-org/matrix-react-sdk/pull/1300) + * Update Link to Translation status + [\#1302](https://github.com/matrix-org/matrix-react-sdk/pull/1302) + Changes in [0.9.7](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.9.7) (2017-06-22) =================================================================================================== [Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.9.6...v0.9.7) From 85b609608ee4c0400ea989861daf8b7eea981ae0 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 22 Aug 2017 18:53:11 +0100 Subject: [PATCH 24/42] v0.10.1-rc.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 05b4db0d39..b3d5b86a47 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "matrix-react-sdk", - "version": "0.10.0-rc.2", + "version": "0.10.1-rc.1", "description": "SDK for matrix.org using React", "author": "matrix.org", "repository": { From b8e351f489dcd2483b68094254570584498c3860 Mon Sep 17 00:00:00 2001 From: David Baker Date: Wed, 23 Aug 2017 15:54:06 +0100 Subject: [PATCH 25/42] Released js-sdk --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b3d5b86a47..a5b41a2f9b 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "isomorphic-fetch": "^2.2.1", "linkifyjs": "^2.1.3", "lodash": "^4.13.1", - "matrix-js-sdk": "0.8.1-rc.1", + "matrix-js-sdk": "0.8.1", "optimist": "^0.6.1", "prop-types": "^15.5.8", "react": "^15.4.0", From 878417d0e6df527829239e2b01b6a9148baf0ff7 Mon Sep 17 00:00:00 2001 From: David Baker Date: Wed, 23 Aug 2017 15:56:08 +0100 Subject: [PATCH 26/42] Prepare changelog for v0.10.1 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 84ec9e754d..931afaceb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +Changes in [0.10.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.10.1) (2017-08-23) +===================================================================================================== +[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.10.1-rc.1...v0.10.1) + + * [No changes] + Changes in [0.10.1-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.10.1-rc.1) (2017-08-22) =============================================================================================================== [Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.10.0-rc.2...v0.10.1-rc.1) From 3581f6edaa52d20c28a4fa9c6d7ead6e0eafce18 Mon Sep 17 00:00:00 2001 From: David Baker Date: Wed, 23 Aug 2017 15:56:09 +0100 Subject: [PATCH 27/42] v0.10.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a5b41a2f9b..3eca722fad 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "matrix-react-sdk", - "version": "0.10.1-rc.1", + "version": "0.10.1", "description": "SDK for matrix.org using React", "author": "matrix.org", "repository": { From 8ed5422a452cee3f98cdb8f901c5579a88a7332d Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Wed, 23 Aug 2017 16:22:14 +0100 Subject: [PATCH 28/42] Fix click to insert completion And remedy weird API in the process. Autocomplete now exposes `onSelectionChange` to indicate that the user has selected another completion, rather than returning the chosen completion via onUpArrow etc. Fixes vector-im/riot-web#4835 --- src/components/views/rooms/Autocomplete.js | 5 +++-- src/components/views/rooms/MessageComposerInput.js | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/components/views/rooms/Autocomplete.js b/src/components/views/rooms/Autocomplete.js index cdd57801a5..7706cc7ebd 100644 --- a/src/components/views/rooms/Autocomplete.js +++ b/src/components/views/rooms/Autocomplete.js @@ -143,7 +143,6 @@ export default class Autocomplete extends React.Component { return null; } this.setSelection(selectionOffset); - return selectionOffset === COMPOSER_SELECTED ? null : this.state.completionList[selectionOffset - 1]; } // called from MessageComposerInput @@ -155,7 +154,6 @@ export default class Autocomplete extends React.Component { return null; } this.setSelection(selectionOffset); - return selectionOffset === COMPOSER_SELECTED ? null : this.state.completionList[selectionOffset - 1]; } onEscape(e): boolean { @@ -201,6 +199,9 @@ export default class Autocomplete extends React.Component { setSelection(selectionOffset: number) { this.setState({selectionOffset, hide: false}); + if (this.props.onSelectionChange) { + this.props.onSelectionChange(this.state.completionList[selectionOffset - 1]); + } } componentDidUpdate() { diff --git a/src/components/views/rooms/MessageComposerInput.js b/src/components/views/rooms/MessageComposerInput.js index 6d6cc0f3f4..37602a94ca 100644 --- a/src/components/views/rooms/MessageComposerInput.js +++ b/src/components/views/rooms/MessageComposerInput.js @@ -949,8 +949,7 @@ export default class MessageComposerInput extends React.Component { }; moveAutocompleteSelection = (up) => { - const completion = up ? this.autocomplete.onUpArrow() : this.autocomplete.onDownArrow(); - return this.setDisplayedCompletion(completion); + up ? this.autocomplete.onUpArrow() : this.autocomplete.onDownArrow(); }; onEscape = async (e) => { @@ -1133,6 +1132,7 @@ export default class MessageComposerInput extends React.Component { this.autocomplete = e} onConfirm={this.setDisplayedCompletion} + onSelectionChange={this.setDisplayedCompletion} query={this.getAutocompleteQuery(content)} selection={selection}/>
From c11432c3e3b48dbe68e596351653f42f6ee4490c Mon Sep 17 00:00:00 2001 From: David Baker Date: Wed, 23 Aug 2017 19:35:33 +0100 Subject: [PATCH 29/42] Catch the promise rejection if scalar fails Otherwise this is incredibly annoying when developing if you don't have a scalar that will allow you to register (ie. if you're testing against an HS on your dev box) --- src/components/views/rooms/AppsDrawer.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/components/views/rooms/AppsDrawer.js b/src/components/views/rooms/AppsDrawer.js index 824a719245..536259ae91 100644 --- a/src/components/views/rooms/AppsDrawer.js +++ b/src/components/views/rooms/AppsDrawer.js @@ -53,14 +53,14 @@ module.exports = React.createClass({ this.scalarClient = null; if (SdkConfig.get().integrations_ui_url && SdkConfig.get().integrations_rest_url) { this.scalarClient = new ScalarAuthClient(); - this.scalarClient.connect().done(() => { + this.scalarClient.connect().then(() => { this.forceUpdate(); - // TODO -- Handle Scalar errors - // }, - // (err) => { - // this.setState({ - // scalar_error: err, - // }); + }).catch((e) => { + console.log("Failed to connect to integrations server"); + // TODO -- Handle Scalar errors + // this.setState({ + // scalar_error: err, + // }); }); } From 67824e9accffacc08e6209fc87f4dd99144f07f0 Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 24 Aug 2017 11:35:01 +0100 Subject: [PATCH 30/42] Force update on timelinepanel when event decrypted Partially fixes https://github.com/vector-im/riot-web/issues/4865 (the part about messages not appearing in the timeline until you move the cursor over the window). Requires https://github.com/matrix-org/matrix-js-sdk/pull/529 --- src/components/structures/TimelinePanel.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/components/structures/TimelinePanel.js b/src/components/structures/TimelinePanel.js index 6be31361dd..2840fd4579 100644 --- a/src/components/structures/TimelinePanel.js +++ b/src/components/structures/TimelinePanel.js @@ -197,6 +197,7 @@ var TimelinePanel = React.createClass({ MatrixClientPeg.get().on("Room.receipt", this.onRoomReceipt); MatrixClientPeg.get().on("Room.localEchoUpdated", this.onLocalEchoUpdated); MatrixClientPeg.get().on("Room.accountData", this.onAccountData); + MatrixClientPeg.get().on("Event.decrypted", this.onEventDecrypted); MatrixClientPeg.get().on("sync", this.onSync); this._initTimeline(this.props); @@ -266,6 +267,7 @@ var TimelinePanel = React.createClass({ client.removeListener("Room.receipt", this.onRoomReceipt); client.removeListener("Room.localEchoUpdated", this.onLocalEchoUpdated); client.removeListener("Room.accountData", this.onAccountData); + client.removeListener("Event.decrypted", this.onEventDecrypted); client.removeListener("sync", this.onSync); } }, @@ -503,6 +505,16 @@ var TimelinePanel = React.createClass({ }, this.props.onReadMarkerUpdated); }, + onEventDecrypted: function(ev) { + // Need to update as we don't display event tiles for events that + // haven't yet been decrypted. The event will have just been updated + // in place so we just need to re-render. + // TODO: We should restrict this to only events in our timeline, + // but possibly the event tile itself should just update when this + // happens to save us re-rendering the whole timeline. + this.forceUpdate(); + }, + onSync: function(state, prevState, data) { this.setState({clientSyncState: state}); }, From a2943ac3485a4ab90e63ed4216ba30ed37bf6666 Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 24 Aug 2017 11:55:39 +0100 Subject: [PATCH 31/42] Check room ID matches --- src/components/structures/TimelinePanel.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/structures/TimelinePanel.js b/src/components/structures/TimelinePanel.js index 2840fd4579..6f72fcc767 100644 --- a/src/components/structures/TimelinePanel.js +++ b/src/components/structures/TimelinePanel.js @@ -512,7 +512,9 @@ var TimelinePanel = React.createClass({ // TODO: We should restrict this to only events in our timeline, // but possibly the event tile itself should just update when this // happens to save us re-rendering the whole timeline. - this.forceUpdate(); + if (ev.getRoomId() === this.props.timelineSet.room.roomId) { + this.forceUpdate(); + } }, onSync: function(state, prevState, data) { From ec6867dc8b364c84d6c88273a379f004ac158005 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 24 Aug 2017 12:31:29 +0100 Subject: [PATCH 32/42] Fix React crying on machines without internet due to return undefined --- src/components/views/elements/ManageIntegsButton.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/views/elements/ManageIntegsButton.js b/src/components/views/elements/ManageIntegsButton.js index a5f6eb7982..ac562a7c20 100644 --- a/src/components/views/elements/ManageIntegsButton.js +++ b/src/components/views/elements/ManageIntegsButton.js @@ -75,7 +75,7 @@ export default class ManageIntegsButton extends React.Component { } render() { - let integrationsButton; + let integrationsButton =
; let integrationsError; if (this.scalarClient !== null) { if (this.state.showIntegrationsError && this.state.scalarError) { From b65e1769d7407520f68f225423536bd69ce4cc42 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Thu, 24 Aug 2017 13:05:17 +0100 Subject: [PATCH 33/42] Dispatch incoming_call synchronously - this should fix a race where if the 'hangup' arrives hard on the tail of the Call.incoming, we don't ignore it. (We still have a problem in that we blip the hangup tone and UI, but that is arguably a separate problem) --- src/components/structures/MatrixChat.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index 4d671d9cad..bbe345933e 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -1068,10 +1068,13 @@ module.exports = React.createClass({ self.setState({ready: true}); }); cli.on('Call.incoming', function(call) { + // we dispatch this synchronously to make sure that the event + // handlers on the call are set up immediately (so that if + // we get an immediate hangup, we don't get a stuck call) dis.dispatch({ action: 'incoming_call', call: call, - }); + }, true); }); cli.on('Session.logged_out', function(call) { const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); From 939889705ed81209e81abcea1b17095e33ad2330 Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 24 Aug 2017 14:27:38 +0100 Subject: [PATCH 34/42] Fix notifications for encrypted events (#1336) Remember events that we may need to notify for once decrypted and evaluate them in an Event.decrypted listener. --- src/Notifier.js | 50 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/src/Notifier.js b/src/Notifier.js index 1bb435307d..d3b54a6cca 100644 --- a/src/Notifier.js +++ b/src/Notifier.js @@ -33,9 +33,16 @@ import Modal from './Modal'; * } */ +const MAX_PENDING_ENCRYPTED = 20; + const Notifier = { notifsByRoom: {}, + // A list of event IDs that we've received but need to wait until + // they're decrypted until we decide whether to notify for them + // or not + pendingEncryptedEventIds: [], + notificationMessageForEvent: function(ev) { return TextForEvent.textForEvent(ev); }, @@ -98,8 +105,10 @@ const Notifier = { this.boundOnRoomTimeline = this.onRoomTimeline.bind(this); this.boundOnSyncStateChange = this.onSyncStateChange.bind(this); this.boundOnRoomReceipt = this.onRoomReceipt.bind(this); + this.boundOnEventDecrypted = this.onEventDecrypted.bind(this); MatrixClientPeg.get().on('Room.timeline', this.boundOnRoomTimeline); MatrixClientPeg.get().on('Room.receipt', this.boundOnRoomReceipt); + MatrixClientPeg.get().on('Event.decrypted', this.boundOnEventDecrypted); MatrixClientPeg.get().on("sync", this.boundOnSyncStateChange); this.toolbarHidden = false; this.isSyncing = false; @@ -109,6 +118,7 @@ const Notifier = { if (MatrixClientPeg.get() && this.boundOnRoomTimeline) { MatrixClientPeg.get().removeListener('Room.timeline', this.boundOnRoomTimeline); MatrixClientPeg.get().removeListener('Room.receipt', this.boundOnRoomReceipt); + MatrixClientPeg.get().removeListener('Event.decrypted', this.boundOnEventDecrypted); MatrixClientPeg.get().removeListener('sync', this.boundOnSyncStateChange); } this.isSyncing = false; @@ -244,16 +254,26 @@ const Notifier = { if (ev.sender && ev.sender.userId === MatrixClientPeg.get().credentials.userId) return; if (data.timeline.getTimelineSet() !== room.getUnfilteredTimelineSet()) return; - const actions = MatrixClientPeg.get().getPushActionsForEvent(ev); - if (actions && actions.notify) { - if (this.isEnabled()) { - this._displayPopupNotification(ev, room); - } - if (actions.tweaks.sound && this.isAudioEnabled()) { - PlatformPeg.get().loudNotification(ev, room); - this._playAudioNotification(ev, room); + // If it's an encrypted event and the type is still 'm.room.encrypted', + // it hasn't yet been decrypted, so wait until it is. + if (event.isBeingDecrypted() || event.isDecryptionFailure()) { + this.pendingEncryptedEventIds.push(ev.getId()); + // don't let the list fill up indefinitely + while (this.pendingEncryptedEventIds.length > MAX_PENDING_ENCRYPTED) { + this.pendingEncryptedEventIds.shift(); } + return; } + + this._evaluateEvent(ev); + }, + + onEventDecrypted: function(ev) { + const idx = this.pendingEncryptedEventIds.indexOf(ev.getId()); + if (idx === -1) return; + + this.pendingEncryptedEventIds.splice(idx, 1); + this._evaluateEvent(ev); }, onRoomReceipt: function(ev, room) { @@ -273,6 +293,20 @@ const Notifier = { delete this.notifsByRoom[room.roomId]; } }, + + _evaluateEvent: function(ev) { + const room = MatrixClientPeg.get().getRoom(ev.getRoomId()); + const actions = MatrixClientPeg.get().getPushActionsForEvent(ev); + if (actions && actions.notify) { + if (this.isEnabled()) { + this._displayPopupNotification(ev, room); + } + if (actions.tweaks.sound && this.isAudioEnabled()) { + PlatformPeg.get().loudNotification(ev, room); + this._playAudioNotification(ev, room); + } + } + } }; if (!global.mxNotifier) { From 88a0d34c2b9a5c0365c994a438a904470fcf24df Mon Sep 17 00:00:00 2001 From: Marcel Date: Thu, 24 Aug 2017 15:40:52 +0200 Subject: [PATCH 35/42] Remove unused response_return variable --- src/languageHandler.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/languageHandler.js b/src/languageHandler.js index 54a8596d5d..a5697da1d0 100644 --- a/src/languageHandler.js +++ b/src/languageHandler.js @@ -246,7 +246,6 @@ function getLangsJson() { function getLanguage(langPath) { return new Promise((resolve, reject) => { - let response_return = {}; request( { method: "GET", url: langPath }, (err, response, body) => { From db011e7065b4df25af098e697bb6f5698f89703a Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 24 Aug 2017 14:42:38 +0100 Subject: [PATCH 36/42] Get variable name right --- src/Notifier.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Notifier.js b/src/Notifier.js index d3b54a6cca..0a3b346cf4 100644 --- a/src/Notifier.js +++ b/src/Notifier.js @@ -256,7 +256,7 @@ const Notifier = { // If it's an encrypted event and the type is still 'm.room.encrypted', // it hasn't yet been decrypted, so wait until it is. - if (event.isBeingDecrypted() || event.isDecryptionFailure()) { + if (ev.isBeingDecrypted() || ev.isDecryptionFailure()) { this.pendingEncryptedEventIds.push(ev.getId()); // don't let the list fill up indefinitely while (this.pendingEncryptedEventIds.length > MAX_PENDING_ENCRYPTED) { From 1b75470597e03767ec895be2a4432563de40efcb Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 24 Aug 2017 14:48:22 +0100 Subject: [PATCH 37/42] Released js-sdk --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3eca722fad..39cfad7589 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "isomorphic-fetch": "^2.2.1", "linkifyjs": "^2.1.3", "lodash": "^4.13.1", - "matrix-js-sdk": "0.8.1", + "matrix-js-sdk": "0.8.2", "optimist": "^0.6.1", "prop-types": "^15.5.8", "react": "^15.4.0", From 662e2b8b4c2e3c9a796428202bf263aabd09ce53 Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 24 Aug 2017 14:49:40 +0100 Subject: [PATCH 38/42] Prepare changelog for v0.10.2 --- CHANGELOG.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 931afaceb1..b5e596144e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,18 @@ +Changes in [0.10.2](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.10.2) (2017-08-24) +===================================================================================================== +[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.10.1...v0.10.2) + + * Force update on timelinepanel when event decrypted + [\#1334](https://github.com/matrix-org/matrix-react-sdk/pull/1334) + * Dispatch incoming_call synchronously + [\#1337](https://github.com/matrix-org/matrix-react-sdk/pull/1337) + * Fix React crying on machines without internet due to return undefined + [\#1335](https://github.com/matrix-org/matrix-react-sdk/pull/1335) + * Catch the promise rejection if scalar fails + [\#1333](https://github.com/matrix-org/matrix-react-sdk/pull/1333) + * Update from Weblate. + [\#1329](https://github.com/matrix-org/matrix-react-sdk/pull/1329) + Changes in [0.10.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.10.1) (2017-08-23) ===================================================================================================== [Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.10.1-rc.1...v0.10.1) From 0e3ae2fa4ffc690897f82f1d32c2cd8a1c4e2b63 Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 24 Aug 2017 14:49:41 +0100 Subject: [PATCH 39/42] v0.10.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 39cfad7589..cc352cb8db 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "matrix-react-sdk", - "version": "0.10.1", + "version": "0.10.2", "description": "SDK for matrix.org using React", "author": "matrix.org", "repository": { From d34ba57adbed79d0a29333326aefcaed7fd13de9 Mon Sep 17 00:00:00 2001 From: Marcel Date: Thu, 24 Aug 2017 16:42:32 +0200 Subject: [PATCH 40/42] Add missing returns --- src/languageHandler.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/languageHandler.js b/src/languageHandler.js index a5697da1d0..a19c796f39 100644 --- a/src/languageHandler.js +++ b/src/languageHandler.js @@ -237,6 +237,7 @@ function getLangsJson() { (err, response, body) => { if (err || response.status < 200 || response.status >= 300) { reject({err: err, response: response}); + return; } resolve(JSON.parse(body)); } @@ -251,6 +252,7 @@ function getLanguage(langPath) { (err, response, body) => { if (err || response.status < 200 || response.status >= 300) { reject({err: err, response: response}); + return; } resolve(JSON.parse(body)); } From cd1e58cb618f30fa3449ebb90b471baeafb9f2c6 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sat, 26 Aug 2017 08:18:07 +0100 Subject: [PATCH 41/42] _tJsx returns a React Object, the sub fn must return a React Object not a string --- src/components/views/login/CaptchaForm.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/views/login/CaptchaForm.js b/src/components/views/login/CaptchaForm.js index 8f9c0391ae..d24990f94d 100644 --- a/src/components/views/login/CaptchaForm.js +++ b/src/components/views/login/CaptchaForm.js @@ -17,6 +17,7 @@ limitations under the License. 'use strict'; import React from 'react'; +import ReactDOM from 'react-dom'; import { _t, _tJsx } from '../../../languageHandler'; var DIV_ID = 'mx_recaptcha'; @@ -66,11 +67,10 @@ module.exports = React.createClass({ // * jumping straight to a hosted captcha page (but we don't support that yet) // * embedding the captcha in an iframe (if that works) // * using a better captcha lib - warning.innerHTML = _tJsx( - "Robot check is currently unavailable on desktop - please use a web browser", - /(.*?)<\/a>/, - (sub) => { return "{ sub }"; } - ); + ReactDOM.render(_tJsx( + "Robot check is currently unavailable on desktop - please use a web browser", + /(.*?)<\/a>/, + (sub) => { return { sub }; }), warning); this.refs.recaptchaContainer.appendChild(warning); } else { From acbcc00016f46dfdd6720ce5fb92d5e951f5e150 Mon Sep 17 00:00:00 2001 From: David Baker Date: Sat, 26 Aug 2017 15:15:51 +0100 Subject: [PATCH 42/42] Remove unnecessary 'load' on notif audio element It's not necessary to explicitly load and it throws an exception if you call it while the element is playing, so better to just remove it. --- src/Notifier.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Notifier.js b/src/Notifier.js index 0a3b346cf4..2f8e708d88 100644 --- a/src/Notifier.js +++ b/src/Notifier.js @@ -96,7 +96,6 @@ const Notifier = { _playAudioNotification: function(ev, room) { const e = document.getElementById("messageAudio"); if (e) { - e.load(); e.play(); } },