From 650d45466c78c69d00fd1c61d55debfe70a0d21d Mon Sep 17 00:00:00 2001
From: Matthew Hodgson <matthew@matrix.org>
Date: Thu, 1 Jun 2017 22:06:02 +0100
Subject: [PATCH] fix up missing strings caused by punctuation changes

---
 scripts/fix-i18n.pl           |  9 +++++++++
 src/i18n/strings/de_DE.json   | 18 +++++++++---------
 src/i18n/strings/es.json      |  6 +++---
 src/i18n/strings/fr.json      | 18 +++++++++---------
 src/i18n/strings/nl.json      |  4 ++--
 src/i18n/strings/pt.json      | 16 ++++++++--------
 src/i18n/strings/pt_BR.json   | 18 +++++++++---------
 src/i18n/strings/ru.json      | 14 +++++++-------
 src/i18n/strings/zh_Hans.json | 36 +++++++++++++++++------------------
 src/i18n/strings/zh_Hant.json |  6 +++---
 10 files changed, 77 insertions(+), 68 deletions(-)

diff --git a/scripts/fix-i18n.pl b/scripts/fix-i18n.pl
index 9a12c9d909..247b2b663f 100755
--- a/scripts/fix-i18n.pl
+++ b/scripts/fix-i18n.pl
@@ -52,6 +52,15 @@ 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.
+Conference call failed.
+Conference calling is in development and may not be reliable.
+Guest users can't create new rooms. Please register to create room and start a chat.
+Server may be unavailable, overloaded, or you hit a bug.
+Server unavailable, overloaded, or something else went wrong.
+You are already in a call.
+You cannot place VoIP calls in this browser.
+You cannot place a call with yourself.
+Your email address does not appear to be associated with a Matrix ID on this Homeserver.
 EOT
 )];
 }
diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json
index 00de1617a1..baf2b317cf 100644
--- a/src/i18n/strings/de_DE.json
+++ b/src/i18n/strings/de_DE.json
@@ -227,7 +227,7 @@
     "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",
+    "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.",
     "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.",
@@ -280,15 +280,15 @@
     "times": "mal",
     "Bulk Options": "Bulk-Optionen",
     "Call Timeout": "Anruf-Timeout",
-    "Conference call failed": "Konferenzgespräch fehlgeschlagen",
-    "Conference calling is in development and may not be reliable": "Konferenzgespräche sind in Entwicklung und evtl. nicht zuverlässig",
+    "Conference call failed.": "Konferenzgespräch fehlgeschlagen.",
+    "Conference calling is in development and may not be reliable.": "Konferenzgespräche sind in Entwicklung und evtl. nicht zuverlässig.",
     "Conference calls are not supported in encrypted rooms": "Konferenzgespräche sind in verschlüsselten Räumen nicht unterstützt",
     "Conference calls are not supported in this client": "Konferenzgespräche sind in diesem Client nicht unterstützt",
     "Existing Call": "Existierender Anruf",
     "Failed to set up conference call": "Konferenzgespräch konnte nicht gestartet werden",
     "Failed to verify email address: make sure you clicked the link in the email": "Verifizierung der E-Mail-Adresse fehlgeschlagen: Bitte stelle sicher, dass du den Link in der E-Mail angeklickt hast",
     "Failure to create room": "Raumerstellung fehlgeschlagen",
-    "Guest users can't create new rooms. Please register to create room and start a chat": "Gäste können keine neuen Räume erstellen. Bitte registrieren um einen Raum zu erstellen und einen Chat zu starten",
+    "Guest users can't create new rooms. Please register to create room and start a chat.": "Gäste können keine neuen Räume erstellen. Bitte registrieren um einen Raum zu erstellen und einen Chat zu starten.",
     "Riot does not have permission to send you notifications - please check your browser settings": "Riot hat keine Berechtigung Benachrichtigungen zu senden - bitte prüfe deine Browser-Einstellungen",
     "Riot was not given permission to send notifications - please try again": "Riot hat das Recht nicht bekommen Benachrichtigungen zu senden. Bitte erneut probieren",
     "This email address is already in use": "Diese E-Mail-Adresse wird bereits verwendet",
@@ -302,11 +302,11 @@
     "Unable to enable Notifications": "Unfähig Benachrichtigungen zu aktivieren",
     "Upload Failed": "Upload fehlgeschlagen",
     "VoIP is unsupported": "VoIP wird nicht unterstützt",
