diff --git a/scripts/check-i18n.pl b/scripts/check-i18n.pl index 55499b0570..0ace98d0fc 100755 --- a/scripts/check-i18n.pl +++ b/scripts/check-i18n.pl @@ -141,6 +141,8 @@ foreach my $lang (grep { -f "$i18ndir/$_" && !/(basefile|en_EN)\.json/ } @files) sub read_i18n { my $path = shift; my $map = {}; + $path =~ /.*\/(.*)$/; + my $lang = $1; open(FILE, "<", $path) || die $!; while() { @@ -148,6 +150,10 @@ sub read_i18n { my ($indent, $src, $colon, $dst, $comma) = ($1, $2, $3, $4, $5); $src =~ s/\\"/"/g; $dst =~ s/\\"/"/g; + + if ($map->{$src}) { + printf ("%10s %24s\t%s\n", $lang, "Duplicate translation!", $src); + } $map->{$src} = $dst; } } diff --git a/src/SlashCommands.js b/src/SlashCommands.js index d2c0eda3ff..ae619a1359 100644 --- a/src/SlashCommands.js +++ b/src/SlashCommands.js @@ -144,7 +144,7 @@ const commands = { dis.dispatch({ action: 'view_room', - roomAlias: roomAlias, + room_alias: roomAlias, auto_join: true, }); diff --git a/src/components/views/dialogs/ConfirmRedactDialog.js b/src/components/views/dialogs/ConfirmRedactDialog.js index fc9e55f666..db5197e338 100644 --- a/src/components/views/dialogs/ConfirmRedactDialog.js +++ b/src/components/views/dialogs/ConfirmRedactDialog.js @@ -42,7 +42,7 @@ export default React.createClass({ render: function() { const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog'); - const title = "Confirm Redaction"; + const title = "Confirm Removal"; const confirmButtonClass = classnames({ 'mx_Dialog_primary': true, @@ -55,12 +55,12 @@ export default React.createClass({ title={title} >
- Are you sure you wish to redact (delete) this event? - Note that if you redact a room name or topic change, it could undo the change. + Are you sure you wish to remove (delete) this event? + Note that if you delete a room name or topic change, it could undo the change.
- { _t('To redact other users\' messages') }, { _t('you must be a') } + { _t('To remove other users\' messages') }, { _t('you must be a') }
diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 4909acffb6..fe073df10a 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -100,7 +100,7 @@ "an address": "an Adresse", "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Dein Passwort wurde erfolgreich geändert. Du wirst keine Benachrichtigungen an anderen Geräten empfangen bis du dich dort erneut anmeldest", "all room members": "Alle Raum-Mitglieder", - "all room members, from the point they are invited": "Alle Raum-Mitglieder - seitdem sie eingeladen wurden", + "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", "changed name": "änderte Namen", @@ -133,7 +133,7 @@ "Homeserver is": "Der Homeserver ist", "Identity Server is": "Der Identitätsserver ist", "I have verified my email address": "Ich habe meine E-Mail-Adresse verifiziert", - "Import E2E room keys": "Importe E2E-Raum-Schlüssel", + "Import E2E room keys": "E2E-Raum-Schlüssel importieren", "Invalid Email Address": "Ungültige E-Mail-Adresse", "invited": "eingeladen", "Invite new room members": "Lade neue Raum-Mitglieder ein", @@ -211,7 +211,7 @@ "Start Chat": "Starte Chat", "Success": "Erfolg", "tag direct chat": "Zum kennzeichnen als direkten Chat", - "The default role for new room members is": "Die Standard-Rolle for neue Raum-Mitglieder ist", + "The default role for new room members is": "Die Standard-Rolle für neue Raum-Mitglieder ist", "their invitations": "ihre Einladungen", "their invitation": "ihre Einladung", "These are experimental features that may break in unexpected ways. Use with caution": "Dies sind experimentelle Funktionen die in unerwarteter Weise Fehler verursachen können. Mit Vorsicht benutzen", @@ -349,7 +349,7 @@ "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.", - "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s akzeptierte eine Einladung für %(displayName)s.", + "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s akzeptierte die Einladung für %(displayName)s.", "%(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.", @@ -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 redact other users' messages": "Um Nachrichten anderer zu verbergen", + "To remove other users' messages": "Um Nachrichten anderer zu verbergen", "You are trying to access %(roomName)s": "Du versuchst auf %(roomName)s zuzugreifen", "af": "Afrikaans", "ar-ae": "Arabisch (U.A.E.)", @@ -719,5 +719,12 @@ "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", - "to tag as %(tagName)s": "um als \"%(tagName)s\" zu markieren" + "to tag as %(tagName)s": "um als \"%(tagName)s\" zu markieren", + "Email address": "E-Mail-Adresse", + "Error decrypting attachment": "Fehler beim Entschlüsseln des Anhangs", + "Mute": "Stummschalten", + "Operation failed": "Aktion fehlgeschlagen", + "You need to enter a user name.": "Du musst einen Benutzernamen eingeben.", + "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.": "Eine Änderung des Passworts setzt derzeit alle Schlüssel für die E2E-Verschlüsselung auf allen verwendeten Geräten zurück. Bereits verschlüsselte Chat-Inhalte sind somit nur noch lesbar, wenn du zunächst alle Schlüssel exportierst und später wieder importierst. Wir arbeiten an einer Verbesserung dieser momentan noch notwendigen Vorgehensweise.", + "Unmute": "Stummschalten aufheben" } diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 1bf681f136..13bc3020b3 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -80,7 +80,6 @@ "ja":"Japanese", "ji":"Yiddish", "ko":"Korean", - "ko":"Korean (Johab)", "lt":"Lithuanian", "lv":"Latvian", "mk":"Macedonian (FYROM)", @@ -101,8 +100,7 @@ "sk":"Slovak", "sl":"Slovenian", "sq":"Albanian", - "sr":"Serbian (Cyrillic)", - "sr":"Serbian (Latin)", + "sr":"Serbian", "sv-fi":"Swedish (Finland)", "sv":"Swedish", "sx":"Sutu", @@ -285,7 +283,6 @@ "Guests can't set avatars. Please register.": "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 create new rooms. Please register to create room and start a chat", "Guest users can't upload files. Please register to upload": "Guest users can't upload files. Please register to upload", - "Guests can't set avatars. Please register.": "Guests can't set avatars. Please register.", "Guests can't use labs features. Please register.": "Guests can't use labs features. Please register.", "Guests cannot join this room even if explicitly invited.": "Guests cannot join this room even if explicitly invited.", "had": "had", @@ -371,7 +368,6 @@ "Once you've followed the link it contains, click below": "Once you've followed the link it contains, click below", "Only people who have been invited": "Only people who have been invited", "Operation failed": "Operation failed", - "or": "or", "Password": "Password", "Passwords can't be empty": "Passwords can't be empty", "People": "People", @@ -483,7 +479,7 @@ "To kick users": "To kick users", "To link to a room it must have": "To link to a room it must have", "to make a room or": "to make a room or", - "To redact other users' messages": "To redact other users' messages", + "To remove other users' messages": "To remove other users' messages", "To reset your password, enter the email address linked to your account": "To reset your password, enter the email address linked to your account", "to restore": "to restore", "To send events of type": "To send events of type", @@ -604,8 +600,6 @@ "Encrypt room": "Encrypt room", "There are no visible files in this room": "There are no visible files in this room", "Room": "Room", - "Room name (optional)": "Room name (optional)", - "Who would you like to add to this room?": "Who would you like to add to this room?", "Connectivity to the server has been lost.": "Connectivity to the server has been lost.", "Sent messages will be stored until your connection has returned.": "Sent messages will be stored until your connection has returned.", "Auto-complete": "Auto-complete", @@ -681,5 +675,6 @@ "%(oneUser)schanged their avatar": "%(oneUser)schanged their avatar", "Analytics": "Analytics", "Opt out of analytics": "Opt out of analytics", - "Riot collects anonymous analytics to allow us to improve the application.": "Riot collects anonymous analytics to allow us to improve the application." + "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" } diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 53d24d484b..598b25b3fb 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -174,7 +174,6 @@ "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Un message texte a été envoyé à +%(msisdn)s. Merci d'entrer le code de vérification qu'il contient", "accept": "Accepter", "%(targetName)s accepted an invitation.": "%(targetName)s a accepté une invitation.", - "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s a accepté une invitation de %(displayName)s.", "Account": "Compte", "Add email address": "Ajouter une adresse e-mail", "Add phone number": "Ajouter un numéro de téléphone", @@ -196,7 +195,6 @@ "%(names)s and %(count)s others are typing": "%(names)s et %(count)s d'autres sont en train de taper", "An email has been sent to": "Un e-mail a été envoyé à", "A new password must be entered.": "Un nouveau mot de passe doit être entré.", - "%(senderName)s answered the call.": "%(senderName)s a répondu à l’appel.", "Anyone who knows the room's link, apart from guests": "Tout ceux qui connaissent le lien du salon, à part les invités", "Anyone who knows the room's link, including guests": "Tout ceux qui connaissent le lien du salon, y compris les invités", "Are you sure?": "Êtes-vous sûr ?", @@ -281,7 +279,6 @@ "Authentication": "Authentification", "%(senderName)s answered the call.": "%(senderName)s a répondu à l’appel.", "An error has occurred.": "Une erreur est survenue.", - "%(senderName)s banned %(targetName)s.": "%(senderName)s a banni %(targetName)s.", "Email": "E-mail", "Failed to send request.": "Erreur lors de l'envoi de la requête.", "Failed to unban": "Échec de l'amnistie", diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json new file mode 100644 index 0000000000..7bfe89dabd --- /dev/null +++ b/src/i18n/strings/nl.json @@ -0,0 +1,4 @@ +{ + "af": "Afrikaans", + "ar-ae": "Arabisch (U.A.E.)" +} diff --git a/src/i18n/strings/pt.json b/src/i18n/strings/pt.json index e636eb54d7..4b309e6fd9 100644 --- a/src/i18n/strings/pt.json +++ b/src/i18n/strings/pt.json @@ -16,7 +16,6 @@ "An email has been sent to": "Um email foi enviado para", "A new password must be entered.": "Uma nova senha precisa ser informada.", "answered the call.": "respondeu à chamada.", - "anyone": "qualquer um", "Anyone who knows the room's link, apart from guests": "Qualquer pessoa que tenha o link da sala, exceto visitantes", "Anyone who knows the room's link, including guests": "Qualquer pessoa que tenha o link da sala, incluindo visitantes", "Are you sure you want to leave the room?": "Você tem certeza que deseja sair da sala?", @@ -354,7 +353,6 @@ "Power level must be positive integer.": "O nível de permissões tem que ser um número inteiro e positivo.", "Press": "Aperte", "Reason": "Razão", - "Refer a friend to Riot:": "Recomende Riot a um/a amigo/a", "%(targetName)s rejected the invitation.": "%(targetName)s recusou o convite.", "%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s removeu o seu nome público (%(oldDisplayName)s).", "%(senderName)s removed their profile picture.": "%(senderName)s removeu sua imagem de perfil.", @@ -379,7 +377,7 @@ "to demote": "para reduzir prioridade", "to favourite": "para favoritar", "to make a room or": "para criar uma sala ou", - "To redact other users' messages": "Para apagar mensagens de outras pessoas", + "To remove other users' messages": "Para apagar mensagens de outras pessoas", "to restore": "para restaurar", "to start a chat with someone": "para iniciar uma conversa com alguém", "to tag direct chat": "para marcar a conversa como pessoal", diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json index fa9f3bc4da..7e8cd2531f 100644 --- a/src/i18n/strings/pt_BR.json +++ b/src/i18n/strings/pt_BR.json @@ -17,7 +17,6 @@ "New passwords don't match": "As novas senhas não conferem", "A new password must be entered.": "Uma nova senha precisa ser informada.", "answered the call.": "respondeu à chamada.", - "anyone": "qualquer um", "Anyone who knows the room's link, apart from guests": "Qualquer pessoa que tenha o link da sala, exceto visitantes", "Anyone who knows the room's link, including guests": "Qualquer pessoa que tenha o link da sala, incluindo visitantes", "Are you sure you want to leave the room?": "Você tem certeza que deseja sair da sala?", @@ -358,7 +357,6 @@ "Power level must be positive integer.": "O nível de permissões tem que ser um número inteiro e positivo.", "Press": "Aperte", "Reason": "Razão", - "Refer a friend to Riot:": "Recomende Riot a um/a amigo/a", "%(targetName)s rejected the invitation.": "%(targetName)s recusou o convite.", "%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s removeu o seu nome público (%(oldDisplayName)s).", "%(senderName)s removed their profile picture.": "%(senderName)s removeu sua imagem de perfil.", @@ -383,7 +381,7 @@ "to demote": "para reduzir prioridade", "to favourite": "para favoritar", "to make a room or": "para criar uma sala ou", - "To redact other users' messages": "Para apagar mensagens de outras pessoas", + "To remove other users' messages": "Para apagar mensagens de outras pessoas", "to restore": "para restaurar", "to start a chat with someone": "para iniciar uma conversa com alguém", "to tag as %(tagName)s": "para marcar como %(tagName)s", diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index cdebc47160..0902edb41a 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -251,7 +251,7 @@ "click to reveal": "нажать для открытия", "%(senderName)s invited %(targetName)s.": "%(senderName)s приглашает %(targetName)s.", "%(displayName)s is typing": "%(displayName)s вводит текст", - "%(targetName)s joined the room.": "%(targetName)s присоединенный к комнате.", + "%(targetName)s joined the room.": "%(targetName)s вошёл в комнату.", "%(senderName)s kicked %(targetName)s.": "%(senderName)s выкинул %(targetName)s.", "%(targetName)s left the room.": "%(targetName)s покинул комнату.", "%(senderName)s made future room history visible to": "%(senderName)s история сделаной будущей комнаты, видимая для", @@ -508,7 +508,6 @@ "'%(alias)s' is not a valid format for an address": "'%(alias)s' неверный формат для адреса", "'%(alias)s' is not a valid format for an alias": "'%(alias)s' неверный формат для привязки", "Join Room": "Войти в комнату", - "%(targetName)s joined the room.": "%(targetName)s вошёл в комнату.", "Kick": "Выгнать", "Level": "Уровень", "Local addresses for this room:": "Местный адрес этой комнаты:", @@ -560,7 +559,7 @@ "Sender device information": "Информация об устройстве отправителя", "Send Invites": "Отправить приглашения", "%(senderDisplayName)s sent an image.": "%(senderDisplayName)s отправил изображение.", - "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderDisplayName)s отправил приглашение для %(targetDisplayName)s войти в комнату.", + "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s отправил приглашение для %(targetDisplayName)s войти в комнату.", "sent a video": "отправил видео", "Show panel": "Показать панель", "Sign in": "Войти", @@ -651,5 +650,6 @@ "%(severalUsers)schanged their avatar %(repeats)s times": "%(severalUsers)sизменили своё изображение %(repeats)s раз", "%(oneUser)schanged their avatar %(repeats)s times": "%(oneUser)sизменил своё изображение %(repeats)s раз", "%(severalUsers)schanged their avatar": "%(severalUsers)sизменили своё изображение", - "%(oneUser)schanged their avatar": "%(oneUser)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)" } diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json new file mode 100644 index 0000000000..b6295de844 --- /dev/null +++ b/src/i18n/strings/zh_Hant.json @@ -0,0 +1,24 @@ +{ + "An email has been sent to": "電郵已經發送至", + "A new password must be entered.": "必須輸入新密碼。", + "anyone": "任何人", + "An error has occurred.": "發生了一個錯誤。", + "Anyone who knows the room's link, apart from guests": "任何知道房間連結的人,但訪客除外", + "Anyone who knows the room's link, including guests": "任何知道房間連結的人,包括訪客", + "Are you sure?": "您確認嗎?", + "Are you sure you want to reject the invitation?": "您確認要謝絕邀請嗎?", + "Are you sure you want upload the following files?": "您確認要上傳以下文件嗎?", + "Attachment": "附件", + "Autoplay GIFs and videos": "自動播放GIF和影片", + "%(senderName)s banned %(targetName)s.": "%(senderName)s 封禁了 %(targetName)s。", + "Ban": "封禁", + "Banned users": "已被封禁的使用者", + "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 load user settings": "無法載入使用者設定", + "Change Password": "變更密碼", + "%(targetName)s left the room.": "%(targetName)s 離開了聊天室。" +}