+ Missing Media Permissions, click here to request.
+
;
} else if (!this.state.mediaDevices) return;
const Dropdown = sdk.getComponent('elements.Dropdown');
- let microphoneDropdown =
No Microphones detected
;
- let webcamDropdown =
No Webcams detected
;
+ let microphoneDropdown =
No Microphones detected
;
+ let webcamDropdown =
No Webcams detected
;
const audioInputs = this.state.mediaDevices.audioinput;
if ('default' in audioInputs) {
From 4afba2f7964ffcceafce93d1aaf35ab8796a5476 Mon Sep 17 00:00:00 2001
From: "saul.kredi@krutt.org"
Date: Mon, 29 May 2017 18:44:39 +0300
Subject: [PATCH 007/170] Add support for RTL languages
---
src/HtmlUtils.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/HtmlUtils.js b/src/HtmlUtils.js
index 4acb314c2f..8af1894c79 100644
--- a/src/HtmlUtils.js
+++ b/src/HtmlUtils.js
@@ -360,7 +360,7 @@ export function bodyToHtml(content, highlights, opts) {
'mx_EventTile_bigEmoji': emojiBody,
'markdown-body': isHtml,
});
- return ;
+ return ;
}
export function emojifyText(text) {
From 7e02977c27c79012ddd915085640a183d2c80454 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Mon, 29 May 2017 21:58:47 +0100
Subject: [PATCH 008/170] i18n
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
src/components/structures/UserSettings.js | 2 +-
src/i18n/strings/en_EN.json | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/components/structures/UserSettings.js b/src/components/structures/UserSettings.js
index 714f7a6881..020c3e49b0 100644
--- a/src/components/structures/UserSettings.js
+++ b/src/components/structures/UserSettings.js
@@ -851,7 +851,7 @@ module.exports = React.createClass({
ipcRenderer.send('settings_set', 'auto-launch', e.target.checked);
}}
/>
-
+
;
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 5abb27e2b7..38d9648d1a 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -673,5 +673,6 @@
"%(oneUser)schanged their avatar %(repeats)s times": "%(oneUser)schanged their avatar %(repeats)s times",
"%(severalUsers)schanged their avatar": "%(severalUsers)schanged their avatar",
"%(oneUser)schanged their avatar": "%(oneUser)schanged their avatar",
- "Please select the destination room for this message": "Please select the destination room for this message"
+ "Please select the destination room for this message": "Please select the destination room for this message",
+ "Start automatically after system login": "Start automatically after system login"
}
From 5a4ec1996d9f2ead19ac7b354fb2708cb954438a Mon Sep 17 00:00:00 2001
From: daniel tygel
Date: Tue, 30 May 2017 16:29:50 -0300
Subject: [PATCH 009/170] fix error in i18n string
---
src/components/views/messages/TextualBody.js | 4 ++--
src/i18n/strings/en_EN.json | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/components/views/messages/TextualBody.js b/src/components/views/messages/TextualBody.js
index 83a35b9841..aff6725475 100644
--- a/src/components/views/messages/TextualBody.js
+++ b/src/components/views/messages/TextualBody.js
@@ -235,8 +235,8 @@ module.exports = React.createClass({
description:
{_t("You are about to be taken to a third-party site so you can " +
- "authenticate your account for use with {integrationsUrl}. " +
- "Do you wish to continue?")}
+ "authenticate your account for use with %(integrationsUrl)s. " +
+ "Do you wish to continue?", {integrationsUrl: integrationsUrl})}
,
button: _t("Continue"),
onFinished: function(confirmed) {
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 4cf16b3d5d..051a84bd10 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -751,7 +751,7 @@
"This image cannot be displayed.": "This image cannot be displayed.",
"Error decrypting video": "Error decrypting video",
"Add an Integration": "Add an Integration",
- "You are about to be taken to a third-party site so you can authenticate your account for use with {integrationsUrl}. Do you wish to continue?": "You are about to be taken to a third-party site so you can authenticate your account for use with {integrationsUrl}. Do you wish to continue?",
+ "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?",
"Removed or unknown message type": "Removed or unknown message type",
"Disable URL previews by default for participants in this room": "Disable URL previews by default for participants in this room",
"URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.",
From 4d7ac1b828e6c260c4479ba4ad678715e76735e5 Mon Sep 17 00:00:00 2001
From: Marcel
Date: Tue, 30 May 2017 21:46:07 +0200
Subject: [PATCH 010/170] Fix missing string in the room settings
---
src/i18n/strings/en_EN.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 051a84bd10..d8fa30b1bc 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -762,5 +762,6 @@
"Ongoing conference call%(supportedText)s. %(joinText)s": "Ongoing conference call%(supportedText)s. %(joinText)s",
"Online": "Online",
"Idle": "Idle",
- "Offline": "Offline"
+ "Offline": "Offline",
+ "Disable URL previews for this room (affects only you)"; "Disable URL previews for this room (affects only you)"
}
From 54b8afec3826a87a2a076d63c8b6be0bee418f42 Mon Sep 17 00:00:00 2001
From: Marcel
Date: Tue, 30 May 2017 21:47:38 +0200
Subject: [PATCH 011/170] Fix use of wrong char
---
src/i18n/strings/en_EN.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index d8fa30b1bc..0dc634d466 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -763,5 +763,5 @@
"Online": "Online",
"Idle": "Idle",
"Offline": "Offline",
- "Disable URL previews for this room (affects only you)"; "Disable URL previews for this room (affects only you)"
+ "Disable URL previews for this room (affects only you)": "Disable URL previews for this room (affects only you)"
}
From b6bc641b3af0264bd409b648526ff63e48fb78cc Mon Sep 17 00:00:00 2001
From: Szimszon
Date: Tue, 30 May 2017 20:30:31 +0000
Subject: [PATCH 012/170] Added translation using Weblate (Hungarian)
---
src/i18n/strings/hu.json | 1 +
1 file changed, 1 insertion(+)
create mode 100644 src/i18n/strings/hu.json
diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json
new file mode 100644
index 0000000000..9e26dfeeb6
--- /dev/null
+++ b/src/i18n/strings/hu.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
From aa40653d5fb05f3603bda52b8e2c390c12a49c7b Mon Sep 17 00:00:00 2001
From: Amandine
Date: Tue, 30 May 2017 20:21:33 +0000
Subject: [PATCH 013/170] Translated using Weblate (French)
Currently translated at 91.8% (703 of 765 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/fr/
---
src/i18n/strings/fr.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json
index 6af977b484..e9fabd7fd8 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -703,5 +703,7 @@
"Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Êtes vous sûr de vouloir supprimer cet événement ? Notez que si vous supprimez le changement de nom d’un salon ou la mise a jour du sujet d’un salon, il est possible que le changement soit annulé.",
"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 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.",
+ "To continue, please enter your password.": "Pour continuer, merci d'entrer votre mot de passe."
}
From 13fa3ac1f03d29961c2ef34d0b95965a4ce185d1 Mon Sep 17 00:00:00 2001
From: Bamstam
Date: Tue, 30 May 2017 19:52:58 +0000
Subject: [PATCH 014/170] Translated using Weblate (German)
Currently translated at 100.0% (765 of 765 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/de/
---
src/i18n/strings/de_DE.json | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json
index 9046372849..128820127c 100644
--- a/src/i18n/strings/de_DE.json
+++ b/src/i18n/strings/de_DE.json
@@ -19,7 +19,7 @@
"Device ID": "Geräte ID",
"Verification": "Verifizierung",
"Ed25519 fingerprint": "Ed25519 Fingerprint",
- "User ID": "Benutzer ID",
+ "User ID": "Benutzer-ID",
"Curve25519 identity key": "Curve25519-Identitäts-Schlüssel",
"Claimed Ed25519 fingerprint key": "Geforderter Ed25519 Fingerprint Schlüssel",
"none": "keiner",
@@ -41,7 +41,7 @@
"Searches DuckDuckGo for results": "Suche in DuckDuckGo nach Ergebnissen",
"Commands": "Kommandos",
"Emoji": "Smileys",
- "Sorry, this homeserver is using a login which is not recognised ": "Entschuldigung, dieser homeserver nutzt eine Anmeldetechnik die nicht bekannt ist ",
+ "Sorry, this homeserver is using a login which is not recognised ": "Entschuldigung, dieser Homeserver nutzt eine Anmeldetechnik, die nicht bekannt ist ",
"Login as guest": "Anmelden als Gast",
"Return to app": "Zurück zur Anwendung",
"Sign in": "Anmelden",
@@ -122,7 +122,7 @@
"favourite": "Favoriten",
"Forget room": "Raum vergessen",
"Forgot your password?": "Passwort vergessen?",
- "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.": "Aus Sicherheitsgründen werden beim Ausloggen alle Ende-zu-Ende-Verschlüsselungsschlüssel von diesem Browser gelöscht. Wenn du in späteren Riot-Sitzungen die Konversationshistorie entschlüsseln möchtest, exportiere bitte deine Schlüssel zur sicheren Verwahrung.",
+ "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.": "Aus Sicherheitsgründen werden beim Ausloggen alle Ende-zu-Ende-Verschlüsselungs-Schlüssel in diesem Browser gelöscht. Wenn du in späteren Riot-Sitzungen die Konversationshistorie entschlüsseln möchtest, exportiere bitte deine Schlüssel zur sicheren Verwahrung.",
"For security, this session has been signed out. Please sign in again.": "Zur Sicherheit wurde diese Sitzung abgemeldet. Bitte melde dich erneut an.",
"Found a bug?": "Fehler gefunden?",
"Guests cannot join this room even if explicitly invited.": "Gäste können diesem Raum nicht beitreten auch wenn sie explizit eingeladen werden.",
@@ -161,7 +161,7 @@
"Notifications": "Benachrichtigungen",
" (not supported by this browser)": " (von diesem Browser nicht unterstützt)",
"": "",
- "No users have specific privileges in this room": "Keine Nutzer haben in diesem Raum besondere Berechtigungen",
+ "No users have specific privileges in this room": "Kein Benutzer hat in diesem Raum besondere Berechtigungen",
"olm version": "OLM-Version",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Sobald Verschlüsselung für einen Raum aktiviert wird, kann diese (aktuell noch) nicht wieder deaktiviert werden",
"Only people who have been invited": "Nur Personen die eingeladen wurden",
@@ -178,7 +178,7 @@
"Privileged Users": "Privilegierte Nutzer",
"Profile": "Profil",
"Refer a friend to Riot:": "Freunde zu Riot einladen:",
- "rejected": "abgeleht",
+ "rejected": "abgelehnt",
"Once you've followed the link it contains, click below": "Nachdem du dem Link gefolgt bist, klicke unten",
"rejected the invitation.": "lehnte die Einladung ab.",
"Reject invitation": "Einladung ablehnen",
@@ -237,7 +237,7 @@
"To redact messages": "Zum Nachrichten verbergen",
"Can't connect to homeserver - please check your connectivity and ensure your": "Die Verbindung mit dem Homeserver ist fehlgeschlagen. Bitte überprüfe deine Verbindung und stelle sicher, dass dein(e) ",
"tag as": "kennzeichne als",
- "To reset your password, enter the email address linked to your account": "Um dein Passwort zurückzusetzen, gebe deine E-Mail-Adresse, die mit deinem Account verbunden ist, ein",
+ "To reset your password, enter the email address linked to your account": "Um dein Passwort zurückzusetzen, gib bitte die mit deinem Account verknüpfte E-Mail-Adresse ein",
"To send messages": "Zum Nachrichten senden",
"turned on end-to-end encryption (algorithm": "aktivierte Ende-zu-Ende-Verschlüsselung (Algorithmus",
"Unable to add email address": "Unfähig die E-Mail-Adresse hinzuzufügen",
@@ -345,7 +345,7 @@
"Topic": "Thema",
"Make this room private": "Mache diesen Raum privat",
"Share message history with new users": "Teile Nachrichtenhistorie mit neuen Nutzern",
- "Encrypt room": "Entschlüssele Raum",
+ "Encrypt room": "Raum verschlüsseln",
"To send events of type": "Zum Senden von Ereignissen mit Typ",
"%(names)s and %(lastPerson)s are typing": "%(names)s und %(lastPerson)s schreiben",
"%(targetName)s accepted an invitation.": "%(targetName)s akzeptierte eine Einladung.",
@@ -393,7 +393,7 @@
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s schaltete Ende-zu-Ende-Verschlüsselung ein (Algorithmus: %(algorithm)s).",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s zog Bann für %(targetName)s zurück.",
"Usage": "Verwendung",
- "Use with caution": "Mit Vorsicht benutzen",
+ "Use with caution": "Mit Vorsicht zu verwenden",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s zog die Einladung für %(targetName)s zurück.",
"You need to be able to invite users to do that.": "Du musst in der Lage sein Nutzer einzuladen um dies zu tun.",
"You need to be logged in.": "Du musst angemeldet sein.",
@@ -564,7 +564,7 @@
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "Kann nicht zum Heimserver via HTTP verbinden, wenn eine HTTPS-Url in deiner Adresszeile steht. Nutzer HTTPS oder %(urlStart)s aktiviere unsichere Skripte %(urlEnd)s",
"changing room on a RoomView is not supported": "Das Ändern eines Raumes in einer RaumAnsicht wird nicht unterstützt",
"Click to mute audio": "Klicke um den Ton stumm zu stellen",
- "Click to mute video": "Klicke um das Video stumm zu stellen",
+ "Click to mute video": "Klicken, um das Video stummzuschalten",
"Command error": "Befehlsfehler",
"Decrypt %(text)s": "Entschlüssele %(text)s",
"Delete": "Lösche",
@@ -588,7 +588,7 @@
"Incorrect verification code": "Verifikationscode inkorrekt",
"Invalid alias format": "Ungültiges Alias-Format",
"Invalid address format": "Ungültiges Adressformat",
- "'%(alias)s' is not a valid format for an address": "'%(alias)s' ist kein valides Adressformat",
+ "'%(alias)s' is not a valid format for an address": "'%(alias)s' ist kein gültiges Adressformat",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' hat kein valides Aliasformat",
"Join Room": "Raum beitreten",
"Kick": "Kicke",
@@ -646,7 +646,7 @@
"Failed to toggle moderator status": "Umschalten des Moderatorstatus fehlgeschlagen",
"Enable encryption": "Verschlüsselung aktivieren",
"The main address for this room is": "Die Hauptadresse für diesen Raum ist",
- "Autoplay GIFs and videos": "Automatisch GIF's und Videos abspielen",
+ "Autoplay GIFs and videos": "GIF-Dateien und Videos automatisch abspielen",
"Don't send typing notifications": "Nicht senden, wenn ich tippe",
"Hide read receipts": "Verberge Lesebestätigungen",
"Never send encrypted messages to unverified devices in this room": "In diesem Raum keine verschlüsselten Nachrichten an unverifizierte Geräte senden",
From 8f88dcbf40a073b83b3040bbee1ae6142c424517 Mon Sep 17 00:00:00 2001
From: dtygel
Date: Tue, 30 May 2017 20:04:08 +0000
Subject: [PATCH 015/170] Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.7% (763 of 765 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/pt_BR/
---
src/i18n/strings/pt_BR.json | 74 +++++++++++++++++++++++++++++++++++--
1 file changed, 71 insertions(+), 3 deletions(-)
diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json
index 18b72fd0ec..ac0c7089ae 100644
--- a/src/i18n/strings/pt_BR.json
+++ b/src/i18n/strings/pt_BR.json
@@ -485,7 +485,7 @@
"sk": "Eslovaco",
"sl": "Esloveno",
"sq": "Albanês",
- "sr": "Sérvio (latino)",
+ "sr": "Sérvio",
"sv": "Suécia",
"th": "Tailandês",
"tn": "Tsuana",
@@ -543,7 +543,7 @@
"fr-lu": "Francês (Luxemburgo)",
"gd": "Galês (Escócia)",
"it-ch": "Italiano (Suíça)",
- "ko": "Coreano (Johab)",
+ "ko": "Coreano",
"mk": "Macedônio (República da Macedônia)",
"ro-mo": "Romano (Moldávia)",
"ru-mo": "Russo (Moldávia)",
@@ -746,5 +746,73 @@
"Failed to invite": "Falha ao enviar o convite",
"Failed to invite user": "Falha ao convidar a(o) usuária(o)",
"Failed to invite the following users to the %(roomName)s room:": "Falha ao convidar as(os) seguintes usuárias(os) para a sala %(roomName)s:",
- "Confirm Removal": "Confirmar a remoção"
+ "Confirm Removal": "Confirmar a remoção",
+ "Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Você tem certeza que quer apagar este evento? Note que se você apaga o nome de uma sala ou uma mudança de tópico, esta ação não poderá ser desfeita.",
+ "Unknown error": "Erro desconhecido",
+ "Incorrect password": "Senha incorreta",
+ "This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Isso tornará a sua conta permanentemente inusável. Você não será capaz de registrar novamente o mesmo ID de usuário.",
+ "This action is irreversible.": "Esta ação é irreversível.",
+ "To continue, please enter your password.": "Para continuar, por favor insira a sua senha.",
+ "To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "Para verificar que este dispositivo é confiável, por favor entre em contato com a(o) sua(seu) dona(o) usando outros meios, como por exemplo pessoalmente ou por uma chamada telefônica, e pergunte a esta pessoa se a chave que ela está vendo nas suas configurações de usuário para este dispositivo é igual a esta:",
+ "Device name": "Nome do dispositivo",
+ "Device key": "Chave do dispositivo",
+ "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Se a chave for a mesma, clique no botão \"verificar\" abaixo. Se não for a mesma, então alguma outra pessoa está interceptando este dispositivo e você provavelmente vai querer clicar no botão \"colocar na lista negra\".",
+ "In future this verification process will be more sophisticated.": "No futuro, este processo de verificação será mais sofisticado.",
+ "Verify device": "Verificar o dispositivo",
+ "I verify that the keys match": "Eu confirmo que as chaves são iguais",
+ "We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Encontramos um erro tentando restaurar sua sessão anterior. Se você continuar, terá que fazer login novamente, e o histórico da conversa criptografada se tornará ilegível.",
+ "Unable to restore session": "Não foi possível restaurar a sessão",
+ "If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Se você já usou antes uma versão mais recente do Riot, a sua sessão pode ser incompatível com esta versão. Feche esta janela e tente abrir com a versão mais recente.",
+ "Continue anyway": "Continuar de qualquer maneira",
+ "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "O seu nome público é como você aparecerá para as outras pessoas quando conversar nas salas. Qual nome público você deseja ter?",
+ "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Você está atualmente bloqueando dispositivos não verificados. Para enviar mensagens para estes dispositivos, você necessita antes verificá-los.",
+ "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.": "Nós recomendamos que você passe pelo processo de verificação para cada dispositivo para confirmar que eles pertencem às pessoas que efetivamente são suas donas, mas você pode reenviar a mensagem sem verificar isso, se assim o desejar.",
+ "\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contém dispositivos que você não viu antes.",
+ "Unknown devices": "Dispositivos desconhecidos",
+ "Unknown Address": "Endereço desconhecido",
+ "Unblacklist": "Tirar da lista de bloqueados",
+ "Blacklist": "Colocar na lista de bloqueados",
+ "Unverify": "Des-verificar",
+ "Verify...": "Verificar...",
+ "ex. @bob:example.com": "p.ex: @joao:exemplo.com",
+ "Add User": "Adicionar usuária(o)",
+ "This Home Server would like to make sure you are not a robot": "Este Servidor de Base gostaria de confirmar que você não é um robô",
+ "Sign in with CAS": "Assinar com CAS",
+ "Custom Server Options": "Opções para Servidor Personalizado",
+ "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Você pode usar as opções de servidor personalizado para entrar em outros servidores Matrix ao especificar uma URL de um Servidor de Base diferente.",
+ "This allows you to use this app with an existing Matrix account on a different home server.": "Isso permite que você use este aplicativo com uma conta Matrix existente em um servidor de base diferente.",
+ "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Você também pode definir um servidor de identidades personalizado, mas isso vai impedir a sua interação com outros usuários a partir do endereço de email.",
+ "Dismiss": "Descartar",
+ "Please check your email to continue registration.": "Por favor, verifique o seu e-mail para continuar o processo de registro.",
+ "Token incorrect": "Token incorreto",
+ "A text message has been sent to": "Uma mensagem de texto foi enviada para",
+ "Please enter the code it contains:": "Por favor, entre com o código que está na mensagem:",
+ "powered by Matrix": "rodando a partir do Matrix",
+ "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Se não especificar um endereço de e-mail, você não poderá redefinir sua senha. Tem certeza?",
+ "You are registering with %(SelectedTeamName)s": "Você está se registrando com %(SelectedTeamName)s",
+ "Default server": "Servidor padrão",
+ "Custom server": "Servidor personalizado",
+ "Home server URL": "URL do servidor de base",
+ "Identity server URL": "URL do servidor de identidades",
+ "What does this mean?": "O que isso significa?",
+ "Error decrypting audio": "Erro ao descriptografar o áudio",
+ "Error decrypting image": "Erro ao descriptografar a imagem",
+ "Image '%(Body)s' cannot be displayed.": "A imagem '%(Body)s' não pode ser exibida.",
+ "This image cannot be displayed.": "Esta imagem não pode ser exibida.",
+ "Error decrypting video": "Erro ao descriptografar o vídeo",
+ "Add an Integration": "Adicionar uma integração",
+ "Removed or unknown message type": "Mensagem removida ou de tipo desconhecido",
+ "Disable URL previews by default for participants in this room": "Desabilitar as pré-visualizações de links por padrão para participantes desta sala",
+ "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "As pré-visualizações estão %(globalDisableUrlPreview)s por padrão para integrantes desta sala.",
+ "URL Previews": "Pré-visualização de links",
+ "Enable URL previews for this room (affects only you)": "Habilitar pré-visualizações de links para esta sala (afeta somente a você)",
+ "Drop file here to upload": "Arraste um arquivo aqui para enviar",
+ " (unsupported)": " (não suportado)",
+ "Ongoing conference call%(supportedText)s. %(joinText)s": "Conferência%(supportedText)s em andamento. %(joinText)s",
+ "Online": "Online",
+ "Idle": "Ocioso",
+ "Offline": "Offline",
+ "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "",
+ "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Este processo faz com que você possa importar as chaves de criptografia que tinha previamente exportado de outro cliente Matrix. Você poderá então descriptografar todas as mensagens que o outro cliente pôde criptografar.",
+ "You are about to be taken to a third-party site so you can authenticate your account for use with {integrationsUrl}. Do you wish to continue?": ""
}
From 12f923bc81c8ae95d790b65b665bc232f35661b2 Mon Sep 17 00:00:00 2001
From: daniel tygel
Date: Tue, 30 May 2017 18:56:52 -0300
Subject: [PATCH 016/170] add new string to translate
---
src/components/views/rooms/TopUnreadMessagesBar.js | 2 +-
src/i18n/strings/en_EN.json | 1 +
src/i18n/strings/pt_BR.json | 1 +
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/components/views/rooms/TopUnreadMessagesBar.js b/src/components/views/rooms/TopUnreadMessagesBar.js
index 6cb6475a8f..45aba66633 100644
--- a/src/components/views/rooms/TopUnreadMessagesBar.js
+++ b/src/components/views/rooms/TopUnreadMessagesBar.js
@@ -37,7 +37,7 @@ module.exports = React.createClass({
- Jump to first unread message.
+ { _t("Jump to first unread message.") }
Date: Tue, 30 May 2017 19:01:23 -0300
Subject: [PATCH 017/170] add string to translate
---
src/components/views/rooms/EventTile.js | 2 +-
src/i18n/strings/en_EN.json | 1 +
src/i18n/strings/pt_BR.json | 1 +
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/components/views/rooms/EventTile.js b/src/components/views/rooms/EventTile.js
index 6db42a4b9d..d9a6925793 100644
--- a/src/components/views/rooms/EventTile.js
+++ b/src/components/views/rooms/EventTile.js
@@ -481,7 +481,7 @@ module.exports = WithMatrixClient(React.createClass({
}
const editButton = (
-
+
);
let e2e;
// cosmetic padlocks:
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 73774c52c6..ce2a630bc0 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -677,6 +677,7 @@
"%(oneUser)schanged their avatar": "%(oneUser)schanged their avatar",
"Analytics": "Analytics",
"Opt out of analytics": "Opt out of analytics",
+ "Options": "Options",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot collects anonymous analytics to allow us to improve the application.",
"Please select the destination room for this message": "Please select the destination room for this message",
"Passphrases must match": "Passphrases must match",
diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json
index 49ef774dac..9a79219a48 100644
--- a/src/i18n/strings/pt_BR.json
+++ b/src/i18n/strings/pt_BR.json
@@ -729,6 +729,7 @@
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s apagou o nome da sala.",
"Analytics": "Análise",
"Opt out of analytics": "Sair da ferramenta de análise",
+ "Options": "Opções",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot coleta informações anônimas de uso para nos permitir melhorar o sistema.",
"Passphrases must match": "As senhas têm que ser iguais",
"Passphrase must not be empty": "A senha não pode estar vazia",
From 0d930c0553562318fb9fb99cc6a7c4dfbb445f46 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Tue, 30 May 2017 23:46:51 +0100
Subject: [PATCH 018/170] change wording and i18n it
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
src/components/structures/UserSettings.js | 2 +-
src/i18n/strings/en_EN.json | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/components/structures/UserSettings.js b/src/components/structures/UserSettings.js
index 020c3e49b0..39c2c0f145 100644
--- a/src/components/structures/UserSettings.js
+++ b/src/components/structures/UserSettings.js
@@ -841,7 +841,7 @@ module.exports = React.createClass({
const {ipcRenderer} = require('electron');
return
-
Electron Settings
+
{ _t('Desktop specific') }
Date: Tue, 30 May 2017 23:18:52 +0000
Subject: [PATCH 019/170] Translated using Weblate (German)
Currently translated at 100.0% (766 of 766 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/de/
---
src/i18n/strings/de_DE.json | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json
index b11b082a0d..3e2166d632 100644
--- a/src/i18n/strings/de_DE.json
+++ b/src/i18n/strings/de_DE.json
@@ -757,7 +757,7 @@
"Unable to restore session": "Sitzungswiederherstellung fehlgeschlagen",
"Continue anyway": "Fahre trotzdem fort",
"Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Dein Anzeigename ist dein Name der anderen gezeigt wird, wenn du in Räumen sprichst. Wie möchtest du ihn haben?",
- "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Do blockst aktuell unverifizierte Geräte. Um Nachrichten an diese Geräte zu senden must du sie verifizieren",
+ "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Do blockst aktuell unverifizierte Geräte. Um Nachrichten an diese Geräte zu senden musst du sie verifizieren.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" enthält Geräte die du noch nicht gesehen hast.",
"Unknown devices": "Unbekannte Geräte",
"Unknown Address": "Unbekannte Adresse",
@@ -819,5 +819,6 @@
"Idle": "inaktiv",
"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.": "Wir empfehlen dir für jedes Gerät durch den Verifizierungsprozess zu gehen um zu bestätigen, dass sie ihrem legitimierten Besitzer gehören, aber du kannst die Nachrichten ohne Verifizierung erneut senden, wenn du es vorziehst.",
"Ongoing conference call%(supportedText)s. %(joinText)s": "Laufendes Konferenzgespräch%(supportedText)s. %(joinText)s",
- "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Du wirst jetzt auf eine Drittanbieter-Website weitergeleitet, damit du dein Konto authentifizieren kannst für die Verwendung mit %(integrationsUrl)s. Möchtest du fortfahren?"
+ "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?": "Du wirst jetzt auf eine Drittanbieter-Website weitergeleitet, damit du dein Konto authentifizieren kannst für die Verwendung mit %(integrationsUrl)s. Möchtest du fortfahren?",
+ "Disable URL previews for this room (affects only you)": "Deaktiviere die URL-Vorschau für diesen Raum (betrifft nur dich)"
}
From c1cdf79036995f534dccfba50a544645b7552db2 Mon Sep 17 00:00:00 2001
From: Amandine
Date: Tue, 30 May 2017 22:59:24 +0000
Subject: [PATCH 020/170] Translated using Weblate (French)
Currently translated at 98.0% (751 of 766 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/fr/
---
src/i18n/strings/fr.json | 50 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 49 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json
index e9fabd7fd8..3454148f07 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -705,5 +705,53 @@
"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.",
- "To continue, please enter your password.": "Pour continuer, merci d'entrer votre mot de passe."
+ "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",
+ "Device key": "Clé de l'appareil",
+ "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Si les clés correspondent, cliquer sur le bouton ’Vérifier’ ci-dessous. Si non, alors quelqu’un d’autre est en train d’intercepter cet appareil et vous devriez certainement cliquer sur le bouton ’Ajouter à la liste noire’ à la place.",
+ "In future this verification process will be more sophisticated.": "À l’avenir ce processus de vérification sera simplifié et plus sophistiqué.",
+ "Verify device": "Vérifier cet appareil",
+ "I verify that the keys match": "J’ai vérifié que les clés correspondait",
+ "We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Nous avons rencontré une erreur en essayant de rétablir votre session précédente. Si vous continuez, vous devrez vous identifier à nouveau et l’historique encrypté de vos conversations sera illisible.",
+ "Unable to restore session": "Impossible de restaurer la session",
+ "If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Si vous avez utilisé une version plus récente de Riot précédemment, votre session risque d’être incompatible avec cette version. Fermez cette fenêtre et retournez à la version plus récente.",
+ "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.",
+ "\"%(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",
+ "Unblacklist": "Supprimer de la liste noire",
+ "Blacklist": "Ajouter à la liste noire",
+ "Unverify": "Non-vérifié",
+ "Verify...": "Vérifier...",
+ "ex. @bob:example.com": "ex. @bob:exemple.com",
+ "Add User": "Ajouter l'utilisateur",
+ "This Home Server would like to make sure you are not a robot": "Ce homeserver veut vérifier que vous n’êtes pas un robot",
+ "Sign in with CAS": "S'identifier avec CAS",
+ "Custom Server Options": "Options de serveur personnalisées",
+ "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Vous pouvez utiliser les options de serveur personnalisées pour vous identifier auprès d’un autre serveur Matrix en spécifiant l’URL d’un homeserver différent.",
+ "This allows you to use this app with an existing Matrix account on a different home server.": "Cela vous permet d’utiliser l’application avec un compte Matrix existant sur un homeserver différent.",
+ "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Vous pouvez également configurer un serveur d’identité différent mais cela risque entre autres d’empêcher les interactions par e-mail avec les autres utilisateurs.",
+ "Dismiss": "Ignorer",
+ "Please check your email to continue registration.": "Merci de vérifier votre e-mail afin de continuer votre inscription.",
+ "Token incorrect": "Jeton incorrect",
+ "A text message has been sent to": "Un message texte a été envoyé au",
+ "Please enter the code it contains:": "Merci d'entre le code qu'il contient :",
+ "powered by Matrix": "propulsé par Matrix",
+ "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Si vous n’entrez pas d’adresse e-mail, vous ne pourrez pas réinitialiser votre mot de passe. Êtes vous sûr ?",
+ "You are registering with %(SelectedTeamName)s": "Vous vous enregistrez auprès de %(SelectedTeamName)s",
+ "Default server": "Serveur par défaut",
+ "Custom server": "Serveur personnalisé",
+ "Home server URL": "URL du homeserver",
+ "Identity server URL": "URL du serveur d’identité",
+ "What does this mean?": "Qu’est ce que cela signifie ?",
+ "Error decrypting audio": "Erreur lors de la décryption de l’audio",
+ "Error decrypting image": "Erreur lors de la décryption de l’image",
+ "Image '%(Body)s' cannot be displayed.": "L'image '%(Body)s' ne peut être affichée.",
+ "This image cannot be displayed.": "Cette image ne peut être affichée.",
+ "Error decrypting video": "Erreur lors de la décryption de la vidéo",
+ "Add an Integration": "Ajouter une intégration"
}
From a5fa479ac51595b4e11db36772d321e63bcc60c4 Mon Sep 17 00:00:00 2001
From: Krombel
Date: Tue, 30 May 2017 23:22:28 +0000
Subject: [PATCH 021/170] Translated using Weblate (German)
Currently translated at 100.0% (768 of 768 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/de/
---
src/i18n/strings/de_DE.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json
index 3e2166d632..63222c53b6 100644
--- a/src/i18n/strings/de_DE.json
+++ b/src/i18n/strings/de_DE.json
@@ -820,5 +820,7 @@
"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.": "Wir empfehlen dir für jedes Gerät durch den Verifizierungsprozess zu gehen um zu bestätigen, dass sie ihrem legitimierten Besitzer gehören, aber du kannst die Nachrichten ohne Verifizierung erneut senden, wenn du es vorziehst.",
"Ongoing conference call%(supportedText)s. %(joinText)s": "Laufendes Konferenzgespräch%(supportedText)s. %(joinText)s",
"You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Du wirst jetzt auf eine Drittanbieter-Website weitergeleitet, damit du dein Konto authentifizieren kannst für die Verwendung mit %(integrationsUrl)s. Möchtest du fortfahren?",
- "Disable URL previews for this room (affects only you)": "Deaktiviere die URL-Vorschau für diesen Raum (betrifft nur dich)"
+ "Disable URL previews for this room (affects only you)": "Deaktiviere die URL-Vorschau für diesen Raum (betrifft nur dich)",
+ "Start automatically after system login": "Starte automatisch nach System-Login",
+ "Desktop specific": "Desktopspezifisch"
}
From 0c918f242fe4a08dcabdd81290c6f536f7b00769 Mon Sep 17 00:00:00 2001
From: Amandine
Date: Tue, 30 May 2017 23:47:42 +0000
Subject: [PATCH 022/170] Translated using Weblate (French)
Currently translated at 97.7% (751 of 768 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/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 3454148f07..b8c844bd27 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -678,7 +678,7 @@
"Please select the destination room for this message": "Merci de sélectionner un salon de destination pour ce message",
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s a supprimé le nom du salon.",
"Analytics": "Outils d'analyse",
- "Opt out of analytics": "Refus de participation",
+ "Opt out of analytics": "Refuser de participer",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot recueille des données anonymes qui nous permettent d’analyser et améliorer l’application.",
"Passphrases must match": "Les phrases secrètes doivent être identiques",
"Passphrase must not be empty": "La phrase secrète ne doit pas être vide",
From a72fe7b2f59e730927109dbfd177a4bde3538be3 Mon Sep 17 00:00:00 2001
From: Krombel
Date: Tue, 30 May 2017 23:53:12 +0000
Subject: [PATCH 023/170] Translated using Weblate (German)
Currently translated at 100.0% (768 of 768 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/de/
---
src/i18n/strings/de_DE.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json
index 63222c53b6..b0ae13a5f8 100644
--- a/src/i18n/strings/de_DE.json
+++ b/src/i18n/strings/de_DE.json
@@ -715,7 +715,7 @@
"olm version:": "Version von olm:",
"Passwords can't be empty": "Passwörter dürfen nicht leer sein",
"Registration required": "Registrierung benötigt",
- "Report it": "Melde es",
+ "Report it": "Melde ihn",
"riot-web version:": "Version von riot-web:",
"Scroll to bottom of page": "Zum Ende der Seite springen",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Zeige Zeitstempel im 12-Stunden-Format (z. B. 2:30pm)",
From 1ab52652f7440f868d2d650dfc0d1327574bf6ce Mon Sep 17 00:00:00 2001
From: Kegan Dougal
Date: Wed, 31 May 2017 09:29:43 +0100
Subject: [PATCH 024/170] Strip out sanitizeHtml stuff as it's not required
As per https://github.com/matrix-org/matrix-react-sdk/pull/968#issuecomment-304946341
---
src/languageHandler.js | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/src/languageHandler.js b/src/languageHandler.js
index 961838b770..e447a5678b 100644
--- a/src/languageHandler.js
+++ b/src/languageHandler.js
@@ -83,14 +83,8 @@ export function _tJsx(jsxText, patterns, subs) {
}
}
- // tJsxText may be unsafe if malicious translators try to inject HTML.
- // Run this through sanitize-html and bail if the output isn't identical
+ // The translation returns text so there's no XSS vector here (no unsafe HTML, no code execution)
const tJsxText = _t(jsxText);
- const sanitized = sanitizeHtml(tJsxText, { allowedTags: sanitizeHtml.defaults.allowedTags.concat([ 'span' ]) });
- if (tJsxText !== sanitized) {
- throw new Error(`_tJsx: translator error. untrusted HTML supplied. '${tJsxText}' != '${sanitized}'`);
- }
-
let output = [tJsxText];
for (let i = 0; i < patterns.length; i++) {
// convert the last element in 'output' into 3 elements (pre-text, sub function, post-text).
From 117e6b8fc3b16244c4e9fee8e9cb94a4d5492d44 Mon Sep 17 00:00:00 2001
From: Jean GB
Date: Wed, 31 May 2017 09:46:43 +0000
Subject: [PATCH 025/170] Translated using Weblate (French)
Currently translated at 99.2% (762 of 768 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/fr/
---
src/i18n/strings/fr.json | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json
index b8c844bd27..3d85aefbc7 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -753,5 +753,16 @@
"Image '%(Body)s' cannot be displayed.": "L'image '%(Body)s' ne peut être affichée.",
"This image cannot be displayed.": "Cette image ne peut être affichée.",
"Error decrypting video": "Erreur lors de la décryption de la vidéo",
- "Add an Integration": "Ajouter une intégration"
+ "Add an Integration": "Ajouter une intégration",
+ "URL Previews": "Aperçus d'URL",
+ "Disable URL previews by default for participants in this room": "Désactiver les aperçus d'URL par défaut pour les participants de ce salon",
+ "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "Les aperçus d'URL sont %(globalDisableUrlPreview)s par défaut pour les participants de ce salon.",
+ "Enable URL previews for this room (affects only you)": "Activer les aperçus d'URL pour ce salon (n'affecte que vous)",
+ "Drop file here to upload": "Déposer le fichier ici pour téléchargement",
+ " (unsupported)": " (non supporté)",
+ "Ongoing conference call%(supportedText)s. %(joinText)s": "Appel conférence en cours%(supportedText)s. %(joinText)s",
+ "Online": "En ligne",
+ "Offline": "Hors ligne",
+ "Disable URL previews for this room (affects only you)": "Désactiver les aperçus d'URL pour ce salon (n'affecte que vous)",
+ "Desktop specific": "Spécifique à la version bureau"
}
From dbf5ec632e7800878506073ec9294792dab3c28a Mon Sep 17 00:00:00 2001
From: Bamstam
Date: Wed, 31 May 2017 08:50:24 +0000
Subject: [PATCH 026/170] Translated using Weblate (German)
Currently translated at 100.0% (768 of 768 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/de/
---
src/i18n/strings/de_DE.json | 46 ++++++++++++++++++-------------------
1 file changed, 23 insertions(+), 23 deletions(-)
diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json
index b0ae13a5f8..89e7f97515 100644
--- a/src/i18n/strings/de_DE.json
+++ b/src/i18n/strings/de_DE.json
@@ -16,7 +16,7 @@
"Blacklisted": "Blockiert",
"verified": "verifiziert",
"Name": "Name",
- "Device ID": "Geräte ID",
+ "Device ID": "Geräte-ID",
"Verification": "Verifizierung",
"Ed25519 fingerprint": "Ed25519 Fingerprint",
"User ID": "Benutzer-ID",
@@ -38,7 +38,7 @@
"Kicks user with given id": "Kickt Benutzer mit angegebener ID",
"Changes your display nickname": "Ändert deinen angezeigten Nicknamen",
"Change Password": "Passwort ändern",
- "Searches DuckDuckGo for results": "Suche in DuckDuckGo nach Ergebnissen",
+ "Searches DuckDuckGo for results": "Verwendet DuckDuckGo für Suchergebnisse",
"Commands": "Kommandos",
"Emoji": "Smileys",
"Sorry, this homeserver is using a login which is not recognised ": "Entschuldigung, dieser Homeserver nutzt eine Anmeldetechnik, die nicht bekannt ist ",
@@ -79,9 +79,9 @@
"Confirm your new password": "Bestätige dein neues Passwort",
"Continue": "Fortfahren",
"Create an account": "Erstelle einen Account",
- "Create Room": "Erstelle Raum",
+ "Create Room": "Raum erstellen",
"Cryptography": "Kryptografie",
- "Deactivate Account": "Deaktiviere Account",
+ "Deactivate Account": "Account deaktivieren",
"Deactivate my account": "Deaktiviere meinen Account",
"decline": "Ablehnen",
"Devices will not yet be able to decrypt history from before they joined the room": "Geräte werden nicht in der Lage sein, die Historie vor dem Beitritt in den Raum zu entschlüsseln",
@@ -102,7 +102,7 @@
"all room members": "Alle Raum-Mitglieder",
"all room members, from the point they are invited": "Alle Raum-Mitglieder, ab dem Zeitpunkt, an dem sie eingeladen werden",
"answered the call.": "beantwortete den Anruf.",
- "Can't load user settings": "Kann Nutzereinstellungen nicht laden",
+ "Can't load user settings": "Benutzereinstellungen können nicht geladen werden",
"changed name": "änderte Namen",
"changed the power level of": "änderte Berechtigungslevel von",
"Clear Cache": "Leere Cache",
@@ -123,7 +123,7 @@
"Forget room": "Raum vergessen",
"Forgot your password?": "Passwort vergessen?",
"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.": "Aus Sicherheitsgründen werden beim Ausloggen alle Ende-zu-Ende-Verschlüsselungs-Schlüssel in diesem Browser gelöscht. Wenn du in späteren Riot-Sitzungen die Konversationshistorie entschlüsseln möchtest, exportiere bitte deine Schlüssel zur sicheren Verwahrung.",
- "For security, this session has been signed out. Please sign in again.": "Zur Sicherheit wurde diese Sitzung abgemeldet. Bitte melde dich erneut an.",
+ "For security, this session has been signed out. Please sign in again.": "Aus Sicherheitsgründen wurde diese Sitzung beendet. Bitte melde dich erneut an.",
"Found a bug?": "Fehler gefunden?",
"Guests cannot join this room even if explicitly invited.": "Gäste können diesem Raum nicht beitreten auch wenn sie explizit eingeladen werden.",
"Guests can't set avatars. Please register.": "Gäste können keine Avatare setzen. Bitte registriere dich.",
@@ -179,7 +179,7 @@
"Profile": "Profil",
"Refer a friend to Riot:": "Freunde zu Riot einladen:",
"rejected": "abgelehnt",
- "Once you've followed the link it contains, click below": "Nachdem du dem Link gefolgt bist, klicke unten",
+ "Once you've followed the link it contains, click below": "Nachdem du dem darin enthaltenen Link gefolgt bist, klicke unten",
"rejected the invitation.": "lehnte die Einladung ab.",
"Reject invitation": "Einladung ablehnen",
"Remove Contact Information?": "Lösche Kontakt-Informationen?",
@@ -188,7 +188,7 @@
"requested a VoIP conference": "hat eine VoIP-Konferenz angefordert",
"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.": "Eine Passwortänderung sorgt aktuell dafür, dass alle Ende-zu-Ende-Schlüssel von allen Geräten zurückgesetzt werden. Dadurch wird die verschlüsselte Chat-Historie unlesbar, es sei denn Sie exportieren vorher Ihre Raum-Schlüssel und importieren sie nachher wieder. In Zukunft wird dies verbessert.",
"restore": "Zum zurücksetzen",
- "Return to login screen": "Zur Anmeldung zurückkehren",
+ "Return to login screen": "Zur Anmeldemaske zurückkehren",
"Room Colour": "Raumfarbe",
"Room name (optional)": "Raumname (optional)",
"Scroll to unread messages": "Scrolle zu ungelesenen Nachrichten",
@@ -208,7 +208,7 @@
"since they were invited": "seitdem sie eingeladen wurden",
"Someone": "Jemand",
"Start a chat": "Starte einen Chat",
- "Start Chat": "Starte Chat",
+ "Start Chat": "Chat beginnen",
"Success": "Erfolg",
"tag direct chat": "Zum kennzeichnen als direkten Chat",
"The default role for new room members is": "Die Standard-Rolle für neue Raum-Mitglieder ist",
@@ -224,13 +224,13 @@
"To ban users": "Zum Nutzer bannen",
"To configure the room": "Zum Raum konfigurieren",
"To invite users into the room": "Zum Nutzer in den Raum einladen",
- "to join the discussion": "Zum mitdiskutieren",
- "To kick users": "Zum Nutzer kicken",
+ "to join the discussion": "um an der Diskussion teilzunehmen",
+ "To kick users": "Um Nutzer zu entfernen",
"Admin": "Administrator",
"Server may be unavailable, overloaded, or you hit a bug": "Server könnte nicht verfügbar oder überlastet sein oder du bist auf einen Fehler gestoßen",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar": "Verbindung zum Homeserver ist über HTTP nicht möglich, wenn HTTPS in deiner Browserleiste steht",
"Could not connect to the integration server": "Konnte keine Verbindung zum Integrations-Server herstellen",
- "Disable inline URL previews by default": "Deaktiviere URL-Vorschau im Chat standardmäßig",
+ "Disable inline URL previews by default": "URL-Vorschau im Chat standardmäßig deaktivieren",
"Guests can't use labs features. Please register.": "Gäste können keine Labor-Funktionen nutzen. Bitte registrieren.",
"Labs": "Labor",
"Show panel": "Zeige Panel",
@@ -261,7 +261,7 @@
"VoIP conference finished.": "VoIP-Konferenz beendet.",
"VoIP conference started.": "VoIP-Konferenz gestartet.",
"(warning: cannot be disabled again!)": "(Warnung: Kann nicht wieder deaktiviert werden!)",
- "was banned": "wurde gebannt",
+ "was banned": "wurde aus dem Raum verbannt",
"was invited": "wurde eingeladen",
"was kicked": "wurde gekickt",
"was unbanned": "wurde entbannt",
@@ -353,7 +353,7 @@
"%(names)s and one other are typing": "%(names)s und eine weitere Person tippen",
"%(names)s and %(count)s others are typing": "%(names)s und %(count)s weitere Personen tippen",
"%(senderName)s answered the call.": "%(senderName)s beantwortete den Anruf.",
- "%(senderName)s banned %(targetName)s.": "%(senderName)s bannte %(targetName)s.",
+ "%(senderName)s banned %(targetName)s.": "%(senderName)s hat %(targetName)s aus dem Raum verbannt.",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s änderte den Anzeigenamen von %(oldDisplayName)s zu %(displayName)s.",
"%(senderName)s changed their profile picture.": "%(senderName)s änderte das Profilbild.",
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s änderte das Berechtigungslevel von %(powerLevelDiffText)s.",
@@ -474,7 +474,7 @@
"es-ec": "Spanisch (Ecuador)",
"es-gt": "Spanisch (Guatemala)",
"es-hn": "Spanisch (Honduras)",
- "es-mx": "Spanisch (Mexico)",
+ "es-mx": "Spanisch (Mexiko)",
"es-ni": "Spanisch (Nicaragua)",
"es-pa": "Spanisch (Panama)",
"es-pe": "Spanisch (Peru)",
@@ -514,7 +514,7 @@
"pl": "Polnisch",
"pt": "Portugiesisch",
"rm": "Rätoromanisch",
- "ro-mo": "Rumänisch (Republik von Moldavien)",
+ "ro-mo": "Rumänisch (Republik Moldau/Moldawien)",
"ro": "Romanian",
"ru-mo": "Russisch",
"sb": "Sorbisch",
@@ -576,7 +576,7 @@
"Failed to ban user": "Bannen des Nutzers fehlgeschlagen",
"Failed to change power level": "Ändern des Berechtigungslevels fehlgeschlagen",
"Failed to delete device": "Löschen des Geräts fehlgeschlagen",
- "Failed to join room": "Raumbeitritt fehlgeschlagen",
+ "Failed to join room": "Betreten des Raumes ist fehlgeschlagen",
"Failed to kick": "Kicken fehlgeschlagen",
"Failed to mute user": "Nutzer lautlos zu stellen fehlgeschlagen",
"Failed to reject invite": "Einladung abzulehnen fehlgeschlagen",
@@ -585,7 +585,7 @@
"Fill screen": "Fülle Bildschirm",
"Guest users can't upload files. Please register to upload": "Gäste können keine Dateien hochladen. Bitte zunächst registrieren",
"Hide Text Formatting Toolbar": "Verberge Text-Formatierungs-Toolbar",
- "Incorrect verification code": "Verifikationscode inkorrekt",
+ "Incorrect verification code": "Falscher Verifizierungsscode",
"Invalid alias format": "Ungültiges Alias-Format",
"Invalid address format": "Ungültiges Adressformat",
"'%(alias)s' is not a valid format for an address": "'%(alias)s' ist kein gültiges Adressformat",
@@ -671,7 +671,7 @@
"%(severalUsers)sleft and rejoined": "%(severalUsers)s gingen und traten erneut bei",
"%(oneUser)sleft left and rejoined": "%(oneUser)sging und trat erneut bei",
"%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)s lehnten %(repeats)s mal ihre Einladung ab",
- "%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)s lehnte seine/ihre Einladung %(repeats)s mal ab",
+ "%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)shat die Einladung %(repeats)s mal abgelehnt",
"%(severalUsers)srejected their invitations": "%(severalUsers)slehnten ihre Einladung ab",
"%(oneUser)srejected their invitation": "%(oneUser)slehnte seine/ihre Einladung ab",
"%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)szogen ihre Einladungen %(repeats)s mal zurück",
@@ -713,7 +713,7 @@
"matrix-react-sdk version:": "Version von matrix-react-sdk:",
"New passwords don't match": "Neue Passwörter nicht gleich",
"olm version:": "Version von olm:",
- "Passwords can't be empty": "Passwörter dürfen nicht leer sein",
+ "Passwords can't be empty": "Passwortfelder dürfen nicht leer sein",
"Registration required": "Registrierung benötigt",
"Report it": "Melde ihn",
"riot-web version:": "Version von riot-web:",
@@ -756,7 +756,7 @@
"I verify that the keys match": "Ich bestätige, dass die Schlüssel passen",
"Unable to restore session": "Sitzungswiederherstellung fehlgeschlagen",
"Continue anyway": "Fahre trotzdem fort",
- "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Dein Anzeigename ist dein Name der anderen gezeigt wird, wenn du in Räumen sprichst. Wie möchtest du ihn haben?",
+ "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Dein Anzeigename ist der Name, der anderen Nutzern angezeigt wird, wenn du in Räumen sprichst. Welchen Anzeigenamen möchtest du wählen?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Do blockst aktuell unverifizierte Geräte. Um Nachrichten an diese Geräte zu senden musst du sie verifizieren.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" enthält Geräte die du noch nicht gesehen hast.",
"Unknown devices": "Unbekannte Geräte",
@@ -795,7 +795,7 @@
"The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "Die exportierte Datei erlaubt jedem, der diese lesen kann, jede verschlüsselte Nachricht zu entschlüsseln die du sehen kannst. Du solltest sie also sicher verwahren. Um dabei zu helfen, solltest du unten eine Passphrase eingeben, die dazu verwendet wird, die exportierten Daten zu verschlüsseln. Anschließend ist es nur möglich die Daten zu lesen, wenn dieselbe Passphrase verwendet wird.",
"Analytics": "Analyse",
"Opt out of analytics": "Zustimmung zur Analyse verweigern",
- "Riot collects anonymous analytics to allow us to improve the application.": "Riot sammeln anonyme Daten damit wir die Anwendung verbessern können.",
+ "Riot collects anonymous analytics to allow us to improve the application.": "Riot sammelt anonymisierte Analysedaten, um die Anwendung kontinuierlich verbessern zu können.",
"Add an Integration": "Eine Integration hinzufügen",
"Removed or unknown message type": "Gelöschte oder unbekannter Nachrichten-Typ",
"Disable URL previews by default for participants in this room": "Deaktiviere standardmäßig die URL-Vorschau für Teilnehmer dieses Raumes",
@@ -809,7 +809,7 @@
"This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Dies wird dein Konto permanent unbenutzbar machen. Du wirst dich nicht mit derselben Nutzer-ID erneut registrieren können.",
"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:": "Um zu bestätigen, dass diesem Gerät vertraut werden kann, kontaktiere bitte den Eigentümer über einen anderen Weg (z.B. Telefon-Anruf) und frage, ob der Schlüssel, den sie in den Nutzer-Einstellungen für dieses Gerät sehen dem folgenden gleicht:",
"If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Wenn er passt, betätige den Bestätigen-Button unten. Wenn nicht, fängt jemand anderes dieses Gerät ab und du möchtest wahrscheinlich lieber den Blacklist-Button betätigen.",
- "We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Wir sind auf einen Fehler gestoßen während wir deine vorherige Sitzung wiederherstellen wollten. Wenn du fortfährst, wirst du dich erneut anmelden müssen und die verschlüsselte Chat-Historie wir unlesbar sein.",
+ "We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Bei der Wiederherstellung deiner vorherigen Sitzung ist ein Fehler aufgetreten. Um fortzufahren, musst du dich erneut anmelden. Eine zuvor verschlüsselte Chat-Historie wird in der Folge nicht mehr lesbar sein.",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Wenn du vorher eine aktuellere Version von Riot verwendet hast, ist deine Sitzung wohlmöglich inkompatibel mit dieser Version. Schließe dieses Fenster und kehre zur aktuelleren Version zurück.",
"Blacklist": "Blockieren",
"Unblacklist": "Entblockieren",
From 3b7b1d620653cee740e4f95148a8f8596dfbfdb9 Mon Sep 17 00:00:00 2001
From: dtygel
Date: Wed, 31 May 2017 12:02:08 +0000
Subject: [PATCH 027/170] Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (768 of 768 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/pt_BR/
---
src/i18n/strings/pt_BR.json | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json
index ac0c7089ae..cbd44fffd8 100644
--- a/src/i18n/strings/pt_BR.json
+++ b/src/i18n/strings/pt_BR.json
@@ -812,7 +812,11 @@
"Online": "Online",
"Idle": "Ocioso",
"Offline": "Offline",
- "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "",
+ "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "O arquivo exportado irá permitir a qualquer pessoa que o acesse a descriptografar qualquer uma das mensagens criptografadas que você veja, portanto seja bastante cuidadosa(o) em manter este arquivo seguro. Para deixar este arquivo mais protegido, recomendamos que você insira uma senha abaixo, que será usada para criptografar o arquivo. Só será possível importar os dados usando exatamente a mesma senha.",
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Este processo faz com que você possa importar as chaves de criptografia que tinha previamente exportado de outro cliente Matrix. Você poderá então descriptografar todas as mensagens que o outro cliente pôde criptografar.",
- "You are about to be taken to a third-party site so you can authenticate your account for use with {integrationsUrl}. Do you wish to continue?": ""
+ "You are about to be taken to a third-party site so you can authenticate your account for use with {integrationsUrl}. Do you wish to continue?": "",
+ "Start automatically after system login": "Iniciar automaticamente ao iniciar o sistema",
+ "Desktop specific": "Específico para o app de computadores desktop",
+ "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?": "Você será levado agora a um site de terceiros para poder autenticar a sua conta para uso com o serviço %(integrationsUrl)s. Você quer continuar?",
+ "Disable URL previews for this room (affects only you)": "Desabilitar as pré-visualizações de sites para esta sala (afeta apenas a você)"
}
From 75d2b2319d387eb348563a3e42752c93f395ccd0 Mon Sep 17 00:00:00 2001
From: daniel tygel
Date: Wed, 31 May 2017 09:10:19 -0300
Subject: [PATCH 028/170] translate directly in pt_BR.json
---
src/i18n/strings/pt_BR.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json
index 220bd7ade5..331fda1947 100644
--- a/src/i18n/strings/pt_BR.json
+++ b/src/i18n/strings/pt_BR.json
@@ -605,7 +605,7 @@
"'%(alias)s' is not a valid format for an address": "'%(alias)s' não é um formato válido para um endereço",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' não é um formato válido para um alias",
"Join Room": "Ingressar na sala",
- "Jump to first unread message.": "Jump to first unread message.",
+ "Jump to first unread message.": "Ir diretamente para a primeira das mensagens não lidas.",
"Kick": "Remover",
"Level": "Nível",
"Local addresses for this room:": "Endereço local desta sala:",
From 2d73f094ff71413698771e9eb0707083f258801f Mon Sep 17 00:00:00 2001
From: Richard van der Hoff
Date: Wed, 31 May 2017 15:09:09 +0100
Subject: [PATCH 029/170] Delint MatrixChat, again (#979)
grrr.
---
src/components/structures/MatrixChat.js | 60 ++++++++++++-------------
1 file changed, 30 insertions(+), 30 deletions(-)
diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js
index 1da4b9d988..64b5354eda 100644
--- a/src/components/structures/MatrixChat.js
+++ b/src/components/structures/MatrixChat.js
@@ -396,7 +396,7 @@ module.exports = React.createClass({
}, (err) => {
modal.close();
Modal.createDialog(ErrorDialog, {
- title: _t('Failed to reject invitation'),
+ title: _t('Failed to reject invitation'),
description: err.toString(),
});
});
@@ -445,8 +445,8 @@ module.exports = React.createClass({
title: _t('Create Room'),
description: _t('Room name (optional)'),
button: _t('Create Room'),
- onFinished: (should_create, name) => {
- if (should_create) {
+ onFinished: (shouldCreate, name) => {
+ if (shouldCreate) {
const createOpts = {};
if (name) createOpts.name = name;
createRoom({createOpts}).done();
@@ -579,44 +579,44 @@ module.exports = React.createClass({
// switch view to the given room
//
- // @param {Object} room_info Object containing data about the room to be joined
- // @param {string=} room_info.room_id ID of the room to join. One of room_id or room_alias must be given.
- // @param {string=} room_info.room_alias Alias of the room to join. One of room_id or room_alias must be given.
- // @param {boolean=} room_info.auto_join If true, automatically attempt to join the room if not already a member.
- // @param {boolean=} room_info.show_settings Makes RoomView show the room settings dialog.
- // @param {string=} room_info.event_id ID of the event in this room to show: this will cause a switch to the
+ // @param {Object} roomInfo Object containing data about the room to be joined
+ // @param {string=} roomInfo.room_id ID of the room to join. One of room_id or room_alias must be given.
+ // @param {string=} roomInfo.room_alias Alias of the room to join. One of room_id or room_alias must be given.
+ // @param {boolean=} roomInfo.auto_join If true, automatically attempt to join the room if not already a member.
+ // @param {boolean=} roomInfo.show_settings Makes RoomView show the room settings dialog.
+ // @param {string=} roomInfo.event_id ID of the event in this room to show: this will cause a switch to the
// context of that particular event.
- // @param {Object=} room_info.third_party_invite Object containing data about the third party
+ // @param {Object=} roomInfo.third_party_invite Object containing data about the third party
// we received to join the room, if any.
- // @param {string=} room_info.third_party_invite.inviteSignUrl 3pid invite sign URL
- // @param {string=} room_info.third_party_invite.invitedEmail The email address the invite was sent to
- // @param {Object=} room_info.oob_data Object of additional data about the room
+ // @param {string=} roomInfo.third_party_invite.inviteSignUrl 3pid invite sign URL
+ // @param {string=} roomInfo.third_party_invite.invitedEmail The email address the invite was sent to
+ // @param {Object=} roomInfo.oob_data Object of additional data about the room
// that has been passed out-of-band (eg.
// room name and avatar from an invite email)
- _viewRoom: function(room_info) {
+ _viewRoom: function(roomInfo) {
this.focusComposer = true;
const newState = {
- initialEventId: room_info.event_id,
- highlightedEventId: room_info.event_id,
+ initialEventId: roomInfo.event_id,
+ highlightedEventId: roomInfo.event_id,
initialEventPixelOffset: undefined,
page_type: PageTypes.RoomView,
- thirdPartyInvite: room_info.third_party_invite,
- roomOobData: room_info.oob_data,
- currentRoomAlias: room_info.room_alias,
- autoJoin: room_info.auto_join,
+ thirdPartyInvite: roomInfo.third_party_invite,
+ roomOobData: roomInfo.oob_data,
+ currentRoomAlias: roomInfo.room_alias,
+ autoJoin: roomInfo.auto_join,
};
- if (!room_info.room_alias) {
- newState.currentRoomId = room_info.room_id;
+ if (!roomInfo.room_alias) {
+ newState.currentRoomId = roomInfo.room_id;
}
// if we aren't given an explicit event id, look for one in the
// scrollStateMap.
//
// TODO: do this in RoomView rather than here
- if (!room_info.event_id && this.refs.loggedInView) {
- const scrollState = this.refs.loggedInView.getScrollStateForRoom(room_info.room_id);
+ if (!roomInfo.event_id && this.refs.loggedInView) {
+ const scrollState = this.refs.loggedInView.getScrollStateForRoom(roomInfo.room_id);
if (scrollState) {
newState.initialEventId = scrollState.focussedEvent;
newState.initialEventPixelOffset = scrollState.pixelOffset;
@@ -628,15 +628,15 @@ module.exports = React.createClass({
let waitFor = q(null);
if (!this.firstSyncComplete) {
if (!this.firstSyncPromise) {
- console.warn('Cannot view a room before first sync. room_id:', room_info.room_id);
+ console.warn('Cannot view a room before first sync. room_id:', roomInfo.room_id);
return;
}
waitFor = this.firstSyncPromise.promise;
}
waitFor.done(() => {
- let presentedId = room_info.room_alias || room_info.room_id;
- const room = MatrixClientPeg.get().getRoom(room_info.room_id);
+ let presentedId = roomInfo.room_alias || roomInfo.room_id;
+ const room = MatrixClientPeg.get().getRoom(roomInfo.room_id);
if (room) {
const theAlias = Rooms.getDisplayAliasForRoom(room);
if (theAlias) presentedId = theAlias;
@@ -648,8 +648,8 @@ module.exports = React.createClass({
}
}
- if (room_info.event_id) {
- presentedId += "/" + room_info.event_id;
+ if (roomInfo.event_id) {
+ presentedId += "/" + roomInfo.event_id;
}
this.notifyNewScreen('room/' + presentedId);
newState.ready = true;
@@ -663,7 +663,7 @@ module.exports = React.createClass({
title: _t('Start a chat'),
description: _t("Who would you like to communicate with?"),
placeholder: _t("Email, name or matrix ID"),
- button: _t("Start Chat")
+ button: _t("Start Chat"),
});
},
From 396545b783ecd92496b9bb0a56d0855b484c90c5 Mon Sep 17 00:00:00 2001
From: Jean GB
Date: Wed, 31 May 2017 12:14:30 +0000
Subject: [PATCH 030/170] Translated using Weblate (French)
Currently translated at 99.3% (763 of 768 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/fr/
---
src/i18n/strings/fr.json | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json
index 3d85aefbc7..9462a9c557 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -119,7 +119,7 @@
"zh-sg": "Chinese (Singapore)",
"zh-tw": "Chinese (Taiwan)",
"zu": "Zulu",
- "anyone": "anyone",
+ "anyone": "n'importe qui",
"Direct Chat": "Conversation Directe",
"Direct chats": "Conversations directes",
"Disable inline URL previews by default": "Désactiver l’aperçu des URLs",
@@ -764,5 +764,6 @@
"Online": "En ligne",
"Offline": "Hors ligne",
"Disable URL previews for this room (affects only you)": "Désactiver les aperçus d'URL pour ce salon (n'affecte que vous)",
- "Desktop specific": "Spécifique à la version bureau"
+ "Desktop specific": "Spécifique à la version bureau",
+ "Start automatically after system login": "Démarrer automatiquement après la phase d'authentification du système."
}
From 53502c9640a5678adeb1f7f344105459e06a7328 Mon Sep 17 00:00:00 2001
From: Bamstam
Date: Wed, 31 May 2017 10:48:57 +0000
Subject: [PATCH 031/170] Translated using Weblate (German)
Currently translated at 100.0% (768 of 768 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/de/
---
src/i18n/strings/de_DE.json | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json
index 89e7f97515..96dd38c78f 100644
--- a/src/i18n/strings/de_DE.json
+++ b/src/i18n/strings/de_DE.json
@@ -40,7 +40,7 @@
"Change Password": "Passwort ändern",
"Searches DuckDuckGo for results": "Verwendet DuckDuckGo für Suchergebnisse",
"Commands": "Kommandos",
- "Emoji": "Smileys",
+ "Emoji": "Emoji",
"Sorry, this homeserver is using a login which is not recognised ": "Entschuldigung, dieser Homeserver nutzt eine Anmeldetechnik, die nicht bekannt ist ",
"Login as guest": "Anmelden als Gast",
"Return to app": "Zurück zur Anwendung",
@@ -93,7 +93,7 @@
"Encryption is enabled in this room": "Verschlüsselung ist in diesem Raum aktiviert",
"Encryption is not enabled in this room": "Verschlüsselung ist in diesem Raum nicht aktiviert",
"ended the call.": "beendete den Anruf.",
- "End-to-end encryption is in beta and may not be reliable": "Ende-zu-Ende-Verschlüsselung ist im Beta-Status und ist evtl. nicht zuverlässig",
+ "End-to-end encryption is in beta and may not be reliable": "Die Ende-zu-Ende-Verschlüsselung befindet sich im Beta-Stadium und ist eventuell nicht hundertprozentig zuverlässig",
"Failed to send email": "Fehler beim Senden der E-Mail",
"Account": "Konto",
"Add phone number": "Füge Telefonnummer hinzu",
@@ -360,7 +360,7 @@
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s änderte den Raumnamen zu %(roomName)s.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s änderte das Thema zu \"%(topic)s\".",
"/ddg is not a command": "/ddg ist kein Kommando",
- "%(senderName)s ended the call.": "%(senderName)s beendete den Anruf.",
+ "%(senderName)s ended the call.": "%(senderName)s hat den Anruf beendet.",
"Failed to lookup current room": "Aktuellen Raum nachzuschlagen schlug fehl",
"Failed to send request.": "Anfrage zu senden schlug fehl.",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s von %(fromPowerLevel)s zu %(toPowerLevel)s",
@@ -401,9 +401,9 @@
"Error changing language": "Fehler beim Ändern der Sprache",
"Riot was unable to find the correct Data for the selected Language.": "Riot war nicht in der Lage die korrekten Daten für die ausgewählte Sprache zu finden.",
"Connectivity to the server has been lost.": "Verbindung zum Server untergebrochen.",
- "Sent messages will be stored until your connection has returned.": "Gesendete Nachrichten werden gespeichert bis die Verbindung wiederhergestellt wurde.",
+ "Sent messages will be stored until your connection has returned.": "Gesendete Nachrichten werden gespeichert, bis die Internetverbindung wiederhergestellt wurde.",
"Auto-complete": "Autovervollständigung",
- "Resend all": "Alles erneut senden",
+ "Resend all": "Alle erneut senden",
"cancel all": "alles abbrechen",
"now. You can also select individual messages to resend or cancel.": "jetzt. Du kannst auch einzelne Nachrichten zum erneuten Senden oder Abbrechen auswählen.",
"Active call": "Aktiver Anruf",
@@ -515,7 +515,7 @@
"pt": "Portugiesisch",
"rm": "Rätoromanisch",
"ro-mo": "Rumänisch (Republik Moldau/Moldawien)",
- "ro": "Romanian",
+ "ro": "Rumänisch",
"ru-mo": "Russisch",
"sb": "Sorbisch",
"sk": "Slowakisch",
@@ -559,7 +559,7 @@
"and one other...": "und ein(e) weitere(r)...",
"Are you sure?": "Bist du sicher?",
"Attachment": "Anhang",
- "Ban": "Banne",
+ "Ban": "Verbannen",
"Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "Kann nicht zum Heimserver verbinden - bitte checke eine Verbindung und stelle sicher, dass dem %(urlStart)s SSL-Zertifikat deines Heimservers %(urlEnd)s vertraut wird",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "Kann nicht zum Heimserver via HTTP verbinden, wenn eine HTTPS-Url in deiner Adresszeile steht. Nutzer HTTPS oder %(urlStart)s aktiviere unsichere Skripte %(urlEnd)s",
"changing room on a RoomView is not supported": "Das Ändern eines Raumes in einer RaumAnsicht wird nicht unterstützt",
@@ -607,10 +607,10 @@
"Revoke Moderator": "Moderator zurückziehen",
"Search": "Suche",
"Search failed": "Suche fehlgeschlagen",
- "Server error": "Serverfehler",
- "Server may be unavailable, overloaded, or search timed out :(": "Server ist entweder nicht verfügbar, überlastet oder die Suchezeit ist abgelaufen :(",
+ "Server error": "Server-Fehler",
+ "Server may be unavailable, overloaded, or search timed out :(": "Der Server ist entweder nicht verfügbar, überlastet oder die Suche wurde wegen Zeitüberschreitung abgebrochen :(",
"Server may be unavailable, overloaded, or the file too big": "Server ist entweder nicht verfügbar, überlastet oder die Datei ist zu groß",
- "Server unavailable, overloaded, or something else went wrong": "Server ist entweder nicht verfügbar, überlastet oder etwas anderes schlug fehl",
+ "Server unavailable, overloaded, or something else went wrong": "Der Server ist entweder nicht verfügbar, überlastet oder es liegt ein anderweitiger Fehler vor",
"Some of your messages have not been sent": "Einige deiner Nachrichten wurden noch nicht gesendet",
"Submit": "Absenden",
"The main address for this room is: %(canonical_alias_section)s": "Die Hauptadresse für diesen Raum ist: %(canonical_alias_section)s",
From e9cb13035b0057ed7174f4cd3473743eb5d8b934 Mon Sep 17 00:00:00 2001
From: Amandine
Date: Wed, 31 May 2017 15:59:30 +0000
Subject: [PATCH 032/170] Translated using Weblate (French)
Currently translated at 100.0% (770 of 770 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/fr/
---
src/i18n/strings/fr.json | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json
index 9462a9c557..61c75512d0 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -79,7 +79,7 @@
"it": "Italian",
"ja": "Japanese",
"ji": "Yiddish",
- "ko": "Korean (Johab)",
+ "ko": "Coréen",
"lt": "Lithuanian",
"lv": "Latvian",
"mk": "Macedonian (FYROM)",
@@ -100,7 +100,7 @@
"sk": "Slovak",
"sl": "Slovenian",
"sq": "Albanian",
- "sr": "Serbian (Latin)",
+ "sr": "Serbe",
"sv-fi": "Swedish (Finland)",
"sv": "Swedish",
"sx": "Sutu",
@@ -149,7 +149,7 @@
"Failed to change password. Is your password correct?": "Failed to change password. Is your password correct?",
"Failed to change power level": "Failed to change power level",
"Failed to delete device": "Failed to delete device",
- "Failed to forget room %(errCode)s": "Echec lors de l'oublie du salon %(errCode)s",
+ "Failed to forget room %(errCode)s": "Échec lors de l'oubli du salon %(errCode)s",
"Please Register": "Veuillez vous enregistrer",
"Remove": "Supprimer",
"was banned": "a été banni(e)",
@@ -758,12 +758,17 @@
"Disable URL previews by default for participants in this room": "Désactiver les aperçus d'URL par défaut pour les participants de ce salon",
"URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "Les aperçus d'URL sont %(globalDisableUrlPreview)s par défaut pour les participants de ce salon.",
"Enable URL previews for this room (affects only you)": "Activer les aperçus d'URL pour ce salon (n'affecte que vous)",
- "Drop file here to upload": "Déposer le fichier ici pour téléchargement",
+ "Drop file here to upload": "Déposer le fichier ici pour le télécharger",
" (unsupported)": " (non supporté)",
"Ongoing conference call%(supportedText)s. %(joinText)s": "Appel conférence en cours%(supportedText)s. %(joinText)s",
"Online": "En ligne",
- "Offline": "Hors ligne",
+ "Offline": "Déconnecté",
"Disable URL previews for this room (affects only you)": "Désactiver les aperçus d'URL pour ce salon (n'affecte que vous)",
"Desktop specific": "Spécifique à la version bureau",
- "Start automatically after system login": "Démarrer automatiquement après la phase d'authentification du système."
+ "Start automatically after system login": "Démarrer automatiquement après la phase d'authentification du système.",
+ "Idle": "Inactif",
+ "Jump to first unread message.": "Aller au premier message non-lu.",
+ "Options": "Options",
+ "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?": "Vous êtes sur le point d’accéder à un site tiers afin de pouvoir vous identifier pour utiliser %(integrationsUrl)s. Voulez vous continuer ?",
+ "Removed or unknown message type": "Type de message inconnu ou supprimé"
}
From 4bc252a16b3bc3c1c126e17dc4f4c67fcf6e1130 Mon Sep 17 00:00:00 2001
From: Richard van der Hoff
Date: Wed, 31 May 2017 17:28:08 +0100
Subject: [PATCH 033/170] delint src/Lifecycle
---
src/Lifecycle.js | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/Lifecycle.js b/src/Lifecycle.js
index 0bf4c575e5..bf7b25fd2b 100644
--- a/src/Lifecycle.js
+++ b/src/Lifecycle.js
@@ -232,7 +232,9 @@ function _handleRestoreFailure(e) {
let msg = e.message;
if (msg == "OLM.BAD_LEGACY_ACCOUNT_PICKLE") {
msg = _t(
- '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.'
+ '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.',
);
_clearLocalStorage();
From c3d37c1ff9f3cb30834bb6e97c49845be9363b2f Mon Sep 17 00:00:00 2001
From: Richard van der Hoff
Date: Wed, 31 May 2017 17:28:46 +0100
Subject: [PATCH 034/170] Call MatrixClient.clearStores on logout
... to make sure that we don't have any sensitive data sitting around in the
stores.
---
src/Lifecycle.js | 38 +++++++++++++++++++------
src/components/structures/MatrixChat.js | 4 +--
2 files changed, 31 insertions(+), 11 deletions(-)
diff --git a/src/Lifecycle.js b/src/Lifecycle.js
index bf7b25fd2b..a3bec14492 100644
--- a/src/Lifecycle.js
+++ b/src/Lifecycle.js
@@ -237,7 +237,7 @@ function _handleRestoreFailure(e) {
+ ' This is a once off; sorry for the inconvenience.',
);
- _clearLocalStorage();
+ _clearStorage();
return q.reject(new Error(
_t('Unable to restore previous session') + ': ' + msg,
@@ -258,7 +258,7 @@ function _handleRestoreFailure(e) {
return def.promise.then((success) => {
if (success) {
// user clicked continue.
- _clearLocalStorage();
+ _clearStorage();
return false;
}
@@ -332,6 +332,10 @@ export function setLoggedIn(credentials) {
}
// stop any running clients before we create a new one with these new credentials
+ //
+ // XXX: why do we have any running clients here? Maybe on sign-in after
+ // initial use as a guest? but what about our persistent storage? we need to
+ // be careful not to leak e2e data created as one user into another session.
stopMatrixClient();
MatrixClientPeg.replaceUsingCreds(credentials);
@@ -402,13 +406,19 @@ export function startMatrixClient() {
* a session has been logged out / ended.
*/
export function onLoggedOut() {
- _clearLocalStorage();
- stopMatrixClient();
+ stopMatrixClient(true);
dis.dispatch({action: 'on_logged_out'});
}
-function _clearLocalStorage() {
+function _clearStorage() {
Analytics.logout();
+
+ const cli = MatrixClientPeg.get();
+ if (cli) {
+ // TODO: *really* ought to wait for the promise to complete
+ cli.clearStores().done();
+ }
+
if (!window.localStorage) {
return;
}
@@ -425,9 +435,13 @@ function _clearLocalStorage() {
}
/**
- * Stop all the background processes related to the current client
+ * Stop all the background processes related to the current client.
+ *
+ * Optionally clears persistent stores.
+ *
+ * @param {boolean} clearStores true to clear the persistent stores.
*/
-export function stopMatrixClient() {
+export function stopMatrixClient(clearStores) {
Notifier.stop();
UserActivity.stop();
Presence.stop();
@@ -436,7 +450,13 @@ export function stopMatrixClient() {
if (cli) {
cli.stopClient();
cli.removeAllListeners();
- cli.store.deleteAllData();
- MatrixClientPeg.unset();
}
+
+ if (clearStores) {
+ // note that we have to do this *after* stopping the client, but
+ // *before* clearing the MatrixClientPeg.
+ _clearStorage();
+ }
+
+ MatrixClientPeg.unset();
}
diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js
index 64b5354eda..f53128fba9 100644
--- a/src/components/structures/MatrixChat.js
+++ b/src/components/structures/MatrixChat.js
@@ -292,7 +292,7 @@ module.exports = React.createClass({
},
componentWillUnmount: function() {
- Lifecycle.stopMatrixClient();
+ Lifecycle.stopMatrixClient(false);
dis.unregister(this.dispatcherRef);
UDEHandler.stopListening();
window.removeEventListener("focus", this.onFocus);
@@ -364,7 +364,7 @@ module.exports = React.createClass({
// is completed in another browser, we'll be 401ed for using
// a guest access token for a non-guest account.
// It will be restarted in onReturnToGuestClick
- Lifecycle.stopMatrixClient();
+ Lifecycle.stopMatrixClient(false);
this.notifyNewScreen('register');
break;
From cbbed3f54443059270df75cddb6eba8332453e5e Mon Sep 17 00:00:00 2001
From: Richard van der Hoff
Date: Wed, 31 May 2017 18:31:10 +0100
Subject: [PATCH 035/170] Fixes to i18n code
---
src/components/structures/login/Registration.js | 2 +-
src/components/views/dialogs/SetDisplayNameDialog.js | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/components/structures/login/Registration.js b/src/components/structures/login/Registration.js
index 6dfd700d13..d9b7c46b6b 100644
--- a/src/components/structures/login/Registration.js
+++ b/src/components/structures/login/Registration.js
@@ -267,7 +267,7 @@ module.exports = React.createClass({
errMsg = _t('Passwords don\'t match.');
break;
case "RegistrationForm.ERR_PASSWORD_LENGTH":
- errMsg = _t('Password too short (min %(MIN_PASSWORD_LENGTH)s).', {MIN_PASSWORD_LENGTH: $MIN_PASSWORD_LENGTH})
+ errMsg = _t('Password too short (min %(MIN_PASSWORD_LENGTH)s).', {MIN_PASSWORD_LENGTH: MIN_PASSWORD_LENGTH});
break;
case "RegistrationForm.ERR_EMAIL_INVALID":
errMsg = _t('This doesn\'t look like a valid email address.');
diff --git a/src/components/views/dialogs/SetDisplayNameDialog.js b/src/components/views/dialogs/SetDisplayNameDialog.js
index 17de0aea1b..1134b1f8cd 100644
--- a/src/components/views/dialogs/SetDisplayNameDialog.js
+++ b/src/components/views/dialogs/SetDisplayNameDialog.js
@@ -18,6 +18,8 @@ import React from 'react';
import sdk from '../../../index';
import MatrixClientPeg from '../../../MatrixClientPeg';
+import { _t } from '../../../languageHandler';
+
/**
* Prompt the user to set a display name.
*
From 165dfeccb9a6a2ee7743cccd9676430b507d4aed Mon Sep 17 00:00:00 2001
From: turt2live
Date: Wed, 31 May 2017 11:55:25 -0600
Subject: [PATCH 036/170] Fix rare case where presence duration is undefined &
i18n
---
src/components/views/rooms/PresenceLabel.js | 15 +++++++--------
src/i18n/strings/en_EN.json | 4 ++++
2 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/src/components/views/rooms/PresenceLabel.js b/src/components/views/rooms/PresenceLabel.js
index d06b46641c..b79de2b21c 100644
--- a/src/components/views/rooms/PresenceLabel.js
+++ b/src/components/views/rooms/PresenceLabel.js
@@ -55,17 +55,17 @@ module.exports = React.createClass({
var d = parseInt(t / (60 * 60 * 24));
if (t < 60) {
if (t < 0) {
- return "0s";
+ return _t("for %(amount)ss", {amount: 0});
}
- return s + "s";
+ return _t("for %(amount)ss", {amount: s});
}
if (t < 60 * 60) {
- return m + "m";
+ return _t("for %(amount)sm", {amount: m});
}
if (t < 24 * 60 * 60) {
- return h + "h";
+ return _t("for %(amount)sh", {amount: h});
}
- return d + "d ";
+ return _t("for %(amount)sd", {amount: d});
},
getPrettyPresence: function(presence) {
@@ -77,9 +77,8 @@ module.exports = React.createClass({
render: function() {
if (this.props.activeAgo >= 0) {
- var ago = this.props.currentlyActive ? "" : "for " + (this.getDuration(this.props.activeAgo));
- // var ago = this.getDuration(this.props.activeAgo) + " ago";
- // if (this.props.currentlyActive) ago += " (now?)";
+ let duration = this.getDuration(this.props.activeAgo);
+ let ago = this.props.currentlyActive || !duration ? "" : duration;
return (
{ this.getPrettyPresence(this.props.presenceState) } { ago }
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index bd8b6d2367..729208dddc 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -765,6 +765,10 @@
"Drop file here to upload": "Drop file here to upload",
" (unsupported)": " (unsupported)",
"Ongoing conference call%(supportedText)s. %(joinText)s": "Ongoing conference call%(supportedText)s. %(joinText)s",
+ "for %(amount)ss": "for %(amount)ss",
+ "for %(amount)sm": "for %(amount)sm",
+ "for %(amount)sh": "for %(amount)sh",
+ "for %(amount)sd": "for %(amount)sd",
"Online": "Online",
"Idle": "Idle",
"Offline": "Offline",
From f2db6dd16836180001dd178e4de9a611afc3d6e4 Mon Sep 17 00:00:00 2001
From: "Iru Cai (vimacs)"
Date: Wed, 31 May 2017 16:59:24 +0000
Subject: [PATCH 037/170] Translated using Weblate (Chinese (Simplified))
Currently translated at 26.8% (207 of 770 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/zh_Hans/
---
src/i18n/strings/zh_Hans.json | 53 ++++++++++++++++++++++++++++++++++-
1 file changed, 52 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json
index 33a44210de..91adec837f 100644
--- a/src/i18n/strings/zh_Hans.json
+++ b/src/i18n/strings/zh_Hans.json
@@ -154,5 +154,56 @@
"The email address linked to your account must be entered.": "必须输入和你账号关联的邮箱地址。",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "文件 '%(fileName)s' 超过了此主服务器的上传大小限制",
"The file '%(fileName)s' failed to upload": "文件 '%(fileName)s' 上传失败",
- "Guests can't use labs features. Please register.": "游客不能使用实验性功能。请注册。"
+ "Disable URL previews for this room (affects only you)": "在这个房间禁止URL预览(只影响你)",
+ "af": "南非荷兰语",
+ "ca": "加泰罗尼亚语",
+ "cs": "捷克语",
+ "da": "丹麦语",
+ "de-at": "德语(奥地利)",
+ "de-ch": "德语(瑞士)",
+ "de": "德语",
+ "de-lu": "德语(卢森堡)",
+ "el": "希腊语",
+ "en-au": "英语(澳大利亚)",
+ "en": "英语",
+ "zh-cn": "中文(中国)",
+ "zh-hk": "中文(香港)",
+ "zh-sg": "中文(新加坡)",
+ "zh-tw": "中国(台湾)",
+ "Add email address": "添加邮件地址",
+ "Add phone number": "添加电话号码",
+ "Advanced": "高级",
+ "Algorithm": "算法",
+ "Always show message timestamps": "总是显示消息时间戳",
+ "all room members": "所有聊天室成员",
+ "all room members, from the point they are invited": "所有聊天室成员,从他们被邀请开始",
+ "all room members, from the point they joined": "所有聊天室成员,从他们加入开始",
+ "an address": "一个地址",
+ "and": "和",
+ "%(names)s and %(lastPerson)s are typing": "%(names)s 和 %(lastPerson)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.": "一个新的密码必须被输入。",
+ "%(senderName)s answered the call.": "%(senderName)s 接了通话。",
+ "An error has occurred.": "一个错误出现了。",
+ "Attachment": "附件",
+ "Autoplay GIFs and videos": "自动播放GIF和视频",
+ "%(senderName)s banned %(targetName)s.": "%(senderName)s 封禁了 %(targetName)s.",
+ "Ban": "封禁",
+ "Banned users": "被封禁的用户",
+ "Click here": "点击这里",
+ "Click here to fix": "点击这里修复",
+ "Confirm password": "确认密码",
+ "Confirm your new password": "确认你的新密码",
+ "Continue": "继续",
+ "Ed25519 fingerprint": "Ed25519指纹",
+ "Invite new room members": "邀请新的聊天室成员",
+ "Join Room": "加入聊天室",
+ "joined": "加入了",
+ "%(targetName)s joined the room.": "%(targetName)s 加入了聊天室。",
+ "Jump to first unread message.": "跳到第一条未读消息。",
+ "%(senderName)s kicked %(targetName)s.": "%(senderName)s 把 %(targetName)s 踢出了聊天室。",
+ "Leave room": "离开聊天室",
+ "Login as guest": "以游客的身份登录",
+ "New password": "新密码"
}
From 30dc5f8117eb85e493dded8d58a86249f4cd93ba Mon Sep 17 00:00:00 2001
From: Amandine
Date: Wed, 31 May 2017 18:15:59 +0000
Subject: [PATCH 038/170] Translated using Weblate (French)
Currently translated at 100.0% (770 of 770 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/fr/
---
src/i18n/strings/fr.json | 36 ++++++++++++++++++------------------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json
index 61c75512d0..47ab9c7573 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -132,7 +132,7 @@
"Drop here to tag %(section)s": "Déposer ici pour marque comme %(section)s",
"Ed25519 fingerprint": "Empreinte Ed25519",
"Email Address": "Adresse e-mail",
- "Email, name or matrix ID": "E-mail, nom or identifiant Matrix",
+ "Email, name or matrix ID": "E-mail, nom ou identifiant Matrix",
"Emoji": "Emoticône",
"Enable encryption": "Activer l'encryption",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Les messages encryptés ne seront pas visibles dans les clients qui n’implémentent pas encore l’encryption",
@@ -176,7 +176,7 @@
"%(targetName)s accepted an invitation.": "%(targetName)s a accepté une invitation.",
"Account": "Compte",
"Add email address": "Ajouter une adresse e-mail",
- "Add phone number": "Ajouter un numéro de téléphone",
+ "Add phone number": "Ajouter un numéro",
"Admin": "Admin",
"Advanced": "Avancé",
"Algorithm": "Algorithme",
@@ -246,15 +246,15 @@
"Current password": "Mot de passe actuel",
"Curve25519 identity key": "Clé d’identité Curve25519",
"/ddg is not a command": "/ddg n'est pas une commande",
- "Deactivate Account": "Désactiver le compte",
- "Deactivate my account": "Désactiver mon compte",
+ "Deactivate Account": "Supprimer le compte",
+ "Deactivate my account": "Supprimer mon compte",
"decline": "décliner",
"Decrypt %(text)s": "Décrypter %(text)s",
"Decryption error": "Erreur de décryptage",
"Delete": "Supprimer",
"demote": "rétrograder",
"Deops user with given id": "Retire les privilèges d’opérateur d’un utilisateur avec un ID donné",
- "Device ID": "ID de l'appareil",
+ "Device ID": "Identifiant de l'appareil",
"Devices": "Appareils",
"Devices will not yet be able to decrypt history from before they joined the room": "Les appareils ne seront pas capables de décrypter l’historique précédant leur adhésion au salon",
"ml": "Malayalam",
@@ -379,7 +379,7 @@
"Permissions": "Permissions",
"Phone": "Numéro de téléphone",
"Operation failed": "L'opération a échoué",
- "Bulk Options": "Option en vrac",
+ "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 actuellement réinitialise les clés d’encryption sur tous les appareils, rendant l’historique encrypté 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",
"Email address": "Adresse e-mail",
@@ -392,13 +392,13 @@
"Invalid file%(extra)s": "Fichier %(extra)s invalide",
"Mute": "Couper le son",
"No users have specific privileges in this room": "Aucun utilisateur n’a de privilège spécifique dans ce salon",
- "olm version:": "Version de olm :",
+ "olm version:": "version de olm :",
"Once you've followed the link it contains, click below": "Une fois que vous aurez suivi le lien qu’il contient, cliquez ci-dessous",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s a placé un appel %(callType)s.",
- "Please check your email and click on the link it contains. Once this is done, click continue.": "Merci de vérifier vos e-mail et cliquer sur le lien quil contient. Une fois que cela est fait, cliquez sur continuer.",
- "Power level must be positive integer.": "Le niveau de pouvoir doit être un entier positif.",
+ "Please check your email and click on the link it contains. Once this is done, click continue.": "Veuillez vérifier vos e-mails et cliquer sur le lien que vous avez reçu. Puis cliquez sur continuer.",
+ "Power level must be positive integer.": "Le niveau d'autorité doit être un entier positif.",
"Press": "Cliquer",
- "Privacy warning": "Alerte vie privée",
+ "Privacy warning": "Alerte de confidentialité",
"Privileged Users": "Utilisateur Privilégié",
"Profile": "Profil",
"Reason": "Raison",
@@ -425,8 +425,8 @@
"Room Colour": "Couleur du salon",
"Room name (optional)": "Nom du salon (optionnel)",
"Rooms": "Salons",
- "Scroll to bottom of page": "Défiler jusqu’au bas de la page",
- "Scroll to unread messages": "Défiler jusqu’aux messages non-lus",
+ "Scroll to bottom of page": "Aller en bas de la page",
+ "Scroll to unread messages": "Aller aux messages non-lus",
"Search": "Rechercher",
"Search failed": "Erreur lors de la recherche",
"Searches DuckDuckGo for results": "Recherche des résultats dans DuckDuckGo",
@@ -531,7 +531,7 @@
"Upload avatar": "Télécharger une photo de profil",
"Upload Failed": "Erreur lors du téléchargement",
"Upload Files": "Télécharger les fichiers",
- "Upload file": "Télécharger le fichier",
+ "Upload file": "Télécharger un fichier",
"Usage": "Utilisation",
"Use with caution": "Utiliser avec prudence",
"User ID": "Identifiant d'utilisateur",
@@ -709,10 +709,10 @@
"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",
"Device key": "Clé de l'appareil",
- "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Si les clés correspondent, cliquer sur le bouton ’Vérifier’ ci-dessous. Si non, alors quelqu’un d’autre est en train d’intercepter cet appareil et vous devriez certainement cliquer sur le bouton ’Ajouter à la liste noire’ à la place.",
+ "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Si les clés correspondent, cliquer sur le bouton ’Vérifier’ ci-dessous. Si non, alors quelqu’un d’autre est en train d’intercepter cet appareil et vous devriez certainement cliquer sur le bouton ’Blacklister' (Ajouter à la liste noire) à la place.",
"In future this verification process will be more sophisticated.": "À l’avenir ce processus de vérification sera simplifié et plus sophistiqué.",
"Verify device": "Vérifier cet appareil",
- "I verify that the keys match": "J’ai vérifié que les clés correspondait",
+ "I verify that the keys match": "J’ai vérifié que les clés correspondaient",
"We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Nous avons rencontré une erreur en essayant de rétablir votre session précédente. Si vous continuez, vous devrez vous identifier à nouveau et l’historique encrypté de vos conversations sera illisible.",
"Unable to restore session": "Impossible de restaurer la session",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Si vous avez utilisé une version plus récente de Riot précédemment, votre session risque d’être incompatible avec cette version. Fermez cette fenêtre et retournez à la version plus récente.",
@@ -724,7 +724,7 @@
"Unknown devices": "Appareils inconnus",
"Unknown Address": "Adresse inconnue",
"Unblacklist": "Supprimer de la liste noire",
- "Blacklist": "Ajouter à la liste noire",
+ "Blacklist": "Blacklister",
"Unverify": "Non-vérifié",
"Verify...": "Vérifier...",
"ex. @bob:example.com": "ex. @bob:exemple.com",
@@ -764,8 +764,8 @@
"Online": "En ligne",
"Offline": "Déconnecté",
"Disable URL previews for this room (affects only you)": "Désactiver les aperçus d'URL pour ce salon (n'affecte que vous)",
- "Desktop specific": "Spécifique à la version bureau",
- "Start automatically after system login": "Démarrer automatiquement après la phase d'authentification du système.",
+ "Desktop specific": "Spécifique à l'application de bureau",
+ "Start automatically after system login": "Démarrer automatiquement après la phase d'authentification du système",
"Idle": "Inactif",
"Jump to first unread message.": "Aller au premier message non-lu.",
"Options": "Options",
From 7af2f615bd79615b0bf9cf203acf88295c4acd18 Mon Sep 17 00:00:00 2001
From: Bamstam
Date: Wed, 31 May 2017 17:18:52 +0000
Subject: [PATCH 039/170] Translated using Weblate (German)
Currently translated at 99.7% (768 of 770 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/de/
---
src/i18n/strings/de_DE.json | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json
index 96dd38c78f..5850f8e3e4 100644
--- a/src/i18n/strings/de_DE.json
+++ b/src/i18n/strings/de_DE.json
@@ -386,7 +386,7 @@
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s hat ein Bild gesendet.",
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s sandte eine Einladung an %(targetDisplayName)s um diesem Raum beizutreten.",
"%(senderName)s set a profile picture.": "%(senderName)s setzte ein Profilbild.",
- "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s setzte den Anzeigenamen zu %(displayName)s.",
+ "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s hat den Anzeigenamen geändert in %(displayName)s.",
"This room is not recognised.": "Dieser Raum wurde nicht erkannt.",
"These are experimental features that may break in unexpected ways": "Dies sind experimentelle Funktionen, die in unerwarteter Weise Fehler verursachen können",
"To use it, just wait for autocomplete results to load and tab through them.": "Um dies zu nutzen, warte auf die Autovervollständigungsergebnisse und benutze die TAB Taste.",
@@ -428,7 +428,7 @@
"to tag direct chat": "als direkten Chat markieren",
"You're not in any rooms yet! Press": "Du bist noch keinem Raum beigetreten! Drücke",
"click to reveal": "Klicke zum anzeigen",
- "To remove other users' messages": "Um Nachrichten anderer zu verbergen",
+ "To remove other users' messages": "Um Nachrichten anderer Nutzer zu verbergen",
"You are trying to access %(roomName)s": "Du versuchst auf %(roomName)s zuzugreifen",
"af": "Afrikaans",
"ar-ae": "Arabisch (U.A.E.)",
@@ -580,7 +580,7 @@
"Failed to kick": "Kicken fehlgeschlagen",
"Failed to mute user": "Nutzer lautlos zu stellen fehlgeschlagen",
"Failed to reject invite": "Einladung abzulehnen fehlgeschlagen",
- "Failed to save settings": "Einstellungen speichern fehlgeschlagen",
+ "Failed to save settings": "Einstellungen konnten nicht gespeichert werden",
"Failed to set display name": "Anzeigenamen zu ändern fehlgeschlagen",
"Fill screen": "Fülle Bildschirm",
"Guest users can't upload files. Please register to upload": "Gäste können keine Dateien hochladen. Bitte zunächst registrieren",
@@ -600,7 +600,7 @@
"New address (e.g. #foo:%(localDomain)s)": "Neue Adresse (z.B. #foo:%(localDomain)s)",
"not set": "nicht gesetzt",
"not specified": "nicht spezifiziert",
- "No devices with registered encryption keys": "Keine Geräte mit registrierten Verschlüsselungsschlüsseln",
+ "No devices with registered encryption keys": "Keine Geräte mit registrierten Verschlüsselungs-Schlüsseln",
"No more results": "Keine weiteren Ergebnisse",
"No results": "Keine Ergebnisse",
"OK": "OK",
@@ -640,10 +640,10 @@
"code": "Code",
"quote": "Zitat",
"bullet": "Aufzählung",
- "Click to unmute video": "Klicke um Video zu reaktivieren",
+ "Click to unmute video": "Klicken, um die Video-Stummschaltung zu deaktivieren",
"Click to unmute audio": "Klicke um Ton zu reaktivieren",
"Failed to load timeline position": "Laden der Position im Zeitstrahl fehlgeschlagen",
- "Failed to toggle moderator status": "Umschalten des Moderatorstatus fehlgeschlagen",
+ "Failed to toggle moderator status": "Umschalten des Moderator-Status fehlgeschlagen",
"Enable encryption": "Verschlüsselung aktivieren",
"The main address for this room is": "Die Hauptadresse für diesen Raum ist",
"Autoplay GIFs and videos": "GIF-Dateien und Videos automatisch abspielen",
@@ -734,7 +734,7 @@
"Passphrases must match": "Passphrase muss übereinstimmen",
"Passphrase must not be empty": "Passphrase darf nicht leer sein",
"Export room keys": "Exportiere Raum-Schlüssel",
- "Enter passphrase": "Gebe Passphrase ein",
+ "Enter passphrase": "Passphrase eingeben",
"Confirm passphrase": "Bestätige Passphrase",
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "Die Export-Datei wird mit einer Passphrase geschützt sein. Du solltest die Passphrase hier eingeben um die Datei zu entschlüsseln.",
"You must join the room to see its files": "Du musst dem Raum beitreten um seine Dateien zu sehen",
From 8cfa3bc2358e881b26eed854ad8471eafca59040 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Wed, 31 May 2017 23:49:55 +0100
Subject: [PATCH 040/170] add concept of platform handling loudNotifications
(bings/pings/whatHaveYou)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
src/BasePlatform.js | 3 +++
src/Notifier.js | 1 +
2 files changed, 4 insertions(+)
diff --git a/src/BasePlatform.js b/src/BasePlatform.js
index ca87535a86..d0d8e0c74e 100644
--- a/src/BasePlatform.js
+++ b/src/BasePlatform.js
@@ -71,6 +71,9 @@ export default class BasePlatform {
displayNotification(title: string, msg: string, avatarUrl: string, room: Object) {
}
+ loudNotification(ev: Event, room: Object) {
+ }
+
/**
* Returns a promise that resolves to a string representing
* the current version of the application.
diff --git a/src/Notifier.js b/src/Notifier.js
index e89947e958..40a65d4106 100644
--- a/src/Notifier.js
+++ b/src/Notifier.js
@@ -250,6 +250,7 @@ const Notifier = {
this._displayPopupNotification(ev, room);
}
if (actions.tweaks.sound && this.isAudioEnabled()) {
+ PlatformPeg.get().loudNotification(ev, room);
this._playAudioNotification(ev, room);
}
}
From ad0cbdd4ff7c28c7b3e1a4ac35d380ba433442cd Mon Sep 17 00:00:00 2001
From: RiotTranslate
Date: Thu, 1 Jun 2017 01:39:21 +0200
Subject: [PATCH 041/170] Update from Weblate. (#981)
* Translated using Weblate (French)
Currently translated at 99.3% (763 of 768 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/fr/
* Translated using Weblate (German)
Currently translated at 100.0% (768 of 768 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/de/
* Translated using Weblate (French)
Currently translated at 100.0% (770 of 770 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/fr/
* Translated using Weblate (Chinese (Simplified))
Currently translated at 26.8% (207 of 770 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/zh_Hans/
* Translated using Weblate (French)
Currently translated at 100.0% (770 of 770 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/fr/
* Translated using Weblate (German)
Currently translated at 99.7% (768 of 770 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/de/
---
src/i18n/strings/de_DE.json | 34 +++++++++++-----------
src/i18n/strings/fr.json | 52 +++++++++++++++++++---------------
src/i18n/strings/zh_Hans.json | 53 ++++++++++++++++++++++++++++++++++-
3 files changed, 98 insertions(+), 41 deletions(-)
diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json
index 89e7f97515..5850f8e3e4 100644
--- a/src/i18n/strings/de_DE.json
+++ b/src/i18n/strings/de_DE.json
@@ -40,7 +40,7 @@
"Change Password": "Passwort ändern",
"Searches DuckDuckGo for results": "Verwendet DuckDuckGo für Suchergebnisse",
"Commands": "Kommandos",
- "Emoji": "Smileys",
+ "Emoji": "Emoji",
"Sorry, this homeserver is using a login which is not recognised ": "Entschuldigung, dieser Homeserver nutzt eine Anmeldetechnik, die nicht bekannt ist ",
"Login as guest": "Anmelden als Gast",
"Return to app": "Zurück zur Anwendung",
@@ -93,7 +93,7 @@
"Encryption is enabled in this room": "Verschlüsselung ist in diesem Raum aktiviert",
"Encryption is not enabled in this room": "Verschlüsselung ist in diesem Raum nicht aktiviert",
"ended the call.": "beendete den Anruf.",
- "End-to-end encryption is in beta and may not be reliable": "Ende-zu-Ende-Verschlüsselung ist im Beta-Status und ist evtl. nicht zuverlässig",
+ "End-to-end encryption is in beta and may not be reliable": "Die Ende-zu-Ende-Verschlüsselung befindet sich im Beta-Stadium und ist eventuell nicht hundertprozentig zuverlässig",
"Failed to send email": "Fehler beim Senden der E-Mail",
"Account": "Konto",
"Add phone number": "Füge Telefonnummer hinzu",
@@ -360,7 +360,7 @@
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s änderte den Raumnamen zu %(roomName)s.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s änderte das Thema zu \"%(topic)s\".",
"/ddg is not a command": "/ddg ist kein Kommando",
- "%(senderName)s ended the call.": "%(senderName)s beendete den Anruf.",
+ "%(senderName)s ended the call.": "%(senderName)s hat den Anruf beendet.",
"Failed to lookup current room": "Aktuellen Raum nachzuschlagen schlug fehl",
"Failed to send request.": "Anfrage zu senden schlug fehl.",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s von %(fromPowerLevel)s zu %(toPowerLevel)s",
@@ -386,7 +386,7 @@
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s hat ein Bild gesendet.",
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s sandte eine Einladung an %(targetDisplayName)s um diesem Raum beizutreten.",
"%(senderName)s set a profile picture.": "%(senderName)s setzte ein Profilbild.",
- "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s setzte den Anzeigenamen zu %(displayName)s.",
+ "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s hat den Anzeigenamen geändert in %(displayName)s.",
"This room is not recognised.": "Dieser Raum wurde nicht erkannt.",
"These are experimental features that may break in unexpected ways": "Dies sind experimentelle Funktionen, die in unerwarteter Weise Fehler verursachen können",
"To use it, just wait for autocomplete results to load and tab through them.": "Um dies zu nutzen, warte auf die Autovervollständigungsergebnisse und benutze die TAB Taste.",
@@ -401,9 +401,9 @@
"Error changing language": "Fehler beim Ändern der Sprache",
"Riot was unable to find the correct Data for the selected Language.": "Riot war nicht in der Lage die korrekten Daten für die ausgewählte Sprache zu finden.",
"Connectivity to the server has been lost.": "Verbindung zum Server untergebrochen.",
- "Sent messages will be stored until your connection has returned.": "Gesendete Nachrichten werden gespeichert bis die Verbindung wiederhergestellt wurde.",
+ "Sent messages will be stored until your connection has returned.": "Gesendete Nachrichten werden gespeichert, bis die Internetverbindung wiederhergestellt wurde.",
"Auto-complete": "Autovervollständigung",
- "Resend all": "Alles erneut senden",
+ "Resend all": "Alle erneut senden",
"cancel all": "alles abbrechen",
"now. You can also select individual messages to resend or cancel.": "jetzt. Du kannst auch einzelne Nachrichten zum erneuten Senden oder Abbrechen auswählen.",
"Active call": "Aktiver Anruf",
@@ -428,7 +428,7 @@
"to tag direct chat": "als direkten Chat markieren",
"You're not in any rooms yet! Press": "Du bist noch keinem Raum beigetreten! Drücke",
"click to reveal": "Klicke zum anzeigen",
- "To remove other users' messages": "Um Nachrichten anderer zu verbergen",
+ "To remove other users' messages": "Um Nachrichten anderer Nutzer zu verbergen",
"You are trying to access %(roomName)s": "Du versuchst auf %(roomName)s zuzugreifen",
"af": "Afrikaans",
"ar-ae": "Arabisch (U.A.E.)",
@@ -515,7 +515,7 @@
"pt": "Portugiesisch",
"rm": "Rätoromanisch",
"ro-mo": "Rumänisch (Republik Moldau/Moldawien)",
- "ro": "Romanian",
+ "ro": "Rumänisch",
"ru-mo": "Russisch",
"sb": "Sorbisch",
"sk": "Slowakisch",
@@ -559,7 +559,7 @@
"and one other...": "und ein(e) weitere(r)...",
"Are you sure?": "Bist du sicher?",
"Attachment": "Anhang",
- "Ban": "Banne",
+ "Ban": "Verbannen",
"Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "Kann nicht zum Heimserver verbinden - bitte checke eine Verbindung und stelle sicher, dass dem %(urlStart)s SSL-Zertifikat deines Heimservers %(urlEnd)s vertraut wird",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "Kann nicht zum Heimserver via HTTP verbinden, wenn eine HTTPS-Url in deiner Adresszeile steht. Nutzer HTTPS oder %(urlStart)s aktiviere unsichere Skripte %(urlEnd)s",
"changing room on a RoomView is not supported": "Das Ändern eines Raumes in einer RaumAnsicht wird nicht unterstützt",
@@ -580,7 +580,7 @@
"Failed to kick": "Kicken fehlgeschlagen",
"Failed to mute user": "Nutzer lautlos zu stellen fehlgeschlagen",
"Failed to reject invite": "Einladung abzulehnen fehlgeschlagen",
- "Failed to save settings": "Einstellungen speichern fehlgeschlagen",
+ "Failed to save settings": "Einstellungen konnten nicht gespeichert werden",
"Failed to set display name": "Anzeigenamen zu ändern fehlgeschlagen",
"Fill screen": "Fülle Bildschirm",
"Guest users can't upload files. Please register to upload": "Gäste können keine Dateien hochladen. Bitte zunächst registrieren",
@@ -600,17 +600,17 @@
"New address (e.g. #foo:%(localDomain)s)": "Neue Adresse (z.B. #foo:%(localDomain)s)",
"not set": "nicht gesetzt",
"not specified": "nicht spezifiziert",
- "No devices with registered encryption keys": "Keine Geräte mit registrierten Verschlüsselungsschlüsseln",
+ "No devices with registered encryption keys": "Keine Geräte mit registrierten Verschlüsselungs-Schlüsseln",
"No more results": "Keine weiteren Ergebnisse",
"No results": "Keine Ergebnisse",
"OK": "OK",
"Revoke Moderator": "Moderator zurückziehen",
"Search": "Suche",
"Search failed": "Suche fehlgeschlagen",
- "Server error": "Serverfehler",
- "Server may be unavailable, overloaded, or search timed out :(": "Server ist entweder nicht verfügbar, überlastet oder die Suchezeit ist abgelaufen :(",
+ "Server error": "Server-Fehler",
+ "Server may be unavailable, overloaded, or search timed out :(": "Der Server ist entweder nicht verfügbar, überlastet oder die Suche wurde wegen Zeitüberschreitung abgebrochen :(",
"Server may be unavailable, overloaded, or the file too big": "Server ist entweder nicht verfügbar, überlastet oder die Datei ist zu groß",
- "Server unavailable, overloaded, or something else went wrong": "Server ist entweder nicht verfügbar, überlastet oder etwas anderes schlug fehl",
+ "Server unavailable, overloaded, or something else went wrong": "Der Server ist entweder nicht verfügbar, überlastet oder es liegt ein anderweitiger Fehler vor",
"Some of your messages have not been sent": "Einige deiner Nachrichten wurden noch nicht gesendet",
"Submit": "Absenden",
"The main address for this room is: %(canonical_alias_section)s": "Die Hauptadresse für diesen Raum ist: %(canonical_alias_section)s",
@@ -640,10 +640,10 @@
"code": "Code",
"quote": "Zitat",
"bullet": "Aufzählung",
- "Click to unmute video": "Klicke um Video zu reaktivieren",
+ "Click to unmute video": "Klicken, um die Video-Stummschaltung zu deaktivieren",
"Click to unmute audio": "Klicke um Ton zu reaktivieren",
"Failed to load timeline position": "Laden der Position im Zeitstrahl fehlgeschlagen",
- "Failed to toggle moderator status": "Umschalten des Moderatorstatus fehlgeschlagen",
+ "Failed to toggle moderator status": "Umschalten des Moderator-Status fehlgeschlagen",
"Enable encryption": "Verschlüsselung aktivieren",
"The main address for this room is": "Die Hauptadresse für diesen Raum ist",
"Autoplay GIFs and videos": "GIF-Dateien und Videos automatisch abspielen",
@@ -734,7 +734,7 @@
"Passphrases must match": "Passphrase muss übereinstimmen",
"Passphrase must not be empty": "Passphrase darf nicht leer sein",
"Export room keys": "Exportiere Raum-Schlüssel",
- "Enter passphrase": "Gebe Passphrase ein",
+ "Enter passphrase": "Passphrase eingeben",
"Confirm passphrase": "Bestätige Passphrase",
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "Die Export-Datei wird mit einer Passphrase geschützt sein. Du solltest die Passphrase hier eingeben um die Datei zu entschlüsseln.",
"You must join the room to see its files": "Du musst dem Raum beitreten um seine Dateien zu sehen",
diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json
index 3d85aefbc7..47ab9c7573 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -79,7 +79,7 @@
"it": "Italian",
"ja": "Japanese",
"ji": "Yiddish",
- "ko": "Korean (Johab)",
+ "ko": "Coréen",
"lt": "Lithuanian",
"lv": "Latvian",
"mk": "Macedonian (FYROM)",
@@ -100,7 +100,7 @@
"sk": "Slovak",
"sl": "Slovenian",
"sq": "Albanian",
- "sr": "Serbian (Latin)",
+ "sr": "Serbe",
"sv-fi": "Swedish (Finland)",
"sv": "Swedish",
"sx": "Sutu",
@@ -119,7 +119,7 @@
"zh-sg": "Chinese (Singapore)",
"zh-tw": "Chinese (Taiwan)",
"zu": "Zulu",
- "anyone": "anyone",
+ "anyone": "n'importe qui",
"Direct Chat": "Conversation Directe",
"Direct chats": "Conversations directes",
"Disable inline URL previews by default": "Désactiver l’aperçu des URLs",
@@ -132,7 +132,7 @@
"Drop here to tag %(section)s": "Déposer ici pour marque comme %(section)s",
"Ed25519 fingerprint": "Empreinte Ed25519",
"Email Address": "Adresse e-mail",
- "Email, name or matrix ID": "E-mail, nom or identifiant Matrix",
+ "Email, name or matrix ID": "E-mail, nom ou identifiant Matrix",
"Emoji": "Emoticône",
"Enable encryption": "Activer l'encryption",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Les messages encryptés ne seront pas visibles dans les clients qui n’implémentent pas encore l’encryption",
@@ -149,7 +149,7 @@
"Failed to change password. Is your password correct?": "Failed to change password. Is your password correct?",
"Failed to change power level": "Failed to change power level",
"Failed to delete device": "Failed to delete device",
- "Failed to forget room %(errCode)s": "Echec lors de l'oublie du salon %(errCode)s",
+ "Failed to forget room %(errCode)s": "Échec lors de l'oubli du salon %(errCode)s",
"Please Register": "Veuillez vous enregistrer",
"Remove": "Supprimer",
"was banned": "a été banni(e)",
@@ -176,7 +176,7 @@
"%(targetName)s accepted an invitation.": "%(targetName)s a accepté une invitation.",
"Account": "Compte",
"Add email address": "Ajouter une adresse e-mail",
- "Add phone number": "Ajouter un numéro de téléphone",
+ "Add phone number": "Ajouter un numéro",
"Admin": "Admin",
"Advanced": "Avancé",
"Algorithm": "Algorithme",
@@ -246,15 +246,15 @@
"Current password": "Mot de passe actuel",
"Curve25519 identity key": "Clé d’identité Curve25519",
"/ddg is not a command": "/ddg n'est pas une commande",
- "Deactivate Account": "Désactiver le compte",
- "Deactivate my account": "Désactiver mon compte",
+ "Deactivate Account": "Supprimer le compte",
+ "Deactivate my account": "Supprimer mon compte",
"decline": "décliner",
"Decrypt %(text)s": "Décrypter %(text)s",
"Decryption error": "Erreur de décryptage",
"Delete": "Supprimer",
"demote": "rétrograder",
"Deops user with given id": "Retire les privilèges d’opérateur d’un utilisateur avec un ID donné",
- "Device ID": "ID de l'appareil",
+ "Device ID": "Identifiant de l'appareil",
"Devices": "Appareils",
"Devices will not yet be able to decrypt history from before they joined the room": "Les appareils ne seront pas capables de décrypter l’historique précédant leur adhésion au salon",
"ml": "Malayalam",
@@ -379,7 +379,7 @@
"Permissions": "Permissions",
"Phone": "Numéro de téléphone",
"Operation failed": "L'opération a échoué",
- "Bulk Options": "Option en vrac",
+ "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 actuellement réinitialise les clés d’encryption sur tous les appareils, rendant l’historique encrypté 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",
"Email address": "Adresse e-mail",
@@ -392,13 +392,13 @@
"Invalid file%(extra)s": "Fichier %(extra)s invalide",
"Mute": "Couper le son",
"No users have specific privileges in this room": "Aucun utilisateur n’a de privilège spécifique dans ce salon",
- "olm version:": "Version de olm :",
+ "olm version:": "version de olm :",
"Once you've followed the link it contains, click below": "Une fois que vous aurez suivi le lien qu’il contient, cliquez ci-dessous",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s a placé un appel %(callType)s.",
- "Please check your email and click on the link it contains. Once this is done, click continue.": "Merci de vérifier vos e-mail et cliquer sur le lien quil contient. Une fois que cela est fait, cliquez sur continuer.",
- "Power level must be positive integer.": "Le niveau de pouvoir doit être un entier positif.",
+ "Please check your email and click on the link it contains. Once this is done, click continue.": "Veuillez vérifier vos e-mails et cliquer sur le lien que vous avez reçu. Puis cliquez sur continuer.",
+ "Power level must be positive integer.": "Le niveau d'autorité doit être un entier positif.",
"Press": "Cliquer",
- "Privacy warning": "Alerte vie privée",
+ "Privacy warning": "Alerte de confidentialité",
"Privileged Users": "Utilisateur Privilégié",
"Profile": "Profil",
"Reason": "Raison",
@@ -425,8 +425,8 @@
"Room Colour": "Couleur du salon",
"Room name (optional)": "Nom du salon (optionnel)",
"Rooms": "Salons",
- "Scroll to bottom of page": "Défiler jusqu’au bas de la page",
- "Scroll to unread messages": "Défiler jusqu’aux messages non-lus",
+ "Scroll to bottom of page": "Aller en bas de la page",
+ "Scroll to unread messages": "Aller aux messages non-lus",
"Search": "Rechercher",
"Search failed": "Erreur lors de la recherche",
"Searches DuckDuckGo for results": "Recherche des résultats dans DuckDuckGo",
@@ -531,7 +531,7 @@
"Upload avatar": "Télécharger une photo de profil",
"Upload Failed": "Erreur lors du téléchargement",
"Upload Files": "Télécharger les fichiers",
- "Upload file": "Télécharger le fichier",
+ "Upload file": "Télécharger un fichier",
"Usage": "Utilisation",
"Use with caution": "Utiliser avec prudence",
"User ID": "Identifiant d'utilisateur",
@@ -709,10 +709,10 @@
"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",
"Device key": "Clé de l'appareil",
- "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Si les clés correspondent, cliquer sur le bouton ’Vérifier’ ci-dessous. Si non, alors quelqu’un d’autre est en train d’intercepter cet appareil et vous devriez certainement cliquer sur le bouton ’Ajouter à la liste noire’ à la place.",
+ "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Si les clés correspondent, cliquer sur le bouton ’Vérifier’ ci-dessous. Si non, alors quelqu’un d’autre est en train d’intercepter cet appareil et vous devriez certainement cliquer sur le bouton ’Blacklister' (Ajouter à la liste noire) à la place.",
"In future this verification process will be more sophisticated.": "À l’avenir ce processus de vérification sera simplifié et plus sophistiqué.",
"Verify device": "Vérifier cet appareil",
- "I verify that the keys match": "J’ai vérifié que les clés correspondait",
+ "I verify that the keys match": "J’ai vérifié que les clés correspondaient",
"We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Nous avons rencontré une erreur en essayant de rétablir votre session précédente. Si vous continuez, vous devrez vous identifier à nouveau et l’historique encrypté de vos conversations sera illisible.",
"Unable to restore session": "Impossible de restaurer la session",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Si vous avez utilisé une version plus récente de Riot précédemment, votre session risque d’être incompatible avec cette version. Fermez cette fenêtre et retournez à la version plus récente.",
@@ -724,7 +724,7 @@
"Unknown devices": "Appareils inconnus",
"Unknown Address": "Adresse inconnue",
"Unblacklist": "Supprimer de la liste noire",
- "Blacklist": "Ajouter à la liste noire",
+ "Blacklist": "Blacklister",
"Unverify": "Non-vérifié",
"Verify...": "Vérifier...",
"ex. @bob:example.com": "ex. @bob:exemple.com",
@@ -758,11 +758,17 @@
"Disable URL previews by default for participants in this room": "Désactiver les aperçus d'URL par défaut pour les participants de ce salon",
"URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "Les aperçus d'URL sont %(globalDisableUrlPreview)s par défaut pour les participants de ce salon.",
"Enable URL previews for this room (affects only you)": "Activer les aperçus d'URL pour ce salon (n'affecte que vous)",
- "Drop file here to upload": "Déposer le fichier ici pour téléchargement",
+ "Drop file here to upload": "Déposer le fichier ici pour le télécharger",
" (unsupported)": " (non supporté)",
"Ongoing conference call%(supportedText)s. %(joinText)s": "Appel conférence en cours%(supportedText)s. %(joinText)s",
"Online": "En ligne",
- "Offline": "Hors ligne",
+ "Offline": "Déconnecté",
"Disable URL previews for this room (affects only you)": "Désactiver les aperçus d'URL pour ce salon (n'affecte que vous)",
- "Desktop specific": "Spécifique à la version bureau"
+ "Desktop specific": "Spécifique à l'application de bureau",
+ "Start automatically after system login": "Démarrer automatiquement après la phase d'authentification du système",
+ "Idle": "Inactif",
+ "Jump to first unread message.": "Aller au premier message non-lu.",
+ "Options": "Options",
+ "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?": "Vous êtes sur le point d’accéder à un site tiers afin de pouvoir vous identifier pour utiliser %(integrationsUrl)s. Voulez vous continuer ?",
+ "Removed or unknown message type": "Type de message inconnu ou supprimé"
}
diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json
index 33a44210de..91adec837f 100644
--- a/src/i18n/strings/zh_Hans.json
+++ b/src/i18n/strings/zh_Hans.json
@@ -154,5 +154,56 @@
"The email address linked to your account must be entered.": "必须输入和你账号关联的邮箱地址。",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "文件 '%(fileName)s' 超过了此主服务器的上传大小限制",
"The file '%(fileName)s' failed to upload": "文件 '%(fileName)s' 上传失败",
- "Guests can't use labs features. Please register.": "游客不能使用实验性功能。请注册。"
+ "Disable URL previews for this room (affects only you)": "在这个房间禁止URL预览(只影响你)",
+ "af": "南非荷兰语",
+ "ca": "加泰罗尼亚语",
+ "cs": "捷克语",
+ "da": "丹麦语",
+ "de-at": "德语(奥地利)",
+ "de-ch": "德语(瑞士)",
+ "de": "德语",
+ "de-lu": "德语(卢森堡)",
+ "el": "希腊语",
+ "en-au": "英语(澳大利亚)",
+ "en": "英语",
+ "zh-cn": "中文(中国)",
+ "zh-hk": "中文(香港)",
+ "zh-sg": "中文(新加坡)",
+ "zh-tw": "中国(台湾)",
+ "Add email address": "添加邮件地址",
+ "Add phone number": "添加电话号码",
+ "Advanced": "高级",
+ "Algorithm": "算法",
+ "Always show message timestamps": "总是显示消息时间戳",
+ "all room members": "所有聊天室成员",
+ "all room members, from the point they are invited": "所有聊天室成员,从他们被邀请开始",
+ "all room members, from the point they joined": "所有聊天室成员,从他们加入开始",
+ "an address": "一个地址",
+ "and": "和",
+ "%(names)s and %(lastPerson)s are typing": "%(names)s 和 %(lastPerson)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.": "一个新的密码必须被输入。",
+ "%(senderName)s answered the call.": "%(senderName)s 接了通话。",
+ "An error has occurred.": "一个错误出现了。",
+ "Attachment": "附件",
+ "Autoplay GIFs and videos": "自动播放GIF和视频",
+ "%(senderName)s banned %(targetName)s.": "%(senderName)s 封禁了 %(targetName)s.",
+ "Ban": "封禁",
+ "Banned users": "被封禁的用户",
+ "Click here": "点击这里",
+ "Click here to fix": "点击这里修复",
+ "Confirm password": "确认密码",
+ "Confirm your new password": "确认你的新密码",
+ "Continue": "继续",
+ "Ed25519 fingerprint": "Ed25519指纹",
+ "Invite new room members": "邀请新的聊天室成员",
+ "Join Room": "加入聊天室",
+ "joined": "加入了",
+ "%(targetName)s joined the room.": "%(targetName)s 加入了聊天室。",
+ "Jump to first unread message.": "跳到第一条未读消息。",
+ "%(senderName)s kicked %(targetName)s.": "%(senderName)s 把 %(targetName)s 踢出了聊天室。",
+ "Leave room": "离开聊天室",
+ "Login as guest": "以游客的身份登录",
+ "New password": "新密码"
}
From b4284cf0004458efe7d5bd18d7dafc0fd9f7752b Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Thu, 1 Jun 2017 01:17:39 +0100
Subject: [PATCH 042/170] fix up Can't connect to HS i18n with _tJsx
---
scripts/check-i18n.pl | 4 ++--
scripts/fix-i18n.pl | 4 ++++
src/components/structures/login/Login.js | 15 +++++++++------
src/i18n/strings/da.json | 1 -
src/i18n/strings/de_DE.json | 6 ++----
src/i18n/strings/en_EN.json | 13 ++++++++-----
src/i18n/strings/es.json | 4 ++--
src/i18n/strings/fr.json | 4 ++--
src/i18n/strings/nl.json | 4 ++--
src/i18n/strings/pt_BR.json | 4 ++--
src/i18n/strings/ru.json | 4 ++--
src/i18n/strings/zh_Hant.json | 4 ++--
12 files changed, 37 insertions(+), 30 deletions(-)
diff --git a/scripts/check-i18n.pl b/scripts/check-i18n.pl
index 0ace98d0fc..fa11bc5292 100755
--- a/scripts/check-i18n.pl
+++ b/scripts/check-i18n.pl
@@ -178,12 +178,12 @@ sub read_src_strings {
$src =~ s/"\s*\+\s*"//g;
$file =~ s/^.*\/src/src/;
- while ($src =~ /_t\(\s*'(.*?[^\\])'/sg) {
+ while ($src =~ /_t(?:Jsx)?\(\s*'(.*?[^\\])'/sg) {
my $s = $1;
$s =~ s/\\'/'/g;
push @$strings, [$s, $file];
}
- while ($src =~ /_t\(\s*"(.*?[^\\])"/sg) {
+ while ($src =~ /_t(?:Jsx)?\(\s*"(.*?[^\\])"/sg) {
push @$strings, [$1, $file];
}
}
diff --git a/scripts/fix-i18n.pl b/scripts/fix-i18n.pl
index d4ae3dfb49..9a12c9d909 100755
--- a/scripts/fix-i18n.pl
+++ b/scripts/fix-i18n.pl
@@ -48,6 +48,10 @@ Guests can't use labs features. Please register.
A new password must be entered.
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.
Guests cannot join this room even if explicitly invited.
+Guest users can't invite users. Please register to invite.
+This room is inaccessible to guests. You may be able to join if you register.
+delete the alias.
+remove %(name)s from the directory.
EOT
)];
}
diff --git a/src/components/structures/login/Login.js b/src/components/structures/login/Login.js
index eb4e559237..59d8c74022 100644
--- a/src/components/structures/login/Login.js
+++ b/src/components/structures/login/Login.js
@@ -222,17 +222,20 @@ module.exports = React.createClass({
(this.state.enteredHomeserverUrl.startsWith("http:") ||
!this.state.enteredHomeserverUrl.startsWith("http")))
{
- const urlStart = ;
- const urlEnd = ;
errorText =
- { _t('Can\'t connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s', {urlStart: urlStart, urlEnd: urlEnd})}
+ { _tJsx("Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. " +
+ "Either use HTTPS or enable unsafe scripts.",
+ /(.*?)<\/a>/,
+ (sub) => { return { sub }; }
+ )}
;
}
else {
- const urlStart = ;
- const urlEnd = ;
errorText =
- { _t('Can\'t connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver\'s SSL certificate %(urlEnd)s is trusted', {urlStart: urlStart, urlEnd: urlEnd})}
+ { _tJsx("Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.",
+ /(.*?)<\/a>/,
+ (sub) => { return { sub }; }
+ )}
;
}
}
diff --git a/src/i18n/strings/da.json b/src/i18n/strings/da.json
index 92665ac8d0..8ac311d315 100644
--- a/src/i18n/strings/da.json
+++ b/src/i18n/strings/da.json
@@ -40,7 +40,6 @@
"Searches DuckDuckGo for results": "Søger DuckDuckGo for resultater",
"Commands": "kommandoer",
"Emoji": "Emoji",
- "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar.": "Kan ikke oprette forbindelse til hjemmeserver via HTTP, når en HTTPS-URL er i din browserbjælke.",
"Sorry, this homeserver is using a login which is not recognised ": "Beklager, denne homeerver bruger et login, der ikke kan genkendes ",
"Login as guest": "Log ind som gæst",
"Return to app": "Tilbage til app",
diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json
index 5850f8e3e4..aafc06faec 100644
--- a/src/i18n/strings/de_DE.json
+++ b/src/i18n/strings/de_DE.json
@@ -228,7 +228,6 @@
"To kick users": "Um Nutzer zu entfernen",
"Admin": "Administrator",
"Server may be unavailable, overloaded, or you hit a bug": "Server könnte nicht verfügbar oder überlastet sein oder du bist auf einen Fehler gestoßen",
- "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar": "Verbindung zum Homeserver ist über HTTP nicht möglich, wenn HTTPS in deiner Browserleiste steht",
"Could not connect to the integration server": "Konnte keine Verbindung zum Integrations-Server herstellen",
"Disable inline URL previews by default": "URL-Vorschau im Chat standardmäßig deaktivieren",
"Guests can't use labs features. Please register.": "Gäste können keine Labor-Funktionen nutzen. Bitte registrieren.",
@@ -271,7 +270,6 @@
"Who would you like to add to this room?": "Wen möchtest du zu diesem Raum hinzufügen?",
"Who would you like to communicate with?": "Mit wem möchtest du kommunizieren?",
"Would you like to": "Möchtest du",
- "You are trying to access": "Du möchtest Zugang zu %(sth)s bekommen",
"You do not have permission to post to this room": "Du hast keine Berechtigung an diesen Raum etwas zu senden",
"You have been invited to join this room by %(inviterName)s": "Du wurdest in diesen Raum eingeladen von %(inviterName)s",
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Du wurdest von allen Geräten ausgeloggt und wirst keine Push-Benachrichtigungen mehr bekommen. Um Benachrichtigungen zu reaktivieren melde dich auf jedem Gerät neu an",
@@ -560,8 +558,8 @@
"Are you sure?": "Bist du sicher?",
"Attachment": "Anhang",
"Ban": "Verbannen",
- "Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "Kann nicht zum Heimserver verbinden - bitte checke eine Verbindung und stelle sicher, dass dem %(urlStart)s SSL-Zertifikat deines Heimservers %(urlEnd)s vertraut wird",
- "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "Kann nicht zum Heimserver via HTTP verbinden, wenn eine HTTPS-Url in deiner Adresszeile steht. Nutzer HTTPS oder %(urlStart)s aktiviere unsichere Skripte %(urlEnd)s",
+ "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "Kann nicht zum Heimserver verbinden - bitte checke eine Verbindung und stelle sicher, dass dem SSL-Zertifikat deines Heimservers vertraut wird.",
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Kann nicht zum Heimserver via HTTP verbinden, wenn eine HTTPS-Url in deiner Adresszeile steht. Nutzer HTTPS oder aktiviere unsichere Skripte.",
"changing room on a RoomView is not supported": "Das Ändern eines Raumes in einer RaumAnsicht wird nicht unterstützt",
"Click to mute audio": "Klicke um den Ton stumm zu stellen",
"Click to mute video": "Klicken, um das Video stummzuschalten",
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 729208dddc..ab2286b57b 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -166,8 +166,8 @@
"Bug Report": "Bug Report",
"Bulk Options": "Bulk Options",
"Call Timeout": "Call Timeout",
- "Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted",
- "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s",
+ "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.",
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.",
"Can't load user settings": "Can't load user settings",
"Change Password": "Change Password",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.",
@@ -220,6 +220,7 @@
"Devices will not yet be able to decrypt history from before they joined the room": "Devices will not yet be able to decrypt history from before they joined the room",
"Direct Chat": "Direct Chat",
"Direct chats": "Direct chats",
+ "disabled": "disabled",
"Disable inline URL previews by default": "Disable inline URL previews by default",
"Disinvite": "Disinvite",
"Display name": "Display name",
@@ -234,6 +235,7 @@
"Email, name or matrix ID": "Email, name or matrix ID",
"Emoji": "Emoji",
"Enable encryption": "Enable encryption",
+ "enabled": "enabled",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Encrypted messages will not be visible on clients that do not yet implement encryption",
"Encrypted room": "Encrypted room",
"%(senderName)s ended the call.": "%(senderName)s ended the call.",
@@ -584,6 +586,7 @@
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
"Set a display name:": "Set a display name:",
+ "Set a Display Name": "Set a Display Name",
"Upload an avatar:": "Upload an avatar:",
"This server does not support authentication with a phone number.": "This server does not support authentication with a phone number.",
"Missing password.": "Missing password.",
@@ -682,7 +685,6 @@
"Opt out of analytics": "Opt out of analytics",
"Options": "Options",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot collects anonymous analytics to allow us to improve the application.",
- "Please select the destination room for this message": "Please select the destination room for this message",
"Passphrases must match": "Passphrases must match",
"Passphrase must not be empty": "Passphrase must not be empty",
"Export room keys": "Export room keys",
@@ -690,11 +692,12 @@
"Confirm passphrase": "Confirm passphrase",
"Import room keys": "Import room keys",
"File to import": "File to import",
- "Enter passphrase": "Enter passphrase",
"This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.",
"The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.",
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.",
- "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.", "You must join the room to see its files": "You must join the room to see its files", "Server may be unavailable, overloaded, or you hit a bug.": "Server may be unavailable, overloaded, or you hit a bug.",
+ "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.",
+ "You must join the room to see its files": "You must join the room to see its files",
+ "Server may be unavailable, overloaded, or you hit a bug.": "Server may be unavailable, overloaded, or you hit a bug.",
"Reject all %(invitedRooms)s invites": "Reject all %(invitedRooms)s invites",
"Start new Chat": "Start new Chat",
"Guest users can't invite users. Please register.": "Guest users can't invite users. Please register.",
diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json
index 818fbf0c39..849a685667 100644
--- a/src/i18n/strings/es.json
+++ b/src/i18n/strings/es.json
@@ -166,8 +166,8 @@
"Bug Report": "Reporte de error",
"Bulk Options": "Opciones masivas",
"Call Timeout": "Tiempo de espera de la llamada",
- "Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "No se puede conectar con el servidor - Por favor verifique su conexión y asegúrese de que su %(urlStart)s certificado SSL del servidor %(urlEnd)s sea confiable",
- "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "No se puede conectar al servidor via HTTP, cuando es necesario un enlace HTTPS en la barra de direcciones de tu navegador. Ya sea usando HTTPS o %(urlStart)s habilitando los scripts inseguros %(urlEnd)s",
+ "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "No se puede conectar con el servidor - Por favor verifique su conexión y asegúrese de que su certificado SSL del servidor sea confiable.",
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "No se puede conectar al servidor via HTTP, cuando es necesario un enlace HTTPS en la barra de direcciones de tu navegador. Ya sea usando HTTPS o habilitando los scripts inseguros.",
"Can't load user settings": "No se puede cargar las configuraciones del usuario",
"Change Password": "Cambiar clave",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s ha cambiado su nombre de %(oldDisplayName)s a %(displayName)s.",
diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json
index 47ab9c7573..e518f80924 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -209,8 +209,8 @@
"Blacklisted": "Sur liste noire",
"Bug Report": "Rapport d'erreur",
"Call Timeout": "Délai d’appel expiré",
- "Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "Connexion au Home Server impossible - merci de vérifier votre connectivité et que le %(urlStart)s certificat SSL de votre Home Server %(urlEnd)s est de confiance",
- "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "Impossible de se connecter au homeserver en HTTP si l'URL dans la barre de votre explorateur est en HTTPS. Utilisez HTTPS ou %(urlStart)s activez le support des scripts non-vérifiés %(urlEnd)s",
+ "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "Connexion au Home Server impossible - merci de vérifier votre connectivité et que le certificat SSL de votre Home Server est de confiance.",
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Impossible de se connecter au homeserver en HTTP si l'URL dans la barre de votre explorateur est en HTTPS. Utilisez HTTPS ou activez le support des scripts non-vérifiés.",
"Can't load user settings": "Impossible de charger les paramètres utilisateur",
"Change Password": "Changer le mot de passe",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s a changé son nom d’affichage de %(oldDisplayName)s en %(displayName)s.",
diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json
index 809fe6c0d6..668fd2ba32 100644
--- a/src/i18n/strings/nl.json
+++ b/src/i18n/strings/nl.json
@@ -167,8 +167,8 @@
"Bug Report": "Bug report",
"Bulk Options": "Bulk opties",
"Call Timeout": "Gesprek time-out",
- "Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "Kan niet met de homeserver verbinden - controleer alsjeblieft je verbinding en wees zeker dat je %(urlStart)s homeserver's SSL certificaat %(urlEnd)s vertrouwd wordt",
- "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "Kan niet met de homeserver verbinden via HTTP wanneer er een HTTPS URL in je browser balk staat. Gebruik HTTPS of %(urlStart)s activeer onveilige scripts %(urlEnd)s",
+ "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "Kan niet met de homeserver verbinden - controleer alsjeblieft je verbinding en wees zeker dat je homeserver's SSL certificaat vertrouwd wordt.",
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Kan niet met de homeserver verbinden via HTTP wanneer er een HTTPS URL in je browser balk staat. Gebruik HTTPS of activeer onveilige scripts.",
"Can't load user settings": "Kan de gebruiker instellingen niet laden",
"Change Password": "Wachtwoord veranderen",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s heeft zijn of haar weergave naam veranderd van %(oldDisplayName)s naar %(displayName)s.",
diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json
index 7e4faf99a7..eb75bd4433 100644
--- a/src/i18n/strings/pt_BR.json
+++ b/src/i18n/strings/pt_BR.json
@@ -567,8 +567,8 @@
"sx": "Sutu",
"sz": "Sami (Lappish)",
"ve": "Venda",
- "Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "Não consigo conectar ao servidor padrão - favor checar sua conexão à internet e verificar se o certificado SSL do seu %(urlStart)s servidor padrão %(urlEnd)s é confiável",
- "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "Não consigo conectar ao servidor padrão através de HTTP quando uma URL HTTPS está na barra de endereços do seu navegador. Use HTTPS ou então %(urlStart)s habilite scripts não seguros no seu navegador %(urlEnd)s",
+ "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "Não consigo conectar ao servidor padrão - favor checar sua conexão à internet e verificar se o certificado SSL do seu servidor padrão é confiável.",
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Não consigo conectar ao servidor padrão através de HTTP quando uma URL HTTPS está na barra de endereços do seu navegador. Use HTTPS ou então habilite scripts não seguros no seu navegador.",
"Change Password": "Alterar senha",
"changing room on a RoomView is not supported": "mudar a sala em uma 'RoomView' não é permitido",
"Click to mute audio": "Clique para colocar o áudio no mudo",
diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json
index 9ed540a198..1ae4719402 100644
--- a/src/i18n/strings/ru.json
+++ b/src/i18n/strings/ru.json
@@ -452,7 +452,7 @@
"and %(overflowCount)s others...": "и %(overflowCount)s других...",
"Are you sure?": "Вы уверены?",
"Autoplay GIFs and videos": "Проигрывать GIF и видео автоматически",
- "Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "Невозможно соединиться с домашним сервером - проверьте своё соединение и убедитесь, что %(urlStart)s SSL-сертификат вашего домашнего сервера %(urlEnd)s включён в доверяемые",
+ "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "Невозможно соединиться с домашним сервером - проверьте своё соединение и убедитесь, что SSL-сертификат вашего домашнего сервера включён в доверяемые.",
"changing room on a RoomView is not supported": "изменение комнаты в RoomView не поддерживается",
"Click to mute audio": "Выключить звук",
"Click to mute video": "Выключить звук у видео",
@@ -651,5 +651,5 @@
"%(oneUser)schanged their avatar %(repeats)s times": "%(oneUser)sизменил своё изображение %(repeats)s раз",
"%(severalUsers)schanged their avatar": "%(severalUsers)sизменили своё изображение",
"%(oneUser)schanged their avatar": "%(oneUser)sизменил своё изображение",
- "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "Не возможно подключиться к серверу через HTTP, когда в строке браузера HTTPS. Используйте HTTPS или %(urlStart) включив небезопасные скрипты %(urlEnd)"
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "Не возможно подключиться к серверу через HTTP, когда в строке браузера HTTPS. Используйте HTTPS или включив небезопасные скрипты."
}
diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json
index d719b56ecc..f98bf452af 100644
--- a/src/i18n/strings/zh_Hant.json
+++ b/src/i18n/strings/zh_Hant.json
@@ -16,8 +16,8 @@
"Blacklisted": "已列入黑名單",
"Bug Report": "錯誤報告",
"Call Timeout": "通話超時",
- "Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "無法連結主伺服器 - 請檢查網路狀況並確保您的 %(urlStart)s 主伺服器 SSL 證書 %(urlEnd)s 得到信任",
- "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "當瀏覽器網址列里有 HTTPS URL 時,不能使用 HTTP 連結主伺服器。請採用 HTTPS 或者%(urlStart)s 允許不安全的腳本 %(urlEnd)s",
+ "Can't connect to homeserver - please check your connectivity and ensure your homeserver's SSL certificate is trusted.": "無法連結主伺服器 - 請檢查網路狀況並確保您的 主伺服器 SSL 證書 得到信任",
+ "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.": "當瀏覽器網址列里有 HTTPS URL 時,不能使用 HTTP 連結主伺服器。請採用 HTTPS 或者 允許不安全的腳本",
"Can't load user settings": "無法載入使用者設定",
"Change Password": "變更密碼",
"%(targetName)s left the room.": "%(targetName)s 離開了聊天室。"
From 5e3af22c5d147893d9dde44ac9cb98ec3182fadf Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Thu, 1 Jun 2017 01:18:46 +0100
Subject: [PATCH 043/170] fix broken i18n variable
---
src/i18n/strings/pt_BR.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json
index eb75bd4433..3846d5ba03 100644
--- a/src/i18n/strings/pt_BR.json
+++ b/src/i18n/strings/pt_BR.json
@@ -742,7 +742,7 @@
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "O arquivo exportado será protegido com uma senha. Você deverá inserir a senha aqui para poder descriptografar o arquivo futuramente.",
"You must join the room to see its files": "Você precisa ingressar na sala para ver seus arquivos",
"Server may be unavailable, overloaded, or you hit a bug.": "O servidor pode estar indisponível ou sobrecarregado, ou então você encontrou uma falha no sistema.",
- "Reject all %(invitedRooms)s invites": "Rejeitar todos os %(invitedRoom)s convites",
+ "Reject all %(invitedRooms)s invites": "Rejeitar todos os %(invitedRooms)s convites",
"Start new Chat": "Iniciar nova conversa",
"Guest users can't invite users. Please register.": "Visitantes não podem convidar usuárias(os) registradas(os). Favor registrar.",
"Failed to invite": "Falha ao enviar o convite",
From 3d91b3163747a9b8b291055af3aab07780bfb04d Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Thu, 1 Jun 2017 01:29:07 +0100
Subject: [PATCH 044/170] i18n invited, and delete stale warning
---
src/components/views/rooms/MemberList.js | 8 +-------
src/i18n/strings/en_EN.json | 1 +
src/i18n/strings/fr.json | 1 +
3 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js
index 20a0851bd4..63737d5fad 100644
--- a/src/components/views/rooms/MemberList.js
+++ b/src/components/views/rooms/MemberList.js
@@ -28,12 +28,6 @@ var CallHandler = require("../../../CallHandler");
var Invite = require("../../../Invite");
var INITIAL_LOAD_NUM_MEMBERS = 30;
-var SHARE_HISTORY_WARNING =
-
- Newly invited users will see the history of this room.
- If you'd prefer invited users not to see messages that were sent before they joined,
- turn off, 'Share message history with new users' in the settings for this room.
- ;
module.exports = React.createClass({
displayName: 'MemberList',
@@ -355,7 +349,7 @@ module.exports = React.createClass({
if (invitedMemberTiles.length > 0) {
invitedSection = (
-
Invited
+
{ _t("Invited") }
{invitedMemberTiles}
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index ab2286b57b..15aa3916bc 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -305,6 +305,7 @@
"Invalid file%(extra)s": "Invalid file%(extra)s",
"%(senderName)s invited %(targetName)s.": "%(senderName)s invited %(targetName)s.",
"Invite new room members": "Invite new room members",
+ "Invited": "Invited",
"Invites": "Invites",
"Invites user with given id to current room": "Invites user with given id to current room",
"is a": "is a",
diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json
index e518f80924..0f54913030 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -311,6 +311,7 @@
"Invalid Email Address": "Adresse e-mail invalide",
"%(senderName)s invited %(targetName)s.": "%(senderName)s a invité %(targetName)s.",
"Invite new room members": "Inviter de nouveaux membres",
+ "Invited": "Invités",
"Invites": "Invitations",
"Invites user with given id to current room": "Inviter l’utilisateur avec un ID donné dans le salon actuel",
"is a": "est un",
From d0215983805b88525dc84b5ccc18a6ada07ef5d7 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Thu, 1 Jun 2017 02:04:43 +0100
Subject: [PATCH 045/170] fix typo
---
src/languageHandler.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/languageHandler.js b/src/languageHandler.js
index e447a5678b..1c3acab082 100644
--- a/src/languageHandler.js
+++ b/src/languageHandler.js
@@ -107,7 +107,7 @@ export function _tJsx(jsxText, patterns, subs) {
}
// Allow overriding the text displayed when no translation exists
-// Currently only use din unit tests to avoid having to load
+// Currently only used in unit tests to avoid having to load
// the translations in riot-web
export function setMissingEntryGenerator(f) {
counterpart.setMissingEntryGenerator(f);
From b1475cb3090d5adb2aa5d0f1993d20f9337adf71 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Thu, 1 Jun 2017 02:04:46 +0100
Subject: [PATCH 046/170] bump js-sdk
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 0f1d4fb6e6..a6076a56d2 100644
--- a/package.json
+++ b/package.json
@@ -64,7 +64,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.7.9",
"optimist": "^0.6.1",
"q": "^1.4.1",
"react": "^15.4.0",
From b63adc9b105605d87a37ddfeaccbf0bae123cc36 Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Thu, 1 Jun 2017 02:15:48 +0100
Subject: [PATCH 047/170] Prepare changelog for v0.9.0-rc.1
---
CHANGELOG.md | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 112 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3b9ecdb325..23098c4749 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,115 @@
+Changes in [0.9.0-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.9.0-rc.1) (2017-06-01)
+=============================================================================================================
+[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.8.9...v0.9.0-rc.1)
+
+ * Fix rare case where presence duration is undefined
+ [\#982](https://github.com/matrix-org/matrix-react-sdk/pull/982)
+ * add concept of platform handling loudNotifications (bings/pings/whatHaveYou)
+ [\#985](https://github.com/matrix-org/matrix-react-sdk/pull/985)
+ * Fixes to i18n code
+ [\#984](https://github.com/matrix-org/matrix-react-sdk/pull/984)
+ * Update from Weblate.
+ [\#978](https://github.com/matrix-org/matrix-react-sdk/pull/978)
+ * Add partial support for RTL languages
+ [\#955](https://github.com/matrix-org/matrix-react-sdk/pull/955)
+ * Added two strings to translate
+ [\#975](https://github.com/matrix-org/matrix-react-sdk/pull/975)
+ * Update from Weblate.
+ [\#976](https://github.com/matrix-org/matrix-react-sdk/pull/976)
+ * Update from Weblate.
+ [\#974](https://github.com/matrix-org/matrix-react-sdk/pull/974)
+ * Initial Electron Settings - for Auto Launch
+ [\#920](https://github.com/matrix-org/matrix-react-sdk/pull/920)
+ * Fix missing string in the room settings
+ [\#973](https://github.com/matrix-org/matrix-react-sdk/pull/973)
+ * fix error in i18n string
+ [\#972](https://github.com/matrix-org/matrix-react-sdk/pull/972)
+ * Update from Weblate.
+ [\#970](https://github.com/matrix-org/matrix-react-sdk/pull/970)
+ * Support 12hr time in full date
+ [\#971](https://github.com/matrix-org/matrix-react-sdk/pull/971)
+ * Add _tJsx()
+ [\#968](https://github.com/matrix-org/matrix-react-sdk/pull/968)
+ * Update from Weblate.
+ [\#966](https://github.com/matrix-org/matrix-react-sdk/pull/966)
+ * Remove space between time and AM/PM
+ [\#969](https://github.com/matrix-org/matrix-react-sdk/pull/969)
+ * Piwik Analytics
+ [\#948](https://github.com/matrix-org/matrix-react-sdk/pull/948)
+ * Update from Weblate.
+ [\#965](https://github.com/matrix-org/matrix-react-sdk/pull/965)
+ * Improve ChatInviteDialog perf by ditching fuse, using indexOf and
+ lastActiveTs()
+ [\#960](https://github.com/matrix-org/matrix-react-sdk/pull/960)
+ * Say "X removed the room name" instead of showing nothing
+ [\#958](https://github.com/matrix-org/matrix-react-sdk/pull/958)
+ * roomview/roomheader fixes
+ [\#959](https://github.com/matrix-org/matrix-react-sdk/pull/959)
+ * Update from Weblate.
+ [\#953](https://github.com/matrix-org/matrix-react-sdk/pull/953)
+ * fix i18n in a situation where navigator.languages=[]
+ [\#956](https://github.com/matrix-org/matrix-react-sdk/pull/956)
+ * `t_` -> `_t` fix typo
+ [\#957](https://github.com/matrix-org/matrix-react-sdk/pull/957)
+ * Change redact -> remove for clarity
+ [\#831](https://github.com/matrix-org/matrix-react-sdk/pull/831)
+ * Update from Weblate.
+ [\#950](https://github.com/matrix-org/matrix-react-sdk/pull/950)
+ * fix mis-linting - missed it in code review :(
+ [\#952](https://github.com/matrix-org/matrix-react-sdk/pull/952)
+ * i18n fixes
+ [\#951](https://github.com/matrix-org/matrix-react-sdk/pull/951)
+ * Message Forwarding
+ [\#812](https://github.com/matrix-org/matrix-react-sdk/pull/812)
+ * don't focus_composer on window focus
+ [\#944](https://github.com/matrix-org/matrix-react-sdk/pull/944)
+ * Fix vector-im/riot-web#4042
+ [\#947](https://github.com/matrix-org/matrix-react-sdk/pull/947)
+ * import _t, drop two unused imports
+ [\#946](https://github.com/matrix-org/matrix-react-sdk/pull/946)
+ * Fix punctuation in TextForEvent to be i18n'd consistently
+ [\#945](https://github.com/matrix-org/matrix-react-sdk/pull/945)
+ * actually wire up alwaysShowTimestamps
+ [\#940](https://github.com/matrix-org/matrix-react-sdk/pull/940)
+ * Update from Weblate.
+ [\#943](https://github.com/matrix-org/matrix-react-sdk/pull/943)
+ * Update from Weblate.
+ [\#942](https://github.com/matrix-org/matrix-react-sdk/pull/942)
+ * Update from Weblate.
+ [\#941](https://github.com/matrix-org/matrix-react-sdk/pull/941)
+ * Update from Weblate.
+ [\#938](https://github.com/matrix-org/matrix-react-sdk/pull/938)
+ * Fix PM being AM
+ [\#939](https://github.com/matrix-org/matrix-react-sdk/pull/939)
+ * pass call state through dispatcher, for poor electron
+ [\#918](https://github.com/matrix-org/matrix-react-sdk/pull/918)
+ * Translations!
+ [\#934](https://github.com/matrix-org/matrix-react-sdk/pull/934)
+ * Remove suffix and prefix from login input username
+ [\#906](https://github.com/matrix-org/matrix-react-sdk/pull/906)
+ * Kierangould/12hourtimestamp
+ [\#903](https://github.com/matrix-org/matrix-react-sdk/pull/903)
+ * Don't include src in the test resolve root
+ [\#931](https://github.com/matrix-org/matrix-react-sdk/pull/931)
+ * Make the linked versions open a new tab, turt2live complained :P
+ [\#910](https://github.com/matrix-org/matrix-react-sdk/pull/910)
+ * Fix lint errors in SlashCommands
+ [\#919](https://github.com/matrix-org/matrix-react-sdk/pull/919)
+ * autoFocus input box
+ [\#911](https://github.com/matrix-org/matrix-react-sdk/pull/911)
+ * Make travis test against riot-web new-guest-access
+ [\#917](https://github.com/matrix-org/matrix-react-sdk/pull/917)
+ * Add right-branch logic to travis test script
+ [\#916](https://github.com/matrix-org/matrix-react-sdk/pull/916)
+ * Group e2e keys into blocks of 4 characters
+ [\#914](https://github.com/matrix-org/matrix-react-sdk/pull/914)
+ * Factor out DeviceVerifyDialog
+ [\#913](https://github.com/matrix-org/matrix-react-sdk/pull/913)
+ * Fix 'missing page_type' error
+ [\#909](https://github.com/matrix-org/matrix-react-sdk/pull/909)
+ * code style update
+ [\#904](https://github.com/matrix-org/matrix-react-sdk/pull/904)
+
Changes in [0.8.9](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.8.9) (2017-05-22)
===================================================================================================
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.8.9-rc.1...v0.8.9)
From bceef2db916c519d637923b2dd8f504cbd0c0cea Mon Sep 17 00:00:00 2001
From: Matthew Hodgson
Date: Thu, 1 Jun 2017 02:15:49 +0100
Subject: [PATCH 048/170] v0.9.0-rc.1
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index a6076a56d2..c17c8e83a8 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "matrix-react-sdk",
- "version": "0.8.9",
+ "version": "0.9.0-rc.1",
"description": "SDK for matrix.org using React",
"author": "matrix.org",
"repository": {
From 92d1a9a6ff0487b019cd3f63ddc30218522f3616 Mon Sep 17 00:00:00 2001
From: Hubert Chathi
Date: Wed, 31 May 2017 22:00:30 -0400
Subject: [PATCH 049/170] enable useCompactLayout user setting an add a class
when it's enabled
Signed-off-by: Hubert Chathi
---
src/components/structures/LoggedInView.js | 21 +++++++++++++++++++++
src/components/structures/UserSettings.js | 2 +-
src/i18n/strings/en_EN.json | 1 +
3 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/src/components/structures/LoggedInView.js b/src/components/structures/LoggedInView.js
index 5f1aa0d32a..b9ef73dd42 100644
--- a/src/components/structures/LoggedInView.js
+++ b/src/components/structures/LoggedInView.js
@@ -18,6 +18,7 @@ limitations under the License.
import * as Matrix from 'matrix-js-sdk';
import React from 'react';
+import UserSettingsStore from '../../UserSettingsStore';
import KeyCode from '../../KeyCode';
import Notifier from '../../Notifier';
import PageTypes from '../../PageTypes';
@@ -63,6 +64,13 @@ export default React.createClass({
};
},
+ getInitialState: function() {
+ return {
+ // use compact timeline view
+ useCompactLayout: UserSettingsStore.getSyncedSetting('useCompactLayout'),
+ };
+ },
+
componentWillMount: function() {
// stash the MatrixClient in case we log out before we are unmounted
this._matrixClient = this.props.matrixClient;
@@ -72,10 +80,12 @@ export default React.createClass({
this._scrollStateMap = {};
document.addEventListener('keydown', this._onKeyDown);
+ this._matrixClient.on("accountData", this.onAccountData);
},
componentWillUnmount: function() {
document.removeEventListener('keydown', this._onKeyDown);
+ this._matrixClient.removeListener("accountData", this.onAccountData);
},
getScrollStateForRoom: function(roomId) {
@@ -89,6 +99,14 @@ export default React.createClass({
return this.refs.roomView.canResetTimeline();
},
+ onAccountData: function(event) {
+ if (event.getType() === "im.vector.web.settings") {
+ this.setState({
+ useCompactLayout: event.getContent().useCompactLayout
+ });
+ }
+ },
+
_onKeyDown: function(ev) {
/*
// Remove this for now as ctrl+alt = alt-gr so this breaks keyboards which rely on alt-gr for numbers
@@ -245,6 +263,9 @@ export default React.createClass({
if (topBar) {
bodyClasses += ' mx_MatrixChat_toolbarShowing';
}
+ if (this.state.useCompactLayout) {
+ bodyClasses += ' mx_MatrixChat_useCompactLayout';
+ }
return (
diff --git a/src/components/structures/UserSettings.js b/src/components/structures/UserSettings.js
index 725139de64..c545a75d45 100644
--- a/src/components/structures/UserSettings.js
+++ b/src/components/structures/UserSettings.js
@@ -79,11 +79,11 @@ const SETTINGS_LABELS = [
id: 'showTwelveHourTimestamps',
label: 'Show timestamps in 12 hour format (e.g. 2:30pm)',
},
-/*
{
id: 'useCompactLayout',
label: 'Use compact timeline layout',
},
+/*
{
id: 'useFixedWidthFont',
label: 'Use fixed width font',
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 4cf16b3d5d..a52082a236 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -517,6 +517,7 @@
"Upload Files": "Upload Files",
"Upload file": "Upload file",
"Usage": "Usage",
+ "Use compact timeline layout": "Use compact timeline layout",
"Use with caution": "Use with caution",
"User ID": "User ID",
"User Interface": "User Interface",
From 98c4252840b83ea287cf3f79e150d17e51daaaeb Mon Sep 17 00:00:00 2001
From: Richard van der Hoff
Date: Thu, 1 Jun 2017 09:26:35 +0100
Subject: [PATCH 050/170] Throw errors when components don't look like
components (#980)
- instead of mysteriously throwing an error later on.
---
src/Skinner.js | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/src/Skinner.js b/src/Skinner.js
index 4482f2239c..0688c9fc26 100644
--- a/src/Skinner.js
+++ b/src/Skinner.js
@@ -23,22 +23,28 @@ class Skinner {
if (this.components === null) {
throw new Error(
"Attempted to get a component before a skin has been loaded."+
- "This is probably because either:"+
+ " This is probably because either:"+
" a) Your app has not called sdk.loadSkin(), or"+
- " b) A component has called getComponent at the root level"
+ " b) A component has called getComponent at the root level",
);
}
- var comp = this.components[name];
- if (comp) {
- return comp;
- }
+ let comp = this.components[name];
// XXX: Temporarily also try 'views.' as we're currently
// leaving the 'views.' off views.
- var comp = this.components['views.'+name];
- if (comp) {
- return comp;
+ if (!comp) {
+ comp = this.components['views.'+name];
}
- throw new Error("No such component: "+name);
+
+ if (!comp) {
+ throw new Error("No such component: "+name);
+ }
+
+ // components have to be functions.
+ const validType = typeof comp === 'function';
+ if (!validType) {
+ throw new Error(`Not a valid component: ${name}.`);
+ }
+ return comp;
}
load(skinObject) {
From 63c9ec7d532f1871876a5f6496758540f4dadea9 Mon Sep 17 00:00:00 2001
From: Amandine
Date: Thu, 1 Jun 2017 08:48:32 +0000
Subject: [PATCH 051/170] Translated using Weblate (French)
Currently translated at 100.0% (770 of 770 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/fr/
---
src/i18n/strings/fr.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json
index 47ab9c7573..5a0d16fcc3 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -128,7 +128,7 @@
"Displays action": "Affiche l'action",
"Don't send typing notifications": "Ne pas envoyer les notifications de saisie",
"Download %(text)s": "Télécharger %(text)s",
- "Drop here %(toAction)s": "Déposer ici %(toAction)s",
+ "Drop here %(toAction)s": "Déposer ici pour %(toAction)s",
"Drop here to tag %(section)s": "Déposer ici pour marque comme %(section)s",
"Ed25519 fingerprint": "Empreinte Ed25519",
"Email Address": "Adresse e-mail",
@@ -723,7 +723,7 @@
"\"%(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",
- "Unblacklist": "Supprimer de la liste noire",
+ "Unblacklist": "Réhabiliter",
"Blacklist": "Blacklister",
"Unverify": "Non-vérifié",
"Verify...": "Vérifier...",
From 84fa154016df9777683fa7c8712cf9d806aec8a6 Mon Sep 17 00:00:00 2001
From: Krombel
Date: Thu, 1 Jun 2017 11:02:48 +0000
Subject: [PATCH 052/170] Translated using Weblate (German)
Currently translated at 100.0% (770 of 770 strings)
Translation: Riot Web/matrix-react-sdk
Translate-URL: https://translate.nordgedanken.de/projects/riot-web/matrix-react-sdk/de/
---
src/i18n/strings/de_DE.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json
index 5850f8e3e4..7f79633a58 100644
--- a/src/i18n/strings/de_DE.json
+++ b/src/i18n/strings/de_DE.json
@@ -822,5 +822,7 @@
"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?": "Du wirst jetzt auf eine Drittanbieter-Website weitergeleitet, damit du dein Konto authentifizieren kannst für die Verwendung mit %(integrationsUrl)s. Möchtest du fortfahren?",
"Disable URL previews for this room (affects only you)": "Deaktiviere die URL-Vorschau für diesen Raum (betrifft nur dich)",
"Start automatically after system login": "Starte automatisch nach System-Login",
- "Desktop specific": "Desktopspezifisch"
+ "Desktop specific": "Desktopspezifisch",
+ "Jump to first unread message.": "Springe zur ersten ungelesenen Nachricht.",
+ "Options": "Optionen"
}
From b26f4ba578d3c7422033273a9b6ee78a7e37eafa Mon Sep 17 00:00:00 2001
From: Kegan Dougal
Date: Thu, 1 Jun 2017 12:09:07 +0100
Subject: [PATCH 053/170] First lot of translations
---
src/async-components/views/dialogs/ExportE2eKeysDialog.js | 4 ++--
src/async-components/views/dialogs/ImportE2eKeysDialog.js | 2 +-
src/i18n/strings/en_EN.json | 2 ++
3 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/async-components/views/dialogs/ExportE2eKeysDialog.js b/src/async-components/views/dialogs/ExportE2eKeysDialog.js
index 5abd758fa8..d6f16a7105 100644
--- a/src/async-components/views/dialogs/ExportE2eKeysDialog.js
+++ b/src/async-components/views/dialogs/ExportE2eKeysDialog.js
@@ -166,11 +166,11 @@ export default React.createClass({