-    "You are already in a call": "Du bist bereits bei einem Anruf",
-    "You cannot place a call with yourself": "Du kannst keinen Anruf mit dir selbst starten",
-    "You cannot place VoIP calls in this browser": "Du kannst kein VoIP-Gespräch in diesem Browser starten",
+    "You are already in a call.": "Du bist bereits bei einem Anruf.",
+    "You cannot place a call with yourself.": "Du kannst keinen Anruf mit dir selbst starten.",
+    "You cannot place VoIP calls in this browser.": "Du kannst kein VoIP-Gespräch in diesem Browser starten.",
     "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.": "Du musst dich erneut anmelden, um Ende-zu-Ende-Verschlüsselungs-Schlüssel für dieses Gerät zu generieren und um den öffentlichen Schlüssel auf deinem Homeserver zu hinterlegen. Dies muss nur einmal durchgeführt werden, bitte entschuldige die Unannehmlichkeiten.",
-    "Your email address does not appear to be associated with a Matrix ID on this Homeserver": "Deine E-Mail-Adresse scheint nicht mit einer Matrix-ID auf diesem Homeserver verknüpft zu sein",
+    "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Deine E-Mail-Adresse scheint nicht mit einer Matrix-ID auf diesem Homeserver verknüpft zu sein.",
     "Sun": "So",
     "Mon": "Mo",
     "Tue": "Di",
@@ -608,7 +608,7 @@
     "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": "Der Server ist entweder nicht verfügbar, überlastet oder es liegt ein anderweitiger Fehler vor",
+    "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",
diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json
index 849a685667..e071e63a3a 100644
--- a/src/i18n/strings/es.json
+++ b/src/i18n/strings/es.json
@@ -191,8 +191,8 @@
     "Click to unmute audio": "Haz clic para activar sonido de audio",
     "Command error": "Error de comando",
     "Commands": "Comandos",
-    "Conference call failed": "La llamada de conferencia falló",
-    "Conference calling is in development and may not be reliable": "La llamada en conferencia esta en desarrollo y no podría ser segura",
+    "Conference call failed.": "La llamada de conferencia falló.",
+    "Conference calling is in development and may not be reliable.": "La llamada en conferencia esta en desarrollo y no podría ser segura.",
     "Conference calls are not supported in encrypted rooms": "Las llamadas en conferencia no son soportadas en salas encriptadas",
     "Conference calls are not supported in this client": "Las llamadas en conferencia no son soportadas en este navegador",
     "Confirm password": "Confirmar clave",
@@ -281,7 +281,7 @@
     "Found a bug?": "¿Encontraste un error?",
     "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s a %(toPowerLevel)s",
     "Guests can't set avatars. Please register.": "Invitados no puedes establecer avatares. Por favor regístrate.",
-    "Guest users can't create new rooms. Please register to create room and start a chat": "Usuarios invitados no pueden crear nuevas salas. Por favor regístrate para crear la sala y iniciar la conversación",
+    "Guest users can't create new rooms. Please register to create room and start a chat.": "Usuarios invitados no pueden crear nuevas salas. Por favor regístrate para crear la sala y iniciar la conversación.",
     "Guest users can't upload files. Please register to upload": "Usuarios invitados no puedes subir archivos. Por favor regístrate para subir tus archivos",
     "Guests can't use labs features. Please register.": "Invitados no puedes usar las características en desarrollo. Por favor regístrate.",
     "Guests cannot join this room even if explicitly invited.": "Invitados no pueden unirse a esta sala aun cuando han sido invitados explícitamente.",
diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json
index 695c3b7222..fbcc04e881 100644
--- a/src/i18n/strings/fr.json
+++ b/src/i18n/strings/fr.json
@@ -232,8 +232,8 @@
     "Click to unmute audio": "Cliquer pour rétablir le son",
     "Command error": "Erreur de commande",
     "Commands": "Commandes",
-    "Conference call failed": "Échec de la conférence",
-    "Conference calling is in development and may not be reliable": "Les appels en conférence sont encore en développement et sont potentiellement peu fiables",
+    "Conference call failed.": "Échec de la conférence.",
+    "Conference calling is in development and may not be reliable.": "Les appels en conférence sont encore en développement et sont potentiellement peu fiables.",
     "Conference calls are not supported in encrypted rooms": "Les appels en conférence ne sont pas supportés dans les salons encryptés",
     "Conference calls are not supported in this client": "Les appels en conférence ne sont pas supportés avec ce client",
     "Confirm password": "Confirmer le mot de passe",
@@ -293,7 +293,7 @@
     "For security, this session has been signed out. Please sign in again.": "Par sécurité, la session a expiré. Merci de vous authentifer à nouveau.",
     "Found a bug?": "Trouvé un problème ?",
     "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s à %(toPowerLevel)s",
-    "Guest users can't create new rooms. Please register to create room and start a chat": "Les visiteurs ne peuvent créer de nouveaux salons. Merci de vous enregistrer pour commencer une discussion",
+    "Guest users can't create new rooms. Please register to create room and start a chat.": "Les visiteurs ne peuvent créer de nouveaux salons. Merci de vous enregistrer pour commencer une discussion.",
     "Guest users can't upload files. Please register to upload": "Les visiteurs ne peuvent telécharger de fichiers. Merci de vous enregistrer pour télécharger",
     "had": "avait",
     "Hangup": "Raccrocher",
@@ -444,8 +444,8 @@
     "Server may be unavailable or overloaded": "Le serveur semble être inaccessible ou surchargé",
     "Server may be unavailable, overloaded, or search timed out :(": "Le serveur semble être inaccessible, surchargé ou la recherche a expiré :(",
     "Server may be unavailable, overloaded, or the file too big": "Le serveur semble être inaccessible, surchargé ou le fichier trop important",
-    "Server may be unavailable, overloaded, or you hit a bug": "Le serveur semble être inaccessible, surchargé ou vous avez rencontré un problème",
-    "Server unavailable, overloaded, or something else went wrong": "Le serveur semble être inaccessible, surchargé ou quelque chose s'est mal passé",
+    "Server may be unavailable, overloaded, or you hit a bug.": "Le serveur semble être inaccessible, surchargé ou vous avez rencontré un problème.",
+    "Server unavailable, overloaded, or something else went wrong.": "Le serveur semble être inaccessible, surchargé ou quelque chose s'est mal passé.",
     "Session ID": "Identifiant de session",
     "%(senderName)s set a profile picture.": "%(senderName)s a défini une photo de profil.",
     "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s a défini son nom d’affichage comme %(displayName)s.",
@@ -556,11 +556,11 @@
     "Who would you like to communicate with?": "Avec qui voulez-vous communiquer ?",
     "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s a révoqué l’invitation de %(targetName)s.",
     "Would you like to": "Voulez-vous",
-    "You are already in a call": "Vous êtes déjà dans un appel",
+    "You are already in a call.": "Vous êtes déjà dans un appel.",
     "You're not in any rooms yet! Press": "Vous n’êtes dans aucun salon ! Cliquez",
     "You are trying to access %(roomName)s": "Vous essayez d'accéder à %(roomName)s",
-    "You cannot place a call with yourself": "Vous ne pouvez pas passer d'appel avec vous-même",
-    "You cannot place VoIP calls in this browser": "Vous ne pouvez pas passer d'appel voix dans cet explorateur",
+    "You cannot place a call with yourself.": "Vous ne pouvez pas passer d'appel avec vous-même.",
+    "You cannot place VoIP calls in this browser.": "Vous ne pouvez pas passer d'appel voix dans cet explorateur.",
     "You do not have permission to post to this room": "Vous n’avez pas la permission de poster dans ce salon",
     "You have been invited to join this room by %(inviterName)s": "Vous avez été invité à joindre ce salon par %(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": "Vous avez été déconnecté de tous vos appareils et ne recevrez plus de notifications. Pour réactiver les notificationsm identifiez vous à nouveau sur tous les appareils",
@@ -570,7 +570,7 @@
     "You need to be logged in.": "Vous devez être connecté.",
     "You need to enter a user name.": "Vous devez entrer un nom d’utilisateur.",
     "You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.": "Vous devez vous connecter à nouveau pour générer les clés d’encryption pour cet appareil, et soumettre la clé publique à votre homeserver. Cette action ne se reproduira pas; veuillez nous excuser pour la gêne occasionnée.",
-    "Your email address does not appear to be associated with a Matrix ID on this Homeserver": "Votre adresse e-mail ne semble pas associée à un identifiant Matrix sur ce homeserver",
+    "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Votre adresse e-mail ne semble pas associée à un identifiant Matrix sur ce homeserver.",
     "Your password has been reset": "Votre mot de passe a été réinitialisé",
     "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Votre mot de passe a été mis à jour avec succès. Vous ne recevrez plus de notification sur vos appareils jusqu’à ce que vous vous identifiez à nouveau",
     "You seem to be in a call, are you sure you want to quit?": "Vous semblez avoir un appel en cours, êtes-vous sûr(e) de vouloir quitter ?",
diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json
index 668fd2ba32..b89c360792 100644
--- a/src/i18n/strings/nl.json
+++ b/src/i18n/strings/nl.json
@@ -191,8 +191,8 @@
     "Click to unmute audio": "Klik om het dempen van het geluid op te heffen",
     "Command error": "Opdracht fout",
     "Commands": "Opdrachten",
-    "Conference call failed": "Conferentie gesprek mislukt",
-    "Conference calling is in development and may not be reliable": "Conferentie gesprekken zijn nog in ontwikkelingen en kunnen onbetrouwbaar zijn",
+    "Conference call failed.": "Conferentie gesprek mislukt.",
+    "Conference calling is in development and may not be reliable.": "Conferentie gesprekken zijn nog in ontwikkelingen en kunnen onbetrouwbaar zijn.",
     "Conference calls are not supported in encrypted rooms": "Conferentie gesprekken worden niet ondersteunt in versleutelde kamers",
     "Conference calls are not supported in this client": "Conferentie gesprekken worden niet ondersteunt in deze client",
     "Confirm password": "Bevestigen wachtwoord",
diff --git a/src/i18n/strings/pt.json b/src/i18n/strings/pt.json
index f57ee4109a..ad4a9774d6 100644
--- a/src/i18n/strings/pt.json
+++ b/src/i18n/strings/pt.json
@@ -188,7 +188,7 @@
     "sent an invitation to": "enviou um convite para",
     "sent a video": "enviou um vídeo",
     "Server may be unavailable or overloaded": "Servidor pode estar indisponível ou sobrecarregado",
-    "Server may be unavailable, overloaded, or you hit a bug": "Servidor pode estar indisponível, sobrecarregado ou aconteceu um erro de execução",
+    "Server may be unavailable, overloaded, or you hit a bug.": "Servidor pode estar indisponível, sobrecarregado ou aconteceu um erro de execução.",
     "Session ID": "Identificador de sessão",
     "set a profile picture": "colocou uma foto de perfil",
     "set their display name to": "configurou seu nome para",
@@ -320,8 +320,8 @@
     "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s alterou o nome da sala para %(roomName)s.",
     "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s alterou o tópico para \"%(topic)s\".",
     "click to reveal": "clique para ver",
-    "Conference call failed": "Chamada de conferência falhou",
-    "Conference calling is in development and may not be reliable": "Chamadas de conferência estão em desenvolvimento e portanto podem não funcionar",
+    "Conference call failed.": "Chamada de conferência falhou.",
+    "Conference calling is in development and may not be reliable.": "Chamadas de conferência estão em desenvolvimento e portanto podem não funcionar.",
     "Conference calls are not supported in encrypted rooms": "Chamadas de conferência não são possíveis em salas criptografadas",
     "Conference calls are not supported in this client": "Chamadas de conferência não são possíveis neste navegador",
     "/ddg is not a command": "/ddg não é um comando",
@@ -336,7 +336,7 @@
     "Failed to verify email address: make sure you clicked the link in the email": "Não foi possível verificar o endereço de email: verifique se você realmente clicou no link que está no seu email",
     "Failure to create room": "Não foi possível criar a sala",
     "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s para %(toPowerLevel)s",
-    "Guest users can't create new rooms. Please register to create room and start a chat": "Visitantes não podem criar novas salas. Por favor, registre-se para criar uma sala e iniciar uma conversa",
+    "Guest users can't create new rooms. Please register to create room and start a chat.": "Visitantes não podem criar novas salas. Por favor, registre-se para criar uma sala e iniciar uma conversa.",
     "%(senderName)s invited %(targetName)s.": "%(senderName)s convidou %(targetName)s.",
     "%(displayName)s is typing": "%(displayName)s está escrevendo",
     "%(targetName)s joined the room.": "%(targetName)s entrou na sala.",
@@ -392,15 +392,15 @@
     "Use with caution": "Use com cautela",
     "VoIP is unsupported": "Chamada de voz não permitida",
     "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s desfez o convite a %(targetName)s's.",
-    "You are already in a call": "Você já está em  uma chamada",
+    "You are already in a call.": "Você já está em  uma chamada.",
     "You're not in any rooms yet! Press": "Você ainda não está em nenhuma sala! Pressione",
     "You are trying to access %(roomName)s": "Você está tentando acessar a sala %(roomName)s",
-    "You cannot place a call with yourself": "Você não pode iniciar uma chamada",
-    "You cannot place VoIP calls in this browser": "Você não pode fazer chamadas de voz neste navegador",
+    "You cannot place a call with yourself.": "Você não pode iniciar uma chamada.",
+    "You cannot place VoIP calls in this browser.": "Você não pode fazer chamadas de voz neste navegador.",
     "You need to be able to invite users to do that.": "Para fazer isso, você tem que ter permissão para convidar outras pessoas.",
     "You need to be logged in.": "Você tem que estar logado.",
     "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.": "É necessário que você faça login novamente para poder gerar as chaves de criptografia ponta-a-ponta para este dispositivo e então enviar sua chave pública para o servidor. Pedimos desculpas pela inconveniência, é preciso fazer isso apenas única uma vez.",
-    "Your email address does not appear to be associated with a Matrix ID on this Homeserver": "O seu endereço de email não parece estar associado a uma conta de usuária/o Matrix neste servidor",
+    "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "O seu endereço de email não parece estar associado a uma conta de usuária/o Matrix neste servidor.",
     "Set a display name:": "Defina um nome público para você:",
     "Upload an avatar:": "Envie uma imagem de perfil para identificar você:",
     "This server does not support authentication with a phone number.": "Este servidor não permite a autenticação através de números de telefone.",
diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json
index 3846d5ba03..f987a0cd68 100644
--- a/src/i18n/strings/pt_BR.json
+++ b/src/i18n/strings/pt_BR.json
@@ -193,7 +193,7 @@
     "sent an invitation to": "enviou um convite para",
     "sent a video": "enviou um vídeo",
     "Server may be unavailable or overloaded": "Servidor pode estar indisponível ou sobrecarregado",
-    "Server may be unavailable, overloaded, or you hit a bug": "Servidor pode estar indisponível, sobrecarregado ou aconteceu um erro de execução",
+    "Server may be unavailable, overloaded, or you hit a bug.": "Servidor pode estar indisponível, sobrecarregado ou aconteceu um erro de execução.",
     "Session ID": "Identificador de sessão",
     "set a profile picture": "colocou uma foto de perfil",
     "set their display name to": "configurou seu nome para",
@@ -324,8 +324,8 @@
     "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s alterou o nível de permissões de %(powerLevelDiffText)s.",
     "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s alterou o nome da sala para %(roomName)s.",
     "click to reveal": "clique para ver",
-    "Conference call failed": "Chamada de conferência falhou",
-    "Conference calling is in development and may not be reliable": "Chamadas de conferência estão em desenvolvimento e portanto podem não funcionar",
+    "Conference call failed.": "Chamada de conferência falhou.",
+    "Conference calling is in development and may not be reliable.": "Chamadas de conferência estão em desenvolvimento e portanto podem não funcionar.",
     "Conference calls are not supported in encrypted rooms": "Chamadas de conferência não são possíveis em salas criptografadas",
     "Conference calls are not supported in this client": "Chamadas de conferência não são possíveis neste navegador",
     "/ddg is not a command": "/ddg não é um comando",
@@ -340,7 +340,7 @@
     "Failed to verify email address: make sure you clicked the link in the email": "Não foi possível verificar o endereço de email: verifique se você realmente clicou no link que está no seu email",
     "Failure to create room": "Não foi possível criar a sala",
     "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s para %(toPowerLevel)s",
-    "Guest users can't create new rooms. Please register to create room and start a chat": "Visitantes não podem criar novas salas. Por favor, registre-se para criar uma sala e iniciar uma conversa",
+    "Guest users can't create new rooms. Please register to create room and start a chat.": "Visitantes não podem criar novas salas. Por favor, registre-se para criar uma sala e iniciar uma conversa.",
     "%(senderName)s invited %(targetName)s.": "%(senderName)s convidou %(targetName)s.",
     "%(displayName)s is typing": "%(displayName)s está escrevendo",
     "%(targetName)s joined the room.": "%(targetName)s entrou na sala.",
@@ -397,15 +397,15 @@
     "Use with caution": "Use com cautela",
     "VoIP is unsupported": "Chamada de voz não permitida",
     "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s desfez o convite a %(targetName)s.",
-    "You are already in a call": "Você já está em  uma chamada",
+    "You are already in a call.": "Você já está em  uma chamada.",
     "You're not in any rooms yet! Press": "Você ainda não está em nenhuma sala! Pressione",
     "You are trying to access %(roomName)s": "Você está tentando acessar a sala %(roomName)s",
-    "You cannot place a call with yourself": "Você não pode iniciar uma chamada",
-    "You cannot place VoIP calls in this browser": "Você não pode fazer chamadas de voz neste navegador",
+    "You cannot place a call with yourself.": "Você não pode iniciar uma chamada.",
+    "You cannot place VoIP calls in this browser.": "Você não pode fazer chamadas de voz neste navegador.",
     "You need to be able to invite users to do that.": "Para fazer isso, você tem que ter permissão para convidar outras pessoas.",
     "You need to be logged in.": "Você tem que estar logado.",
     "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.": "É necessário que você faça login novamente para poder gerar as chaves de criptografia ponta-a-ponta para este dispositivo e então enviar sua chave pública para o servidor. Pedimos desculpas pela inconveniência, é preciso fazer isso apenas única uma vez.",
-    "Your email address does not appear to be associated with a Matrix ID on this Homeserver": "O seu endereço de email não parece estar associado a uma conta de usuária/o Matrix neste servidor",
+    "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "O seu endereço de email não parece estar associado a uma conta de usuária/o Matrix neste servidor.",
     "Set a display name:": "Defina um nome público para você:",
     "Upload an avatar:": "Envie uma imagem de perfil para identificar você:",
     "This server does not support authentication with a phone number.": "Este servidor não permite a autenticação através de números de telefone.",
@@ -626,7 +626,7 @@
     "Server error": "Erro no servidor",
     "Server may be unavailable, overloaded, or search timed out :(": "O servidor pode estar indisponível, sobrecarregado, ou a busca ultrapassou o tempo limite :(",
     "Server may be unavailable, overloaded, or the file too big": "O servidor pode estar indisponível, sobrecarregado, ou o arquivo é muito grande",
-    "Server unavailable, overloaded, or something else went wrong": "O servidor pode estar indisponível, sobrecarregado, ou alguma outra coisa não funcionou",
+    "Server unavailable, overloaded, or something else went wrong.": "O servidor pode estar indisponível, sobrecarregado, ou alguma outra coisa não funcionou.",
     "Some of your messages have not been sent": "Algumas das suas mensagens não foram enviadas",
     "Submit": "Enviar",
     "The main address for this room is": "O endereço principal desta sala é",
diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json
index 1ae4719402..30672aeab1 100644
--- a/src/i18n/strings/ru.json
+++ b/src/i18n/strings/ru.json
@@ -232,8 +232,8 @@
     "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s уровень мощности изменен на %(powerLevelDiffText)s.",
     "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s имя комнаты измененно на %(roomName)s.",
     "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s измененная тема на %(topic)s.",
-    "Conference call failed": "Конференц-вызов прервался",
-    "Conference calling is in development and may not be reliable": "Конференц-вызов находится в процессе и может не быть надежным",
+    "Conference call failed.": "Конференц-вызов прервался.",
+    "Conference calling is in development and may not be reliable.": "Конференц-вызов находится в процессе и может не быть надежным.",
     "Conference calls are not supported in encrypted rooms": "Конференц-вызовы не поддерживаются в зашифрованных комнатах",
     "Conference calls are not supported in this client": "Конференц-вызовы не поддерживаются в этом клиенте",
     "/ddg is not a command": "/ddg не команда",
@@ -247,7 +247,7 @@
     "Failed to verify email address: make sure you clicked the link in the email": "Не удалось подтвердить email-адрес: убедитесь что вы щелкнули по ссылке электронной почты",
     "Failure to create room": "Не удалось создать комнату",
     "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s из %(fromPowerLevel)s до %(toPowerLevel)s",
-    "Guest users can't create new rooms. Please register to create room and start a chat": "Гостевые пользователи не могут создавать новые комнаты. Зарегистрируйтесь для создания комнаты и чата",
+    "Guest users can't create new rooms. Please register to create room and start a chat.": "Гостевые пользователи не могут создавать новые комнаты. Зарегистрируйтесь для создания комнаты и чата.",
     "click to reveal": "нажать для открытия",
     "%(senderName)s invited %(targetName)s.": "%(senderName)s приглашает %(targetName)s.",
     "%(displayName)s is typing": "%(displayName)s вводит текст",
@@ -359,11 +359,11 @@
     "Upload an avatar:": "Загрузить аватар",
     "You need to be logged in.": "Вы должны быть зарегистрированы",
     "You need to be able to invite users to do that.": "Вам необходимо пригласить пользователей чтобы сделать это.",
-    "You cannot place VoIP calls in this browser": "Вы не можете сделать вызовы VoIP с этим браузером",
-    "You are already in a call": "Вы уже находитесь в разговоре",
+    "You cannot place VoIP calls in this browser.": "Вы не можете сделать вызовы VoIP с этим браузером.",
+    "You are already in a call.": "Вы уже находитесь в разговоре.",
     "You're not in any rooms yet! Press": "Вы еще не находитесь ни в каких комнатах! Нажать",
     "You are trying to access %(roomName)s": "Вы пытаетесь получить доступ %(roomName)s",
-    "You cannot place a call with yourself": "Вы не можете позвонить самим себе",
+    "You cannot place a call with yourself.": "Вы не можете позвонить самим себе.",
     "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s анулировал %(targetName)s's преглашение.",
     "Sep": "Сен.",
     "Jan": "Янв.",
@@ -386,7 +386,7 @@
     "Fri": "Пя",
     "Sat": "Сб",
     "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.": "Вам необходимо снова войти в генерировать сквозное шифрование (е2е) ключей для этого устройства и предоставить публичный ключ Вашему домашнему серверу. Это после выключения; приносим извинения за причиненные неудобства.",
-    "Your email address does not appear to be associated with a Matrix ID on this Homeserver": "Ваш адрес электронной почты, кажется, не связан с Matrix ID на этом Homeserver",
+    "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Ваш адрес электронной почты, кажется, не связан с Matrix ID на этом Homeserver.",
     "to start a chat with someone": "Начать чат с кем-то",
     "to tag direct chat": "Пометить прямой чат",
     "To use it, just wait for autocomplete results to load and tab through them.": "Для его использования, просто подождите результатов автозаполнения для загрузки на вкладке и через них.",
diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json
index 91adec837f..54a6886b35 100644
--- a/src/i18n/strings/zh_Hans.json
+++ b/src/i18n/strings/zh_Hans.json
@@ -30,7 +30,7 @@
     "Enable encryption": "启用加密",
     "Encrypted messages will not be visible on clients that do not yet implement encryption": "不支持加密的客户端将看不到加密的消息",
     "Encrypted room": "加密聊天室",
-    "%(senderName)s ended the call.": "%(senderName)s 结束了通话。",
+    "%(senderName)s ended the call.": "%(senderName)s 结束了通话。.",
     "End-to-end encryption information": "端到端加密信息",
     "End-to-end encryption is in beta and may not be reliable": "端到端加密现为测试版,不一定可靠",
     "Enter Code": "输入代码",
@@ -55,7 +55,7 @@
     "Failed to save settings": "保存设置失败",
     "Failed to send email": "发送邮件失败",
     "Failed to send request.": "发送请求失败。",
-    "Failed to set avatar.": "设置头像失败。",
+    "Failed to set avatar.": "设置头像失败。.",
     "Failed to set display name": "设置昵称失败",
     "Failed to set up conference call": "无法启动群组通话",
     "Failed to toggle moderator status": "无法切换管理员权限",
@@ -70,15 +70,15 @@
     "Filter room members": "过滤聊天室成员",
     "Forget room": "忘记聊天室",
     "Forgot your password?": "忘记密码?",
-    "For security, this session has been signed out. Please sign in again.": "出于安全考虑,此会话已被注销。请重新登录。",
+    "For security, this session has been signed out. Please sign in again.": "出于安全考虑,此会话已被注销。请重新登录。.",
     "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "出于安全考虑,用户注销时会清除浏览器里的端到端加密密钥。如果你想要下次登录 Riot 时能解密过去的聊天记录,请导出你的聊天室密钥。",
     "Found a bug?": "发现漏洞?",
     "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s 从 %(fromPowerLevel)s 变为 %(toPowerLevel)s",
-    "Guests can't set avatars. Please register.": "游客不能设置头像。请注册。",
-    "Guest users can't create new rooms. Please register to create room and start a chat": "游客不能创建聊天室。请注册以创建聊天室和聊天",
+    "Guests can't set avatars. Please register.": "游客不能设置头像。请注册。.",
+    "Guest users can't create new rooms. Please register to create room and start a chat.": "游客不能创建聊天室。请注册以创建聊天室和聊天.",
     "Guest users can't upload files. Please register to upload": "游客不能上传文件。请注册以上传文件",
-    "Guests can't use labs features. Please register.": "游客不能使用实验性功能。请注册。",
-    "Guests cannot join this room even if explicitly invited.": "游客不能加入此聊天室,即使有人主动邀请。",
+    "Guests can't use labs features. Please register.": "游客不能使用实验性功能。请注册。.",
+    "Guests cannot join this room even if explicitly invited.": "游客不能加入此聊天室,即使有人主动邀请。.",
     "had": "已经",
     "Hangup": "挂断",
     "Hide read receipts": "隐藏已读回执",
@@ -95,7 +95,7 @@
     "Invalid Email Address": "邮箱地址格式错误",
     "Invalid file%(extra)s": "非法文件%(extra)s",
     "Report it": "报告",
-    "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "重设密码会导致所有设备上的端到端加密密钥被重置,使得加密的聊天记录不可读,除非你事先导出密钥,修改密码后再导入。此问题将来会得到改善。",
+    "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "重设密码会导致所有设备上的端到端加密密钥被重置,使得加密的聊天记录不可读,除非你事先导出密钥,修改密码后再导入。此问题将来会得到改善。.",
     "restore": "恢复",
     "Return to app": "返回 App",
     "Return to login screen": "返回登录页面",
@@ -117,18 +117,18 @@
     "Send Invites": "发送邀请",
     "Send Reset Email": "发送密码重设邮件",
     "sent an image": "发了一张图片",
-    "%(senderDisplayName)s sent an image.": "%(senderDisplayName)s 发了一张图片。",
-    "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s 向 %(targetDisplayName)s 发了加入聊天室的邀请。",
+    "%(senderDisplayName)s sent an image.": "%(senderDisplayName)s 发了一张图片。.",
+    "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s 向 %(targetDisplayName)s 发了加入聊天室的邀请。.",
     "sent a video": "发了一个视频",
     "Server error": "服务器错误",
     "Server may be unavailable or overloaded": "服务器可能不可用或者超载",
     "Server may be unavailable, overloaded, or search timed out :(": "服务器可能不可用、超载,或者搜索超时 :(",
     "Server may be unavailable, overloaded, or the file too big": "服务器可能不可用、超载,或者文件过大",
-    "Server may be unavailable, overloaded, or you hit a bug": "服务器可能不可用、超载,或者你遇到了一个漏洞",
-    "Server unavailable, overloaded, or something else went wrong": "服务器可能不可用、超载,或者其他东西出错了",
+    "Server may be unavailable, overloaded, or you hit a bug.": "服务器可能不可用、超载,或者你遇到了一个漏洞.",
+    "Server unavailable, overloaded, or something else went wrong.": "服务器可能不可用、超载,或者其他东西出错了.",
     "Session ID": "会话 ID",
-    "%(senderName)s set a profile picture.": "%(senderName)s 设置了头像。",
-    "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s 将昵称改为了 %(displayName)s。",
+    "%(senderName)s set a profile picture.": "%(senderName)s 设置了头像。.",
+    "%(senderName)s set their display name to %(displayName)s.": "%(senderName)s 将昵称改为了 %(displayName)s。.",
     "Settings": "设置",
     "Show panel": "显示侧边栏",
     "Show timestamps in 12 hour format (e.g. 2:30pm)": "用12小时制显示时间戳 (如:下午 2:30)",
@@ -183,8 +183,8 @@
     "%(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 接了通话。",
+    "A new password must be entered.": "一个新的密码必须被输入。.",
+    "%(senderName)s answered the call.": "%(senderName)s 接了通话。.",
     "An error has occurred.": "一个错误出现了。",
     "Attachment": "附件",
     "Autoplay GIFs and videos": "自动播放GIF和视频",
@@ -200,9 +200,9 @@
     "Invite new room members": "邀请新的聊天室成员",
     "Join Room": "加入聊天室",
     "joined": "加入了",
-    "%(targetName)s joined the room.": "%(targetName)s 加入了聊天室。",
+    "%(targetName)s joined the room.": "%(targetName)s 加入了聊天室。.",
     "Jump to first unread message.": "跳到第一条未读消息。",
-    "%(senderName)s kicked %(targetName)s.": "%(senderName)s 把 %(targetName)s 踢出了聊天室。",
+    "%(senderName)s kicked %(targetName)s.": "%(senderName)s 把 %(targetName)s 踢出了聊天室。.",
     "Leave room": "离开聊天室",
     "Login as guest": "以游客的身份登录",
     "New password": "新密码"
diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json
index f98bf452af..5238e647b1 100644
--- a/src/i18n/strings/zh_Hant.json
+++ b/src/i18n/strings/zh_Hant.json
@@ -1,6 +1,6 @@
 {
     "An email has been sent to": "電郵已經發送至",
-    "A new password must be entered.": "必須輸入新密碼。",
+    "A new password must be entered.": "必須輸入新密碼。.",
     "anyone": "任何人",
     "An error has occurred.": "發生了一個錯誤。",
     "Anyone who knows the room's link, apart from guests": "任何知道房間連結的人,但訪客除外",
@@ -10,7 +10,7 @@
     "Are you sure you want to upload the following files?": "您確認要上傳以下文件嗎?",
     "Attachment": "附件",
     "Autoplay GIFs and videos": "自動播放GIF和影片",
-    "%(senderName)s banned %(targetName)s.": "%(senderName)s 封禁了 %(targetName)s。",
+    "%(senderName)s banned %(targetName)s.": "%(senderName)s 封禁了 %(targetName)s。.",
     "Ban": "封禁",
     "Banned users": "已被封禁的使用者",
     "Blacklisted": "已列入黑名單",
@@ -20,5 +20,5 @@
     "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or <a>enable unsafe scripts</a>.": "當瀏覽器網址列里有 HTTPS URL 時,不能使用 HTTP 連結主伺服器。請採用 HTTPS 或者 <a>允許不安全的腳本</a>",
     "Can't load user settings": "無法載入使用者設定",
     "Change Password": "變更密碼",
-    "%(targetName)s left the room.": "%(targetName)s 離開了聊天室。"
+    "%(targetName)s left the room.": "%(targetName)s 離開了聊天室。."
 }