From 3d59d72aaa4a8128b82c1d9d999b5bb3a3a6b71a Mon Sep 17 00:00:00 2001 From: Oliver Hunt Date: Wed, 7 Jun 2017 04:49:41 +0100 Subject: [PATCH 001/120] Fixed pagination infinite loop caused by long messages Signed-off-by: Oliver Hunt --- src/components/structures/ScrollPanel.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/components/structures/ScrollPanel.js b/src/components/structures/ScrollPanel.js index a652bcc827..f035efee92 100644 --- a/src/components/structures/ScrollPanel.js +++ b/src/components/structures/ScrollPanel.js @@ -352,13 +352,14 @@ module.exports = React.createClass({ const tile = tiles[backwards ? i : tiles.length - 1 - i]; // Subtract height of tile as if it were unpaginated excessHeight -= tile.clientHeight; + //If removing the tile would lead to future pagination, break before setting scroll token + if (tile.clientHeight > excessHeight) { + break; + } // The tile may not have a scroll token, so guard it if (tile.dataset.scrollTokens) { markerScrollToken = tile.dataset.scrollTokens.split(',')[0]; } - if (tile.clientHeight > excessHeight) { - break; - } } if (markerScrollToken) { From b6968c428782cb5f45976f1928f60661520d35be Mon Sep 17 00:00:00 2001 From: Bamstam Date: Fri, 9 Jun 2017 14:35:47 +0000 Subject: [PATCH 002/120] Translated using Weblate (German) Currently translated at 93.4% (842 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/de/ --- src/i18n/strings/de_DE.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index bed8034bdf..7d806c2bc5 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -752,7 +752,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 der Name, der anderen Nutzern angezeigt wird, wenn du in Räumen sprichst. Welchen Anzeigenamen möchtest du wählen?", + "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 kommunizierst. 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 bislang noch nicht gesehen hast.", "Unknown devices": "Unbekannte Geräte", @@ -900,7 +900,7 @@ "Room directory": "Raum-Verzeichnis", "Start chat": "Chat starten", "New Password": "Neues Passwort", - "Start chatting": "Starte plaudern", + "Start chatting": "Chat beginnen", "Start Chatting": "Starte Gespräche", "Click on the button below to start chatting!": "Unten auf den Button klicken, um einen Chat zu beginnen!", "Create a new chat or reuse an existing one": "Neuen Chat erstellen oder einen vorhandenen Chat fortsetzen", From 36db6ad36ebc37486559fa8bf94b424a8451a742 Mon Sep 17 00:00:00 2001 From: GrigRUSS Date: Fri, 9 Jun 2017 18:11:36 +0000 Subject: [PATCH 003/120] Translated using Weblate (Russian) Currently translated at 100.0% (901 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/ru/ --- src/i18n/strings/ru.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 07ab24e824..1084fccd9b 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -75,7 +75,7 @@ "Error": "Ошибка", "Event information": "Event information", "Export E2E room keys": "Экспорт E2E ключей комнаты", - "Failed to change password. Is your password correct?": "Не удалось изменить пароль. Ваш пароль правильный?", + "Failed to change password. Is your password correct?": "Не удалось сменить пароль. Вы правильно ввели текущий пароль?", "Failed to forget room": "Не удалось забыть комнату", "Failed to leave room": "Не удалось выйти из комнаты", "Failed to reject invitation": "Не удалось отклонить приглашение", @@ -948,5 +948,10 @@ "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (уровень доступа %(powerLevelNumber)s)", "Verified": "Подтверждён", "Would you like to accept or decline this invitation?": "Хотели бы вы это приглашение подтвердить или отклонить?", - "(~%(count)s results).one": "(~%(count)s Результат)" + "(~%(count)s results).one": "(~%(count)s Результат)", + "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Не удается подключиться к домашнему серверу - проверьте подключение, убедитесь, что ваш сертификат SSL homeserver's SSL certificate действителен, и расширение браузера не блокирует запросы.", + "You have been banned from %(roomName)s by %(userName)s.": "%(userName) забанил Вас в % (roomName).", + "You have been kicked from %(roomName)s by %(userName)s.": "%(userName) выгнал Вас из %(roomName).", + "You may wish to login with a different account, or add this email to this account.": "Вы можете войти в систему с другой учетной записью или добавить этот адрес email в эту учетную запись.", + "Your home server does not support device management.": "Ваш домашний сервер не поддерживает управление устройствами." } From 0879d796ebce94d2a335d3a0adb1d33900b7f31f Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 9 Jun 2017 20:26:41 +0100 Subject: [PATCH 004/120] released js-sdk --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 15a903c25a..dd7ff9c11e 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": "0.7.10", + "matrix-js-sdk": "0.7.11-rc.1", "optimist": "^0.6.1", "prop-types": "^15.5.8", "q": "^1.4.1", From 345661ee2ddf1a0e524bca1cb815df8c3b4f7247 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 9 Jun 2017 20:28:08 +0100 Subject: [PATCH 005/120] Prepare changelog for v0.9.3-rc.1 --- CHANGELOG.md | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66e4627afd..b217d7a0db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,154 @@ +Changes in [0.9.3-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.9.3-rc.1) (2017-06-09) +============================================================================================================= +[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.9.2...v0.9.3-rc.1) + + * When ChatCreateOrReuseDialog is cancelled by a guest, go home + [\#1069](https://github.com/matrix-org/matrix-react-sdk/pull/1069) + * Update from Weblate. + [\#1065](https://github.com/matrix-org/matrix-react-sdk/pull/1065) + * Goto /home when forgetting the last room + [\#1067](https://github.com/matrix-org/matrix-react-sdk/pull/1067) + * Default to home page when settings is closed + [\#1066](https://github.com/matrix-org/matrix-react-sdk/pull/1066) + * Update from Weblate. + [\#1063](https://github.com/matrix-org/matrix-react-sdk/pull/1063) + * When joining, use a roomAlias if we have it + [\#1062](https://github.com/matrix-org/matrix-react-sdk/pull/1062) + * Control currently viewed event via RoomViewStore + [\#1058](https://github.com/matrix-org/matrix-react-sdk/pull/1058) + * Better error messages for login + [\#1060](https://github.com/matrix-org/matrix-react-sdk/pull/1060) + * Add remaining translations + [\#1056](https://github.com/matrix-org/matrix-react-sdk/pull/1056) + * Added button that copies code to clipboard + [\#1040](https://github.com/matrix-org/matrix-react-sdk/pull/1040) + * de-lint MegolmExportEncryption + test + [\#1059](https://github.com/matrix-org/matrix-react-sdk/pull/1059) + * Better RTL support + [\#1021](https://github.com/matrix-org/matrix-react-sdk/pull/1021) + * make mels emoji capable + [\#1057](https://github.com/matrix-org/matrix-react-sdk/pull/1057) + * Make travis check for lint on files which are clean to start with + [\#1055](https://github.com/matrix-org/matrix-react-sdk/pull/1055) + * Update from Weblate. + [\#1053](https://github.com/matrix-org/matrix-react-sdk/pull/1053) + * Add some logging around switching rooms + [\#1054](https://github.com/matrix-org/matrix-react-sdk/pull/1054) + * Update from Weblate. + [\#1052](https://github.com/matrix-org/matrix-react-sdk/pull/1052) + * Use user_directory endpoint to populate ChatInviteDialog + [\#1050](https://github.com/matrix-org/matrix-react-sdk/pull/1050) + * Various Analytics changes/fixes/improvements + [\#1046](https://github.com/matrix-org/matrix-react-sdk/pull/1046) + * Use an arrow function to allow `this` + [\#1051](https://github.com/matrix-org/matrix-react-sdk/pull/1051) + * New guest access + [\#937](https://github.com/matrix-org/matrix-react-sdk/pull/937) + * Translate src/components/structures + [\#1048](https://github.com/matrix-org/matrix-react-sdk/pull/1048) + * Cancel 'join room' action if 'log in' is clicked + [\#1049](https://github.com/matrix-org/matrix-react-sdk/pull/1049) + * fix copy and paste derp and rip out unused imports + [\#1015](https://github.com/matrix-org/matrix-react-sdk/pull/1015) + * Update from Weblate. + [\#1042](https://github.com/matrix-org/matrix-react-sdk/pull/1042) + * Reset 'first sync' flag / promise on log in + [\#1041](https://github.com/matrix-org/matrix-react-sdk/pull/1041) + * Remove DM-guessing code (again) + [\#1036](https://github.com/matrix-org/matrix-react-sdk/pull/1036) + * Cancel deferred actions + [\#1039](https://github.com/matrix-org/matrix-react-sdk/pull/1039) + * Merge develop, add i18n for SetMxIdDialog + [\#1034](https://github.com/matrix-org/matrix-react-sdk/pull/1034) + * Defer an intention for creating a room + [\#1038](https://github.com/matrix-org/matrix-react-sdk/pull/1038) + * Fix 'create room' button + [\#1037](https://github.com/matrix-org/matrix-react-sdk/pull/1037) + * Always show the spinner during the first sync + [\#1033](https://github.com/matrix-org/matrix-react-sdk/pull/1033) + * Only view welcome user if we are not looking at a room + [\#1032](https://github.com/matrix-org/matrix-react-sdk/pull/1032) + * Update from Weblate. + [\#1030](https://github.com/matrix-org/matrix-react-sdk/pull/1030) + * Keep deferred actions for view_user_settings and view_create_chat + [\#1031](https://github.com/matrix-org/matrix-react-sdk/pull/1031) + * Don't do a deferred start chat if user is welcome user + [\#1029](https://github.com/matrix-org/matrix-react-sdk/pull/1029) + * Introduce state `peekLoading` to avoid collision with `roomLoading` + [\#1028](https://github.com/matrix-org/matrix-react-sdk/pull/1028) + * Update from Weblate. + [\#1016](https://github.com/matrix-org/matrix-react-sdk/pull/1016) + * Fix accepting a 3pid invite + [\#1013](https://github.com/matrix-org/matrix-react-sdk/pull/1013) + * Propagate room join errors to the UI + [\#1007](https://github.com/matrix-org/matrix-react-sdk/pull/1007) + * Implement /user/@userid:domain?action=chat + [\#1006](https://github.com/matrix-org/matrix-react-sdk/pull/1006) + * Show People/Rooms emptySubListTip even when total rooms !== 0 + [\#967](https://github.com/matrix-org/matrix-react-sdk/pull/967) + * Fix to show the correct room + [\#995](https://github.com/matrix-org/matrix-react-sdk/pull/995) + * Remove cachedPassword from localStorage on_logged_out + [\#977](https://github.com/matrix-org/matrix-react-sdk/pull/977) + * Add /start to show the setMxId above HomePage + [\#964](https://github.com/matrix-org/matrix-react-sdk/pull/964) + * Allow pressing Enter to submit setMxId + [\#961](https://github.com/matrix-org/matrix-react-sdk/pull/961) + * add login link to SetMxIdDialog + [\#954](https://github.com/matrix-org/matrix-react-sdk/pull/954) + * Block user settings with view_set_mxid + [\#936](https://github.com/matrix-org/matrix-react-sdk/pull/936) + * Show "Something went wrong!" when errcode undefined + [\#935](https://github.com/matrix-org/matrix-react-sdk/pull/935) + * Reset store state when logging out + [\#930](https://github.com/matrix-org/matrix-react-sdk/pull/930) + * Set the displayname to the mxid once PWLU + [\#933](https://github.com/matrix-org/matrix-react-sdk/pull/933) + * Fix view_next_room, view_previous_room and view_indexed_room + [\#929](https://github.com/matrix-org/matrix-react-sdk/pull/929) + * Use RVS to indicate "joining" when setting a mxid + [\#928](https://github.com/matrix-org/matrix-react-sdk/pull/928) + * Don't show notif nag bar if guest + [\#932](https://github.com/matrix-org/matrix-react-sdk/pull/932) + * Show "Password" instead of "New Password" + [\#927](https://github.com/matrix-org/matrix-react-sdk/pull/927) + * Remove warm-fuzzy after setting mxid + [\#926](https://github.com/matrix-org/matrix-react-sdk/pull/926) + * Allow teamServerConfig to be missing + [\#925](https://github.com/matrix-org/matrix-react-sdk/pull/925) + * Remove GuestWarningBar + [\#923](https://github.com/matrix-org/matrix-react-sdk/pull/923) + * Make left panel better for new users (mk III) + [\#924](https://github.com/matrix-org/matrix-react-sdk/pull/924) + * Implement default welcome page and allow custom URL /w config + [\#922](https://github.com/matrix-org/matrix-react-sdk/pull/922) + * Implement a store for RoomView + [\#921](https://github.com/matrix-org/matrix-react-sdk/pull/921) + * Add prop to toggle whether new password input is autoFocused + [\#915](https://github.com/matrix-org/matrix-react-sdk/pull/915) + * Implement warm-fuzzy success dialog for SetMxIdDialog + [\#905](https://github.com/matrix-org/matrix-react-sdk/pull/905) + * Write some tests for the RTS UI + [\#893](https://github.com/matrix-org/matrix-react-sdk/pull/893) + * Make confirmation optional on ChangePassword + [\#890](https://github.com/matrix-org/matrix-react-sdk/pull/890) + * Remove "Current Password" input if mx_pass exists + [\#881](https://github.com/matrix-org/matrix-react-sdk/pull/881) + * Replace NeedToRegisterDialog /w SetMxIdDialog + [\#889](https://github.com/matrix-org/matrix-react-sdk/pull/889) + * Invite the welcome user after registration if configured + [\#882](https://github.com/matrix-org/matrix-react-sdk/pull/882) + * Prevent ROUs from creating new chats/new rooms + [\#879](https://github.com/matrix-org/matrix-react-sdk/pull/879) + * Redesign mxID chooser, add availability checking + [\#877](https://github.com/matrix-org/matrix-react-sdk/pull/877) + * Show password nag bar when user is PWLU + [\#864](https://github.com/matrix-org/matrix-react-sdk/pull/864) + * fix typo + [\#858](https://github.com/matrix-org/matrix-react-sdk/pull/858) + * Initial implementation: SetDisplayName -> SetMxIdDialog + [\#849](https://github.com/matrix-org/matrix-react-sdk/pull/849) + Changes in [0.9.2](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.9.2) (2017-06-06) =================================================================================================== [Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.9.1...v0.9.2) From 27592728f50dce51b1edebcc6fea38bb10f84788 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 9 Jun 2017 20:28:09 +0100 Subject: [PATCH 006/120] v0.9.3-rc.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dd7ff9c11e..557ffe8aa4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "matrix-react-sdk", - "version": "0.9.2", + "version": "0.9.3-rc.1", "description": "SDK for matrix.org using React", "author": "matrix.org", "repository": { From c61942ed5db51b77e67aea1232acb0d484443b14 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 9 Jun 2017 21:42:34 +0100 Subject: [PATCH 007/120] We now require flux 2.1 because we use utils --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 557ffe8aa4..595bedd374 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "emojione": "2.2.3", "file-saver": "^1.3.3", "filesize": "3.5.6", - "flux": "^2.0.3", + "flux": "2.1.1", "fuse.js": "^2.2.0", "glob": "^5.0.14", "highlight.js": "^8.9.1", From d6b85c9d4dc768527c1312d18759f4f8ff0b86b5 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 9 Jun 2017 22:06:43 +0100 Subject: [PATCH 008/120] Fix translations on conf call banner * You can't substitute react elements into a text string * Substituting in undefined gives the string 'undefined', so initialise it to the empty string. --- src/components/views/rooms/AuxPanel.js | 11 ++++++++--- src/i18n/strings/de_DE.json | 2 +- src/i18n/strings/en_EN.json | 2 +- src/i18n/strings/en_US.json | 2 +- src/i18n/strings/fr.json | 2 +- src/i18n/strings/pt.json | 2 +- src/i18n/strings/pt_BR.json | 2 +- src/i18n/strings/ru.json | 2 +- src/i18n/strings/zh_Hant.json | 2 +- 9 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/components/views/rooms/AuxPanel.js b/src/components/views/rooms/AuxPanel.js index 55b68d1eb1..acb9c76aa0 100644 --- a/src/components/views/rooms/AuxPanel.js +++ b/src/components/views/rooms/AuxPanel.js @@ -89,12 +89,13 @@ module.exports = React.createClass({ var conferenceCallNotification = null; if (this.props.displayConfCallNotification) { - var supportedText, joinText; + let supportedText = ''; + let joinNode; if (!MatrixClientPeg.get().supportsVoip()) { supportedText = _t(" (unsupported)"); } else { - joinText = ( + joinNode = ( {_tJsx( "Join as voice or video.", [/(.*?)<\/voiceText>/, /(.*?)<\/videoText>/], @@ -106,9 +107,13 @@ module.exports = React.createClass({ ); } + // XXX: the translation here isn't great: appending ' (unsupported)' is likely to not make sense in many languages, + // but there are translations for this in the languages we do have so I'm leaving it for now. conferenceCallNotification = (
- {_t("Ongoing conference call%(supportedText)s. %(joinText)s", {supportedText: supportedText, joinText: joinText})} + {_t("Ongoing conference call%(supportedText)s.", {supportedText: supportedText})} +   + {joinNode}
); } diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 15189a1372..699914d7ea 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -814,7 +814,7 @@ "Drop file here to upload": "Datei hier loslassen zum hochladen", "Idle": "Untätig", "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", + "Ongoing conference call%(supportedText)s.": "Laufendes Konferenzgespräch%(supportedText)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 die Website eines Drittanbieters weitergeleitet, damit du dein Konto für die Verwendung von %(integrationsUrl)s authentifizieren kannst. Möchtest du fortfahren?", "Disable URL previews for this room (affects only you)": "URL-Vorschau für diesen Raum deaktivieren (betrifft nur dich)", "Start automatically after system login": "Starte automatisch nach System-Login", diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index c7c6cd6ef3..c2fab535b0 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -887,7 +887,7 @@ "Enable URL previews for this room (affects only you)": "Enable URL previews for this room (affects only you)", "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", + "Ongoing conference call%(supportedText)s.": "Ongoing conference call%(supportedText)s.", "for %(amount)ss": "for %(amount)ss", "for %(amount)sm": "for %(amount)sm", "for %(amount)sh": "for %(amount)sh", diff --git a/src/i18n/strings/en_US.json b/src/i18n/strings/en_US.json index 5cdfd65d27..20041ef231 100644 --- a/src/i18n/strings/en_US.json +++ b/src/i18n/strings/en_US.json @@ -813,7 +813,7 @@ "Enable URL previews for this room (affects only you)": "Enable URL previews for this room (affects only you)", "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", + "Ongoing conference call%(supportedText)s.": "Ongoing conference call%(supportedText)s.", "for %(amount)ss": "for %(amount)ss", "for %(amount)sm": "for %(amount)sm", "for %(amount)sh": "for %(amount)sh", diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 712ccb2a63..4b074b63ea 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -759,7 +759,7 @@ "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 le télécharger", " (unsupported)": " (non supporté)", - "Ongoing conference call%(supportedText)s. %(joinText)s": "Appel conférence en cours%(supportedText)s. %(joinText)s", + "Ongoing conference call%(supportedText)s.": "Appel conférence en cours%(supportedText)s.", "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)", diff --git a/src/i18n/strings/pt.json b/src/i18n/strings/pt.json index 850e95f61f..d366fb7e66 100644 --- a/src/i18n/strings/pt.json +++ b/src/i18n/strings/pt.json @@ -808,7 +808,7 @@ "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", + "Ongoing conference call%(supportedText)s.": "Conferência%(supportedText)s em andamento.", "Online": "Online", "Idle": "Ocioso", "Offline": "Offline", diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json index 75d7a115b2..118c2445a6 100644 --- a/src/i18n/strings/pt_BR.json +++ b/src/i18n/strings/pt_BR.json @@ -808,7 +808,7 @@ "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", + "Ongoing conference call%(supportedText)s.": "Conferência%(supportedText)s em andamento.", "Online": "Online", "Idle": "Ocioso", "Offline": "Offline", diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 07ab24e824..6bcfa680c6 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -853,7 +853,7 @@ "Enable URL previews for this room (affects only you)": "Включить предпросмотр URL в этой комнате (только для вас)", "Drop file here to upload": "Перетащите файл сюда для загрузки", " (unsupported)": " (не поддерживается)", - "Ongoing conference call%(supportedText)s. %(joinText)s": "Идет конференц-звонок%(supportedText)s. %(joinText)s", + "Ongoing conference call%(supportedText)s.": "Идет конференц-звонок%(supportedText)s.", "for %(amount)ss": "уже %(amount)sс", "for %(amount)sm": "уже %(amount)sм", "for %(amount)sh": "уже %(amount)sч", diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index b2e1939565..140e7a7b2d 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -353,7 +353,7 @@ "This image cannot be displayed.": "這張圖片無法顯示", "Error decrypting video": "解密影片出錯", "Add an Integration": "新增整合器", - "Ongoing conference call%(supportedText)s. %(joinText)s": "%(supportedText)s. %(joinText)s 正在進行電話會議", + "Ongoing conference call%(supportedText)s.": "%(supportedText)s. 正在進行電話會議", " (unsupported)": " (不支持)", "URL Previews": "網址預覽", "Enable URL previews for this room (affects only you)": "啟用此房間的網址預覽(僅影響您)", From 8bb26073bec724e93f75dff82efd6a97aea66e5f Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 9 Jun 2017 22:13:53 +0100 Subject: [PATCH 009/120] Prepare changelog for v0.9.3-rc.2 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b217d7a0db..651303d3b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +Changes in [0.9.3-rc.2](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.9.3-rc.2) (2017-06-09) +============================================================================================================= +[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.9.3-rc.1...v0.9.3-rc.2) + + * Fix flux dependency + * Fix translations on conference call bar + Changes in [0.9.3-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.9.3-rc.1) (2017-06-09) ============================================================================================================= [Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.9.2...v0.9.3-rc.1) From 336b10daf11ce819afeee473e927c94ee1a5b425 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 9 Jun 2017 22:13:54 +0100 Subject: [PATCH 010/120] v0.9.3-rc.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 595bedd374..7e2ad6d064 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "matrix-react-sdk", - "version": "0.9.3-rc.1", + "version": "0.9.3-rc.2", "description": "SDK for matrix.org using React", "author": "matrix.org", "repository": { From cab23266cf5e1bf3279cb08b61df41ab3050226c Mon Sep 17 00:00:00 2001 From: abugandar Date: Sun, 11 Jun 2017 10:24:10 +0000 Subject: [PATCH 011/120] Added translation using Weblate (Arabic) --- src/i18n/strings/ar.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/i18n/strings/ar.json diff --git a/src/i18n/strings/ar.json b/src/i18n/strings/ar.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/src/i18n/strings/ar.json @@ -0,0 +1 @@ +{} \ No newline at end of file From 7b6e2c47673a818a28ecec4b2307a24793f736ec Mon Sep 17 00:00:00 2001 From: Tom Tryfonidis Date: Sun, 11 Jun 2017 16:30:26 +0000 Subject: [PATCH 012/120] Translated using Weblate (Greek) Currently translated at 42.2% (381 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/el/ --- src/i18n/strings/el.json | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/i18n/strings/el.json b/src/i18n/strings/el.json index 725b5497a5..a38dddb35b 100644 --- a/src/i18n/strings/el.json +++ b/src/i18n/strings/el.json @@ -1,13 +1,13 @@ { "af": "Αφρικάνικα", "Error": "Σφάλμα", - "Failed to forget room %(errCode)s": "Δεν ήταν δυνατή η διαγραφή του δωματίου %(errCode)s", + "Failed to forget room %(errCode)s": "Δεν ήταν δυνατή η διαγραφή του δωματίου (%(errCode)s)", "Failed to join the room": "Δεν ήταν δυνατή η σύνδεση στο δωμάτιο", "Mute": "Σίγαση", "Notifications": "Ειδοποιήσεις", "Operation failed": "Η λειτουργία απέτυχε", - "Please Register": "Παρακαλώ εγγραφείτε", - "Remove": "Αφαίρεσε", + "Please Register": "Παρακαλούμε εγγραφείτε", + "Remove": "Αφαίρεση", "Search": "Αναζήτηση", "Settings": "Ρυθμίσεις", "unknown error code": "άγνωστος κωδικός σφάλματος", @@ -195,7 +195,7 @@ "%(senderDisplayName)s removed the room name.": "Ο χρήστης %(senderDisplayName)s διέγραψε το όνομα του δωματίου.", "Changes your display nickname": "Αλλάζει το όνομα χρήστη", "Click here": "Κάνε κλικ εδώ", - "Drop here %(toAction)s": "Σύρε εδώ %(toAction)s", + "Drop here %(toAction)s": "Απόθεση εδώ %(toAction)s", "Conference call failed.": "Η κλήση συνδιάσκεψης απέτυχε.", "powered by Matrix": "βασισμένο στο πρωτόκολλο Matrix", "Confirm password": "Επιβεβαίωση κωδικού", @@ -222,7 +222,7 @@ "device id: ": "id συσκευής: ", "Device key:": "Κλειδί Συσκευής:", "Devices": "Συσκευές", - "Direct Chat": "Απευθείας Συνομιλία", + "Direct Chat": "Απευθείας συνομιλία", "Direct chats": "Απευθείας συνομιλίες", "disabled": "ανενεργό", "Disinvite": "Ανακάλεσε πρόσκληση", @@ -244,7 +244,7 @@ "Existing Call": "Υπάρχουσα Κλήση", "Export": "Εξαγωγή", "Export E2E room keys": "Εξαγωγή κλειδιών κρυπτογραφίας για το δωμάτιο", - "Failed to change password. Is your password correct?": "Δεν ήταν δυνατή η αλλαγή του κωδικού. Είναι ο κωδικός σωστός;", + "Failed to change password. Is your password correct?": "Δεν ήταν δυνατή η αλλαγή του κωδικού πρόσβασης. Είναι σωστός ο κωδικός πρόσβασης;", "Failed to delete device": "Δεν ήταν δυνατή η διαγραφή της συσκευής", "Failed to join room": "Δεν ήταν δυνατή η σύνδεση στο δωμάτιο", "Failed to leave room": "Δεν ήταν δυνατή η αποχώρηση από το δωμάτιο", @@ -330,7 +330,7 @@ "": "<δεν υποστηρίζεται>", "No more results": "Δεν υπάρχουν άλλα αποτελέσματα", "No results": "Κανένα αποτέλεσμα", - "OK": "ΟΚ", + "OK": "Εντάξει", "olm version:": "έκδοση olm:", "Password": "Κωδικός", "Password:": "Κωδικός:", @@ -364,7 +364,7 @@ "cancel all": "ακύρωση όλων", "or": "ή", "Custom Server Options": "Προσαρμοσμένες ρυθμίσεις διακομιστή", - "Dismiss": "Αγνόησε", + "Dismiss": "Απόρριψη", "Monday": "Δευτέρα", "Tuesday": "Τρίτη", "Wednesday": "Τετάρτη", @@ -382,5 +382,10 @@ "%(severalUsers)sjoined and left %(repeats)s times": "%(severalUsers)s συνδέθηκαν και έφυγαν %(repeats)s φορές", "%(oneUser)sjoined and left %(repeats)s times": "%(oneUser)s συνδέθηκε και έφυγε %(repeats)s φορές", "%(severalUsers)sjoined and left": "%(severalUsers)s συνδέθηκαν και έφυγαν", - "%(oneUser)sjoined and left": "%(oneUser)s συνδέθηκε και έφυγε" + "%(oneUser)sjoined and left": "%(oneUser)s συνδέθηκε και έφυγε", + "Close": "Κλείσιμο", + "Create new room": "Δημιουργία νέου δωματίου", + "Room directory": "Ευρετήριο", + "Start chat": "Έναρξη συνομιλίας", + "Welcome page": "Αρχική σελίδα" } From edf975f1c35f2001cf3c7aeb5ea0abfbb8af9cab Mon Sep 17 00:00:00 2001 From: abugandar Date: Sun, 11 Jun 2017 10:36:05 +0000 Subject: [PATCH 013/120] Translated using Weblate (Arabic) Currently translated at 0.5% (5 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/ar/ --- src/i18n/strings/ar.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/ar.json b/src/i18n/strings/ar.json index 9e26dfeeb6..946415bd30 100644 --- a/src/i18n/strings/ar.json +++ b/src/i18n/strings/ar.json @@ -1 +1,7 @@ -{} \ No newline at end of file +{ + "ar-iq": "العربية", + "Continue": "استمر", + "Username available": "18/5000\nاسم المستخدم متاح", + "Username not available": "الإسم المستخدم غير موجود", + "Something went wrong!": "هناك خطأ ما!" +} From a056fb05f4e4a792bc62cde7f11bdc28e7f4eb59 Mon Sep 17 00:00:00 2001 From: Radium Date: Sun, 11 Jun 2017 03:27:13 +0000 Subject: [PATCH 014/120] Translated using Weblate (Chinese (Simplified)) Currently translated at 38.9% (351 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hans/ --- src/i18n/strings/zh_Hans.json | 157 ++++++++++++++++++++++++++++++++-- 1 file changed, 152 insertions(+), 5 deletions(-) diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json index e6eb5f632b..ad37ce9430 100644 --- a/src/i18n/strings/zh_Hans.json +++ b/src/i18n/strings/zh_Hans.json @@ -162,9 +162,9 @@ "de-at": "德语(奥地利)", "de-ch": "德语(瑞士)", "de": "德语", - "de-lu": "德语(卢森堡)", + "de-lu": "德语 (卢森堡)", "el": "希腊语", - "en-au": "英语(澳大利亚)", + "en-au": "英语 (澳大利亚)", "en": "英语", "zh-cn": "中文(中国)", "zh-hk": "中文(香港)", @@ -199,11 +199,158 @@ "Ed25519 fingerprint": "Ed25519指纹", "Invite new room members": "邀请新的聊天室成员", "Join Room": "加入聊天室", - "joined": "加入了", - "%(targetName)s joined the room.": "%(targetName)s 加入了聊天室。.", + "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": "新密码" + "New password": "新密码", + "ar-ae": "阿拉伯语 (阿联酋)", + "ar-bh": "阿拉伯语 (巴林)", + "ar-dz": "阿拉伯语 (阿尔及利亚)", + "ar-eg": "阿拉伯语 (埃及)", + "ar-iq": "阿拉伯语 (伊拉克)", + "ar-jo": "阿拉伯语 (约旦)", + "ar-kw": "阿拉伯语 (科威特)", + "ar-lb": "阿拉伯语 (黎巴嫩)", + "ar-ly": "阿拉伯语 (利比亚)", + "ar-ma": "阿拉伯语 (摩洛哥)", + "ar-ye": "阿拉伯语 (也门)", + "en-ca": "英语 (加拿大)", + "en-gb": "英语 (英国)", + "en-ie": "英语 (爱尔兰)", + "en-nz": "英语 (新西兰)", + "Add a topic": "新话题", + "Admin": "管理员", + "Admin tools": "管理工具", + "VoIP": "IP 电话", + "Missing Media Permissions, click here to request.": "没有媒体存储权限,点此获取。", + "No Microphones detected": "未检测到麦克风", + "No Webcams detected": "未检测到摄像头", + "No media permissions": "没有媒体存取权限", + "You may need to manually permit Riot to access your microphone/webcam": "你可能需要手动授权 Riot 使用你的麦克风或摄像头", + "Default Device": "默认设备", + "Microphone": "麦克风", + "Camera": "摄像头", + "Hide removed messages": "隐藏被删除的消息", + "Authentication": "认证", + "Alias (optional)": "别名 (可选)", + "%(items)s and %(remaining)s others": "%(items)s 和其它 %(remaining)s 个", + "%(items)s and one other": "%(items)s 和其它一个", + "%(items)s and %(lastItem)s": "%(items)s 和 %(lastItem)s", + "and %(overflowCount)s others...": "和其它 %(overflowCount)s 个...", + "and one other...": "和其它一个...", + "%(names)s and one other are typing": "%(names)s 和另一个人正在打字", + "anyone": "任何人", + "Anyone": "任何人", + "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 leave the room '%(roomName)s'?": "你确定要离开聊天室 “%(roomName)s” 吗?", + "Are you sure you want to reject the invitation?": "你确定要拒绝邀请吗?", + "Are you sure you want to upload the following files?": "你确定要上传这些文件吗?", + "Bans user with given id": "封禁指定 ID 的用户", + "Blacklisted": "已列入黑名单", + "Bug Report": "反馈漏洞", + "Bulk Options": "批量操作", + "Call Timeout": "通话超时", + "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "无法连接主服务器 - 请检查网络连接,确保你的主服务器 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": "修改密码", + "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s 将昵称从 %(oldDisplayName)s 改为了 %(displayName)s。", + "%(senderName)s changed their profile picture.": "%(senderName)s 修改了头像。", + "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s 将聊天室名称改为 %(roomName)s。", + "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s 移除了聊天室名称。", + "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s 把话题修改为 “%(topic)s”。", + "Changes to who can read history will only apply to future messages in this room": "修改阅读历史的权限仅对此聊天室以后的消息有效", + "Changes your display nickname": "修改昵称", + "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.": "目前,修改密码会导致所有设备上的端对端密钥被重置,使得加密的聊天记录不再可读。除非你事先导出聊天室密钥,修改密码后再导入。这个问题未来会改善。", + "Clear Cache and Reload": "清除缓存并刷新", + "Clear Cache": "清除缓存", + "Click here to join the discussion!": "点此 加入讨论!", + "Click to mute audio": "点此静音", + "Click to mute video": "点此静音", + "click to reveal": "点击展开", + "Click to unmute video": "点此打开声音", + "Click to unmute audio": "点此打开声音", + "Close": "关闭", + "Command error": "命令错误", + "Commands": "命令", + "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": "此客户端不支持视频会议", + "%(count)s new messages.one": "%(count)s 条新消息", + "%(count)s new messages.other": "%(count)s 新消息", + "Create a new chat or reuse an existing one": "创建新聊天或使用已有的聊天", + "Custom": "自定义", + "Custom level": "自定义级别", + "Decline": "拒绝", + "Device already verified!": "设备已经验证!", + "Device ID:": "设备 ID:", + "device id: ": "设备 ID: ", + "Device key:": "设备密钥 :", + "Disable Notifications": "关闭消息通知", + "disabled": "已禁用", + "Disable markdown formatting": "禁用 Markdown 格式", + "Drop File Here": "把文件拖拽到这里", + "Email address (optional)": "电子邮件地址 (可选)", + "Enable Notifications": "启用消息通知", + "enabled": "已启用", + "Encrypted by a verified device": "由一个已验证的设备加密", + "Encrypted by an unverified device": "由一个未经验证的设备加密", + "Encryption is enabled in this room": "此聊天室启用了加密", + "Encryption is not enabled in this room": "此聊天室未启用加密", + "Enter passphrase": "输入密码", + "Error: Problem communicating with the given homeserver.": "错误: 与指定的主服务器通信时出错。", + "Export": "导出", + "Failed to fetch avatar URL": "获取 Avatar URL 失败", + "Failed to register as guest:": "无法注册为游客:", + "Failed to upload profile picture!": "无法上传头像!", + "Guest access is disabled on this Home Server.": "此服务器禁用了游客访问。", + "Home": "主页面", + "Import": "导入", + "Incoming call from %(name)s": "来自 %(name)s 的通话", + "Incoming video call from %(name)s": "来自 %(name)s 的视频通话", + "Incoming voice call from %(name)s": "来自 %(name)s 的视频通话", + "Incorrect username and/or password.": "用户名或密码错误。", + "%(senderName)s invited %(targetName)s.": "%(senderName)s 邀请了 %(targetName)s。", + "Invited": "已邀请", + "Invites": "邀请", + "Invites user with given id to current room": "邀请指定 ID 的用户加入当前聊天室", + "'%(alias)s' is not a valid format for an address": "'%(alias)s' 不是一个合法的电子邮件地址格式", + "'%(alias)s' is not a valid format for an alias": "'%(alias)s' 不是一个合法的昵称格式", + "%(displayName)s is typing": "%(displayName)s 正在输入", + "Sign in with": "第三方登录", + "Message not sent due to unknown devices being present": "消息未发送,因为有未知的设备存在", + "Missing room_id in request": "请求中没有 room_id", + "Missing user_id in request": "请求中没有 user_id", + "Mobile phone number": "手机号码", + "Mobile phone number (optional)": "手机号码 (可选)", + "Moderator": "管理员", + "Mute": "静音", + "my Matrix ID": "我的 Matrix ID", + "Name": "姓名", + "Never send encrypted messages to unverified devices from this device": "不要从此设备向未验证的设备发送消息", + "Never send encrypted messages to unverified devices in this room": "不要在此聊天室里向未验证的设备发送消息", + "New passwords don't match": "两次输入的新密码不符", + "none": "无", + "not set": "未设置", + "not specified": "未指定", + "Notifications": "通知", + "(not supported by this browser)": "(此浏览器不支持)", + "": "<不支持>", + "NOT verified": "未验证", + "No display name": "无昵称", + "No results": "没有更多结果", + "OK": "确定", + "Once encryption is enabled for a room it cannot be turned off again (for now)": "(目前) 一旦聊天室开启加密,就不能再关闭", + "Operation failed": "操作失败", + "Password": "密码", + "Password:": "密码:", + "Passwords can't be empty": "密码不能为空", + "Permissions": "权限", + "Phone": "电话" } From 6f509104e1a40995f03060f10a7bee7cbfd24639 Mon Sep 17 00:00:00 2001 From: Krombel Date: Fri, 9 Jun 2017 16:56:30 +0000 Subject: [PATCH 015/120] Translated using Weblate (English (United States)) Currently translated at 91.8% (828 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/en_US/ --- src/i18n/strings/en_US.json | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/en_US.json b/src/i18n/strings/en_US.json index 5cdfd65d27..4a7f75a8f6 100644 --- a/src/i18n/strings/en_US.json +++ b/src/i18n/strings/en_US.json @@ -824,5 +824,22 @@ "Disable URL previews for this room (affects only you)": "Disable URL previews for this room (affects only you)", "$senderDisplayName changed the room avatar to ": "$senderDisplayName changed the room avatar to ", "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s removed the room avatar.", - "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s changed the avatar for %(roomName)s" + "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s changed the avatar for %(roomName)s", + "Active call (%(roomName)s)": "Active call (%(roomName)s)", + "Accept": "Accept", + "a room": "a room", + "Add": "Add", + "Admin tools": "Admin tools", + "And %(count)s more...": "And %(count)s more...", + "Alias (optional)": "Alias (optional)", + "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.", + "Click here to join the discussion!": "Click here to join the discussion!", + "Close": "Close", + "%(count)s new messages.one": "%(count)s new message", + "%(count)s new messages.other": "%(count)s new messages", + "Custom": "Custom", + "Decline": "Decline", + "Disable markdown formatting": "Disable markdown formatting", + "Disable Notifications": "Disable Notifications", + "Enable Notifications": "Enable Notifications" } From 625159c9d88f4770d407b7547217411c36ecca10 Mon Sep 17 00:00:00 2001 From: Bamstam Date: Fri, 9 Jun 2017 19:03:21 +0000 Subject: [PATCH 016/120] Translated using Weblate (German) Currently translated at 100.0% (901 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/de/ --- src/i18n/strings/de_DE.json | 38 ++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 5dde6de25d..86dcef8c4b 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1,5 +1,5 @@ { - "Filter room members": "Raum-Benutzer filtern", + "Filter room members": "Raum-Mitglieder filtern", "You have no visible notifications": "Du hast keine sichtbaren Benachrichtigungen", "Invites": "Einladungen", "Favourites": "Favoriten", @@ -88,7 +88,7 @@ "Display name": "Anzeigename", "Email Address": "E-Mail-Adresse", "Email, name or matrix ID": "E-Mail, Name oder Matrix-ID", - "Encrypted messages will not be visible on clients that do not yet implement encryption": "Verschlüsselte Nachrichten werden an Clients nicht sichtbar sein, die Verschlüsselung noch nicht implementiert haben", + "Encrypted messages will not be visible on clients that do not yet implement encryption": "Verschlüsselte Nachrichten werden nicht in Matrix-Clients sichtbar sein, die die Verschlüsselung noch nicht implementiert haben", "Encrypted room": "Verschlüsselter Raum", "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", @@ -193,7 +193,7 @@ "Room name (optional)": "Raumname (optional)", "Scroll to unread messages": "Zu den ungelesenen Nachrichten scrollen", "Send Invites": "Einladungen senden", - "Send Reset Email": "E-Mail für das Zurücksetzen senden", + "Send Reset Email": "E-Mail zum Zurücksetzen senden", "sent an image": "hat ein Bild gesendet", "sent an invitation to": "sandte eine Einladung an", "sent a video": "hat ein Video gesendet", @@ -270,7 +270,7 @@ "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 do not have permission to post to this room": "Du hast keine Berechtigung an diesen Raum etwas zu senden", + "You do not have permission to post to this room": "Du hast keine Berechtigung, in diesem Raum etwas zu senden", "You have been invited to join this room by %(inviterName)s": "%(inviterName)s hat dich in diesen Raum eingeladen", "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 auf allen Geräten abgemeldet und wirst keine Push-Benachrichtigungen mehr erhalten. Um die Benachrichtigungen zu reaktivieren, musst du dich auf jedem Gerät neu anmelden", "you must be a": "nötige Rolle", @@ -392,7 +392,7 @@ "%(senderName)s unbanned %(targetName)s.": "%(senderName)s zog Bann für %(targetName)s zurück.", "Usage": "Verwendung", "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.", + "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s hat die Einladung für %(targetName)s zurückgezogen.", "You need to be able to invite users to do that.": "Du musst die Berechtigung haben, Nutzer einzuladen, um diese Aktion ausführen zu können.", "You need to be logged in.": "Du musst angemeldet sein.", "There are no visible files in this room": "Es gibt keine sichtbaren Dateien in diesem Raum", @@ -564,7 +564,7 @@ "Click to mute audio": "Klicke um den Ton stumm zu stellen", "Click to mute video": "Klicken, um das Video stummzuschalten", "Command error": "Befehlsfehler", - "Decrypt %(text)s": "Entschlüssele %(text)s", + "Decrypt %(text)s": "%(text)s entschlüsseln", "Delete": "Löschen", "Devices": "Geräte", "Direct chats": "Direkte Chats", @@ -586,7 +586,7 @@ "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", - "'%(alias)s' is not a valid format for an alias": "'%(alias)s' hat kein valides Aliasformat", + "'%(alias)s' is not a valid format for an alias": "'%(alias)s' ist kein gültiges Alias-Format", "Join Room": "Dem Raum beitreten", "Kick": "Kicke", "Level": "Berechtigungslevel", @@ -607,7 +607,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.": "Server nicht verfügbar, überlastet oder etwas anderes lief falsch.", + "Server unavailable, overloaded, or something else went wrong.": "Server ist nicht verfügbar, überlastet oder ein anderer Fehler ist aufgetreten.", "Some of your messages have not been sent.": "Einige deiner Nachrichten wurden 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", @@ -626,7 +626,7 @@ "You seem to be in a call, are you sure you want to quit?": "Du scheinst in einem Anruf zu sein. Bist du sicher schließen zu wollen?", "You seem to be uploading files, are you sure you want to quit?": "Du scheinst Dateien hochzuladen. Bist du sicher schließen zu wollen?", "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Du wirst diese Änderung nicht rückgängig machen können, da der Nutzer dasselbe Berechtigungslevel wie du selbst erhalten wird.", - "Make Moderator": "Zum Moderator machen", + "Make Moderator": "Zum Moderator ernennen", "Room": "Raum", "(~%(searchCount)s results)": "(~%(searchCount)s Ergebnisse)", "Cancel": "Abbrechen", @@ -655,7 +655,7 @@ "%(oneUser)sjoined %(repeats)s times": "%(oneUser)shat den Raum %(repeats)s mal betreten", "%(severalUsers)sjoined": "%(severalUsers)shaben den Raum betreten", "%(oneUser)sjoined": "%(oneUser)shat den Raum betreten", - "%(severalUsers)sleft %(repeats)s times": "%(severalUsers)sverließen %(repeats)s mal den Raum", + "%(severalUsers)sleft %(repeats)s times": "%(severalUsers)shaben %(repeats)s mal den Raum verlassen", "%(oneUser)sleft %(repeats)s times": "%(oneUser)sging %(repeats)s mal", "%(severalUsers)sleft": "%(severalUsers)shaben den Raum verlassen", "%(oneUser)sleft": "%(oneUser)sging", @@ -674,7 +674,7 @@ "%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)szogen ihre Einladungen %(repeats)s mal zurück", "%(oneUser)shad their invitation withdrawn %(repeats)s times": "%(oneUser)szog seine/ihre Einladung %(repeats)s mal zurück", "%(severalUsers)shad their invitations withdrawn": "%(severalUsers)szogen ihre Einladungen zurück", - "%(oneUser)shad their invitation withdrawn": "%(oneUser)szog seine/ihre Einladung zurück", + "%(oneUser)shad their invitation withdrawn": "%(oneUser)swurde die ursprüngliche Einladung wieder entzogen", "were invited %(repeats)s times": "wurden %(repeats)s mal eingeladen", "was invited %(repeats)s times": "wurde %(repeats)s mal eingeladen", "were invited": "wurden eingeladen", @@ -751,7 +751,7 @@ "Verify device": "Gerät verifizieren", "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", + "Continue anyway": "Trotzdem fortfahren", "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 kommunizierst. 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 bislang noch nicht gesehen hast.", @@ -809,7 +809,7 @@ "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 zuvor eine aktuellere Version von Riot verwendet hast, ist deine Sitzung eventuell inkompatibel mit dieser Version. Bitte schließe dieses Fenster und kehre zur aktuelleren Version zurück.", "Blacklist": "Blockieren", "Unblacklist": "Entblockieren", - "Unverify": "Entverifizieren", + "Unverify": "Verifizierung widerrufen", "This Home Server would like to make sure you are not a robot": "Dieser Heimserver möchte sicherstellen, dass du kein Roboter bist", "Drop file here to upload": "Datei hier loslassen zum hochladen", "Idle": "Untätig", @@ -841,7 +841,7 @@ "Camera": "Kamera", "Device already verified!": "Gerät bereits verifiziert!", "Export": "Export", - "Failed to register as guest:": "Registrieren als Gast schlug fehl:", + "Failed to register as guest:": "Die Registrierung als Gast ist fehlgeschlagen:", "Guest access is disabled on this Home Server.": "Gastzugang ist auf diesem Heimserver deaktivert.", "Import": "Import", "Incorrect username and/or password.": "Inkorrekter Nutzername und/oder Passwort.", @@ -862,7 +862,7 @@ "Register": "Registrieren", "Save": "Speichern", "Setting a user name will create a fresh account": "Die Eingabe eines Benutzernamens wird ein neues Konto erzeugen", - "Tagged as: ": "Getaggt als: ", + "Tagged as: ": "Markiert als: ", "This Home Server does not support login using email address.": "Dieser Heimserver unterstützt den Login mittels E-Mail-Adresse nicht.", "There was a problem logging in.": "Es gab ein Problem beim anmelden.", "Unknown (user, device) pair:": "Unbekanntes (Nutzer-/Gerät-)Paar:", @@ -880,7 +880,7 @@ "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s hat das Raum-Bild für %(roomName)s geändert", "Hide removed messages": "Gelöschte Nachrichten verbergen", "Start new chat": "Neuen Chat starten", - "Disable markdown formatting": "Deaktiviere Markdown-Formatierung", + "Disable markdown formatting": "Markdown-Formatierung deaktivieren", "Add": "Hinzufügen", "%(count)s new messages.one": "%(count)s neue Nachricht", "%(count)s new messages.other": "%(count)s neue Nachrichten", @@ -905,8 +905,8 @@ "Click on the button below to start chatting!": "Unten auf den Button klicken, um einen Chat zu beginnen!", "Create a new chat or reuse an existing one": "Neuen Chat erstellen oder einen vorhandenen Chat fortsetzen", "You already have existing direct chats with this user:": "Du hast bereits direkte Chats mit diesem Nutzer:", - "Username available": "Nutzername verfügbar", - "Username not available": "Nutzername nicht verfügbar", + "Username available": "Benutzername ist verfügbar", + "Username not available": "Benutzername ist nicht verfügbar", "Something went wrong!": "Etwas ging schief!", "This will be your account name on the homeserver, or you can pick a different server.": "Dies wird dein zukünftiger Benutzername auf dem Heimserver. Alternativ kannst du auch einen anderen Server auswählen.", "If you already have a Matrix account you can log in instead.": "Wenn du bereits ein Matrix-Benutzerkonto hast, kannst du dich stattdessen auch direkt anmelden.", @@ -964,7 +964,7 @@ "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (Berechtigungslevel %(powerLevelNumber)s)", "Verified": "Verifiziert", "Would you like to accept or decline this invitation?": "Möchtest du diese Einladung akzeptieren oder ablehnen?", - "You have been banned from %(roomName)s by %(userName)s.": "Du wurdest von %(userName)s aus dem Raum %(roomName)s verbannt.", + "You have been banned from %(roomName)s by %(userName)s.": "Du wurdest von %(userName)s aus dem Raum %(roomName)s ausgeschlossen.", "You have been kicked from %(roomName)s by %(userName)s.": "Du wurdest von %(userName)s aus dem Raum %(roomName)s gekickt.", "You may wish to login with a different account, or add this email to this account.": "Du möchtest dich evtl. mit einem anderen Konto anmelden oder diese E-Mail-Adresse diesem Konto hinzufügen.", "Your home server does not support device management.": "Dein Heimserver unterstützt kein Geräte-Management.", From 487ce1d6e1e6071f48f48fa1ce6864cb2f3f8850 Mon Sep 17 00:00:00 2001 From: maxigaz Date: Fri, 9 Jun 2017 20:52:39 +0000 Subject: [PATCH 017/120] Translated using Weblate (Hungarian) Currently translated at 20.0% (181 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/hu/ --- src/i18n/strings/hu.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 458d461b90..c6a86347f5 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -173,5 +173,11 @@ "Always show message timestamps": "Üzenet időbélyeg folyamatos megjelenítése", "Authentication": "Azonosítás", "Alias (optional)": "Becenév (opcionális)", - "all room members": "minden szoba tagság" + "all room members": "minden szoba tagság", + "Failed to change password. Is your password correct?": "Nem sikerült megváltoztatni a jelszót. Helyesen írtad be a jelszavadat?", + "Continue": "Folytatás", + "Create new room": "Új szoba létrehozása", + "sb": "Szorb", + "rm": "Rétoromán", + "tn": "Tswana" } From 3bc330425a4fb7ecc83b8ab84a7363f5e69fb8e4 Mon Sep 17 00:00:00 2001 From: GrigRUSS Date: Fri, 9 Jun 2017 18:28:35 +0000 Subject: [PATCH 018/120] Translated using Weblate (Russian) Currently translated at 100.0% (901 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/ru/ --- src/i18n/strings/ru.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 1084fccd9b..ea6487b16e 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -59,7 +59,7 @@ "Deops user with given id": "Deops пользователь с данным id", "Device ID": "Устройство ID", "Devices will not yet be able to decrypt history from before they joined the room": "Устройство еще не будет в состоянии дешифровать историю, до присоединения к комнате", - "Direct Chat": "Персональное сообщение", + "Direct Chat": "Приватный чат", "Disable inline URL previews by default": "Отключить встроенные предварительные просмотры URL по умолчанию", "Display name": "Отображаемое имя", "Displays action": "Отображение действий", @@ -246,7 +246,7 @@ "Failed to set up conference call": "Не удалось установить конференц-вызов", "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", + "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId) изменил %(fromPowerLevel) на %(toPowerLevel)", "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.", @@ -258,7 +258,7 @@ "Missing room_id in request": "Отсутствует room_id в запросе", "Missing user_id in request": "Отсутствует user_id в запросе", "Must be viewing a room": "Посмотреть комнату", - "New Composer & Autocomplete": "Новый автор & Авто. заполнение", + "New Composer & Autocomplete": "Новый автор & Автозаполнение", "(not supported by this browser)": "(не поддерживаемый этим браузером)", "af": "Африкаанс", "ar-ae": "Арабский (О.А.Е)", @@ -355,12 +355,12 @@ "Friday": "Пятница", "Saturday": "Суббота", "Sunday": "Воскресенье", - "%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s", + "%(weekDayName)s %(time)s": "%(weekDayName) %(time)", "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 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.": "Вы не можете позвонить самим себе.", @@ -725,7 +725,7 @@ "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 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.", @@ -766,7 +766,7 @@ "You have enabled URL previews by default.": "Предпросмотр ссылок включен по-умолчанию.", "You have entered an invalid contact. Try using their Matrix ID or email address.": "Вы ввели неправильный адрес. Попробуйте использовать Matrix ID или адрес email.", "You need to enter a user name.": "Необходимо ввести имя пользователя.", - "You seem to be in a call, are you sure you want to quit?": "Вы участвуете в звонке, вы уверены, что хотите выйти?", + "You seem to be in a call, are you sure you want to quit?": "Звонок не завершен, вы уверены, что хотите выйти?", "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Вы не сможете отменить это действие так как даете пользователю такой же уровень доступа как и у вас.", "Set a Display Name": "Установить отображаемое имя", "(~%(searchCount)s results)": "(~%(searchCount)s результатов)", @@ -818,7 +818,7 @@ "\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" содержит неизвестные прежде устройства.", "Unknown Address": "Неизвестный адрес", "Unblacklist": "Удалить из черного списка", - "Blacklist": "Добавить в черный список", + "Blacklist": "Черный список", "Unverify": "Убрать верификацию", "Verify...": "Верифицировать...", "ex. @bob:example.com": "например @bob:example.com", @@ -872,7 +872,7 @@ "Add": "Добавить", "%(count)s new messages.one": "%(count)s новое сообщение", "%(count)s new messages.other": "%(count)s новых сообщений", - "Error: Problem communicating with the given homeserver.": "Ошибка: проблема коммуникаций с указанным Home Server'ом.", + "Error: Problem communicating with the given homeserver.": "Ошибка: проблема связи с указанным сервером.", "Failed to fetch avatar URL": "Ошибка получения аватара", "The phone number entered looks invalid": "Введенный номер телефона выглядит неправильным", "Uploading %(filename)s and %(count)s others.zero": "Загрузка %(filename)s", @@ -925,7 +925,7 @@ "Set": "Вводить", "Start authentication": "Начать идентификацию", "This room": "Эта комната", - "(~%(count)s results).other": "(~%(count)s results)", + "(~%(count)s results).other": "(~%(count) найдено)", "Device Name": "Имя устройства", "Custom": "Пользователь", "Decline": "Отклонить", @@ -947,7 +947,7 @@ "%(user)s is a": "%(user)s является", "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (уровень доступа %(powerLevelNumber)s)", "Verified": "Подтверждён", - "Would you like to accept or decline this invitation?": "Хотели бы вы это приглашение подтвердить или отклонить?", + "Would you like to accept or decline this invitation?": "Хотели бы вы подтвердить это приглашение или отклонить?", "(~%(count)s results).one": "(~%(count)s Результат)", "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Не удается подключиться к домашнему серверу - проверьте подключение, убедитесь, что ваш сертификат SSL homeserver's SSL certificate действителен, и расширение браузера не блокирует запросы.", "You have been banned from %(roomName)s by %(userName)s.": "%(userName) забанил Вас в % (roomName).", From 4acb650f590efa342abced3d25b165631aa7856d Mon Sep 17 00:00:00 2001 From: Tom Tryfonidis Date: Sun, 11 Jun 2017 20:09:55 +0000 Subject: [PATCH 019/120] Translated using Weblate (Greek) Currently translated at 71.1% (641 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/el/ --- src/i18n/strings/el.json | 333 ++++++++++++++++++++++++++++++++++----- 1 file changed, 296 insertions(+), 37 deletions(-) diff --git a/src/i18n/strings/el.json b/src/i18n/strings/el.json index a38dddb35b..4a73003239 100644 --- a/src/i18n/strings/el.json +++ b/src/i18n/strings/el.json @@ -32,34 +32,34 @@ "%(targetName)s accepted an invitation.": "%(targetName)s δέχτηκε την πρόσκληση.", "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s δέχτηκες την πρόσκληση για %(displayName)s.", "Account": "Λογαριασμός", - "Add a topic": "Πρόσθεσε μια περιγραφή", - "Add email address": "Πρόσθεσε ένα email", - "Add phone number": "Πρόσθεσε έναν αριθμό τηλεφώνου", + "Add a topic": "Προσθήκη θέματος", + "Add email address": "Προσθήκη διεύθυνσης ηλ. αλληλογραφίας", + "Add phone number": "Προσθήκη αριθμού τηλεφώνου", "Admin": "Διαχειριστής", "VoIP": "VoIP", "No Microphones detected": "Δεν εντοπίστηκε μικρόφωνο", "No Webcams detected": "Δεν εντοπίστηκε κάμερα", - "Default Device": "Προεπιλεγμένη Συσκευή", + "Default Device": "Προεπιλεγμένη συσκευή", "Microphone": "Μικρόφωνο", "Camera": "Κάμερα", "Advanced": "Προχωρημένα", "Algorithm": "Αλγόριθμος", - "Hide removed messages": "Κρύψε διαγραμμένα μηνύματα", + "Hide removed messages": "Απόκρυψη διαγραμμένων μηνυμάτων", "Authentication": "Πιστοποίηση", "and": "και", "An email has been sent to": "Ένα email στάλθηκε σε", - "A new password must be entered.": "Ο νέος κωδικός πρέπει να εισαχθεί.", - "%(senderName)s answered the call.": "Ο χρήστης %(senderName)s απάντησε.", - "An error has occurred.": "Ένα σφάλμα προέκυψε", + "A new password must be entered.": "Ο νέος κωδικός πρόσβασης πρέπει να εισαχθεί.", + "%(senderName)s answered the call.": "Ο χρήστης %(senderName)s απάντησε την κλήση.", + "An error has occurred.": "Παρουσιάστηκε ένα σφάλμα.", "Anyone": "Oποιοσδήποτε", - "Are you sure?": "Είσαι σίγουρος;", + "Are you sure?": "Είστε σίγουροι;", "Are you sure you want to leave the room '%(roomName)s'?": "Είσαι σίγουρος οτι θές να φύγεις από το δωμάτιο '%(roomName)s';", "Are you sure you want to reject the invitation?": "Είσαι σίγουρος οτι θες να απορρίψεις την πρόσκληση;", "Are you sure you want to upload the following files?": "Είσαι σίγουρος οτι θές να ανεβάσεις τα ακόλουθα αρχεία;", "Attachment": "Επισύναψη", "%(senderName)s banned %(targetName)s.": "Ο χρήστης %(senderName)s έδιωξε τον χρήστη %(targetName)s.", "Autoplay GIFs and videos": "Αυτόματη αναπαραγωγή GIFs και βίντεο", - "Bug Report": "Αναφορά Σφάλματος", + "Bug Report": "Αναφορά σφάλματος", "anyone": "οποιοσδήποτε", "Anyone who knows the room's link, apart from guests": "Oποιοσδήποτε", "all room members, from the point they joined": "όλα τα μέλη του δωματίου, από τη στιγμή που συνδέθηκαν", @@ -169,8 +169,8 @@ "lv": "Λετονικά", "A registered account is required for this action": "Ένας εγγεγραμμένος λογαριασμός απαιτείται για αυτή την ενέργεια", "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Ένα μήνυμα στάλθηκε στο +%(msisdn)s. Παρακαλώ γράψε τον κωδικό επαλήθευσης που περιέχει", - "Access Token:": "Κωδικός Πρόσβασης:", - "Always show message timestamps": "Δείχνε πάντα ένδειξη ώρας στα μηνύματα", + "Access Token:": "Κωδικός πρόσβασης:", + "Always show message timestamps": "Εμ,φάνιση πάντα ένδειξη ώρας στα μηνύματα", "all room members": "όλα τα μέλη του δωματίου", "all room members, from the point they are invited": "όλα τα μέλη του δωματίου, από τη στιγμή που προσκλήθηκαν", "an address": "μία διεύθηνση", @@ -184,14 +184,14 @@ "Anyone who knows the room's link, including guests": "Οποιοσδήποτε γνωρίζει τον σύνδεδμο του δωματίου, συμπεριλαμβάνωντας τους επισκέπτες", "Blacklisted": "Στη μαύρη λίστα", "Can't load user settings": "Δεν είναι δυνατή η φόρτωση των ρυθμίσεων χρήστη", - "Change Password": "Αλλαγή Κωδικού", - "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "ο χρήστης %(senderName)s άλλαξε το όνομά του από %(oldDisplayName)s σε %(displayName)s.", - "%(senderName)s changed their profile picture.": "ο χρήστης %(senderName)s άλλαξε τη φωτογραφία του προφίλ του.", + "Change Password": "Αλλαγή κωδικού πρόσβασης", + "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "Ο χρήστης %(senderName)s άλλαξε το όνομά του από %(oldDisplayName)s σε %(displayName)s.", + "%(senderName)s changed their profile picture.": "Ο χρήστης %(senderName)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\".", "Clear Cache and Reload": "Καθάρισε την μνήμη και Ανανέωσε", "Clear Cache": "Καθάρισε την μνήμη", - "Bans user with given id": "Διώχνει τον χρήστη με το συγκεκριμένο id", + "Bans user with given id": "Αποκλεισμός χρήστη με το συγκεκριμένο αναγνωριστικό", "%(senderDisplayName)s removed the room name.": "Ο χρήστης %(senderDisplayName)s διέγραψε το όνομα του δωματίου.", "Changes your display nickname": "Αλλάζει το όνομα χρήστη", "Click here": "Κάνε κλικ εδώ", @@ -202,9 +202,9 @@ "Confirm your new password": "Επιβεβαίωση του νέου κωδικού", "Continue": "Συνέχεια", "Create an account": "Δημιουργία λογαριασμού", - "Create Room": "Δημιουργία Δωματίου", + "Create Room": "Δημιουργία δωματίου", "Cryptography": "Κρυπτογραφία", - "Current password": "Τωρινός κωδικός", + "Current password": "Τωρινός κωδικός πρόσβασης", "Curve25519 identity key": "Κλειδί ταυτότητας Curve25519", "Custom level": "Προσαρμοσμένο επίπεδο", "/ddg is not a command": "/ddg δεν αναγνωρίζεται ως εντολή", @@ -220,19 +220,19 @@ "Device ID": "ID Συσκευής", "Device ID:": "ID Συσκευής:", "device id: ": "id συσκευής: ", - "Device key:": "Κλειδί Συσκευής:", + "Device key:": "Κλειδί συσκευής:", "Devices": "Συσκευές", "Direct Chat": "Απευθείας συνομιλία", "Direct chats": "Απευθείας συνομιλίες", "disabled": "ανενεργό", - "Disinvite": "Ανακάλεσε πρόσκληση", + "Disinvite": "Ανάκληση πρόσκλησης", "Display name": "Όνομα χρήστη", - "Download %(text)s": "Κατέβασε %(text)s", + "Download %(text)s": "Λήψη %(text)s", "Ed25519 fingerprint": "Αποτύπωμα Ed25519", - "Email": "Ηλ. Αλληλογραφία", - "Email address": "Διεύθυνση email", - "Email address (optional)": "Διεύθυνση email (προαιρετικό)", - "Email, name or matrix ID": "Email, όνομα ή matrix ID", + "Email": "Ηλ. αλληλογραφία", + "Email address": "Διεύθυνση ηλ. αλληλογραφίας", + "Email address (optional)": "Διεύθυνση ηλ. αλληλογραφίας (προαιρετικό)", + "Email, name or matrix ID": "Ηλ. αλληλογραφίας, όνομα ή matrix ID", "Emoji": "Εικονίδια", "enabled": "ενεργό", "Encrypted messages will not be visible on clients that do not yet implement encryption": "Τα κρυπτογραφημένα μηνύματα δεν θα είναι ορατά σε εφαρμογές που δεν παρέχουν τη δυνατότητα κρυπτογράφησης", @@ -241,7 +241,7 @@ "End-to-end encryption information": "Πληροφορίες σχετικά με τη κρυπτογράφηση από άκρο σε άκρο (End-to-end encryption)", "Error decrypting attachment": "Σφάλμα κατά την αποκρυπτογράφηση της επισύναψης", "Event information": "Πληροφορίες μηνύματος", - "Existing Call": "Υπάρχουσα Κλήση", + "Existing Call": "Υπάρχουσα κλήση", "Export": "Εξαγωγή", "Export E2E room keys": "Εξαγωγή κλειδιών κρυπτογραφίας για το δωμάτιο", "Failed to change password. Is your password correct?": "Δεν ήταν δυνατή η αλλαγή του κωδικού πρόσβασης. Είναι σωστός ο κωδικός πρόσβασης;", @@ -253,7 +253,7 @@ "Failed to reject invite": "Δεν ήταν δυνατή η απόρριψη της πρόσκλησης", "Failed to reject invitation": "Δεν ήταν δυνατή η απόρριψη της πρόσκλησης", "Failed to save settings": "Δεν ήταν δυνατή η αποθήκευση των ρυθμίσεων", - "Failed to send email": "Δεν ήταν δυνατή η απστολή email", + "Failed to send email": "Δεν ήταν δυνατή η αποστολή email", "Failed to verify email address: make sure you clicked the link in the email": "Δεν ήταν δυνατή η επαλήθευση του email: βεβαιωθείτε οτι κάνατε κλικ στον σύνδεσμο που σας στάλθηκε", "Favourite": "Αγαπημένο", "favourite": "αγαπημένο", @@ -276,7 +276,7 @@ "Import E2E room keys": "Εισαγωγή κλειδιών κρυπτογράφησης", "Incorrect username and/or password.": "Λανθασμένο όνομα χρήστη και/ή κωδικός.", "Incorrect verification code": "Λανθασμένος κωδικός επαλήθευσης", - "Interface Language": "Γλώσσα Διεπαφής", + "Interface Language": "Γλώσσα διεπαφής", "Invalid Email Address": "Μη έγκυρο email", "Invite new room members": "Προσκάλεσε νέα μέλη", "Invited": "Προσκλήθηκε", @@ -313,16 +313,16 @@ "Conference calls are not supported in encrypted rooms": "Οι κλήσεις συνδιάσκεψης δεν είναι υποστηρίζονται σε κρυπτογραφημένα δωμάτια", "Conference calls are not supported in this client": "Οι κλήσεις συνδιάσκεψης δεν είναι υποστηρίζονται από την εφαρμογή", "Enable encryption": "Ενεργοποίηση κρυπτογραφίας", - "Enter Code": "Κωδικός", + "Enter Code": "Εισαγωγή κωδικού πρόσβασης", "Failed to send request.": "Δεν ήταν δυνατή η αποστολή αιτήματος.", - "Failed to upload file": "Δεν ήταν δυνατό το ανέβασμα αρχείου", + "Failed to upload file": "Δεν ήταν δυνατό η αποστολή του αρχείου", "Failure to create room": "Δεν ήταν δυνατή η δημιουργία δωματίου", "Join Room": "Συνδέσου", "Moderator": "Συντονιστής", "my Matrix ID": "το Matrix ID μου", "Name": "Όνομα", "New address (e.g. #foo:%(localDomain)s)": "Νέα διεύθυνση (e.g. #όνομα:%(localDomain)s)", - "New password": "Νέος κωδικός", + "New password": "Νέος κωδικός πρόσβασης", "New passwords don't match": "Οι νέοι κωδικοί είναι διαφορετικοί", "New passwords must match each other.": "Οι νέοι κωδικόι πρέπει να ταιριάζουν.", "none": "κανένα", @@ -332,9 +332,9 @@ "No results": "Κανένα αποτέλεσμα", "OK": "Εντάξει", "olm version:": "έκδοση olm:", - "Password": "Κωδικός", - "Password:": "Κωδικός:", - "Passwords can't be empty": "", + "Password": "Κωδικός πρόσβασης", + "Password:": "Κωδικός πρόσβασης:", + "Passwords can't be empty": "Οι κωδικοί πρόσβασης δεν μπορούν να είναι κενοί", "People": "Άτομα", "Phone": "Τηλέφωνο", "Register": "Εγγραφή", @@ -349,13 +349,13 @@ "sent an image": "έστειλε μια εικόνα", "sent a video": "έστειλε ένα βίντεο", "Server error": "Σφάλμα διακομιστή", - "Signed Out": "Αποσυνδέθηκες", + "Signed Out": "Αποσυνδέθηκε", "Sign in": "Συνδέση", "Sign out": "Αποσύνδεση", "since they joined": "από τη στιγμή που συνδέθηκαν", "since they were invited": "από τη στιγμή που προσκλήθηκαν", "Someone": "Κάποιος", - "Start a chat": "Ξεκίνα μια συνομιλία", + "Start a chat": "Έναρξη συνομιλίας", "This email address is already in use": "Το email χρησιμοποιείται", "This email address was not found": "Η διεύθηνση email δεν βρέθηκε", "Success": "Επιτυχία", @@ -387,5 +387,264 @@ "Create new room": "Δημιουργία νέου δωματίου", "Room directory": "Ευρετήριο", "Start chat": "Έναρξη συνομιλίας", - "Welcome page": "Αρχική σελίδα" + "Welcome page": "Αρχική σελίδα", + "a room": "ένα δωμάτιο", + "Accept": "Αποδοχή", + "Active call (%(roomName)s)": "Ενεργή κλήση (%(roomName)s)", + "Add": "Προσθήκη", + "Admin tools": "Εργαλεία διαχειριστή", + "And %(count)s more...": "Και %(count)s περισσότερα...", + "No media permissions": "Χωρίς δικαιώματα πολυμέσων", + "Alias (optional)": "Ψευδώνυμο (προαιρετικό)", + "Ban": "Αποκλεισμός", + "Banned users": "Αποκλεισμένοι χρήστες", + "Bulk Options": "Μαζικές επιλογές", + "Call Timeout": "Λήξη χρόνου κλήσης", + "Click here to join the discussion!": "Κλικ εδώ για να συμμετάσχετε στην συζήτηση!", + "Click to mute audio": "Κάντε κλικ για σίγαση του ήχου", + "Click to mute video": "Κάντε κλικ για σίγαση του βίντεο", + "click to reveal": "κάντε κλικ για εμφάνισηχ", + "Click to unmute video": "Κάντε κλικ για άρση σίγασης του βίντεο", + "Click to unmute audio": "Κάντε κλικ για άρση σίγασης του ήχου", + "%(count)s new messages.one": "%(count)s νέο μήνυμα", + "%(count)s new messages.other": "%(count)s νέα μηνύματα", + "Custom": "Προσαρμοσμένο", + "Decline": "Απόρριψη", + "Disable Notifications": "Απενεργοποίηση ειδοποιήσεων", + "Disable markdown formatting": "Απενεργοποίηση μορφοποίησης markdown", + "Drop File Here": "Αποθέστε εδώ το αρχείο", + "Enable Notifications": "Ενεργοποίηση ειδοποιήσεων", + "Encryption is enabled in this room": "Η κρυπτογράφηση είναι ενεργοποιημένη σε αυτό το δωμάτιο", + "Encryption is not enabled in this room": "Η κρυπτογράφηση είναι απενεργοποιημένη σε αυτό το δωμάτιο", + "Enter passphrase": "Εισαγωγή συνθηματικού", + "Failed to set avatar.": "Δεν ήταν δυνατός ο ορισμός της προσωπικής εικόνας", + "Failed to set display name": "Δεν ήταν δυνατός ο ορισμός του ονόματος εμφάνισης", + "Failed to set up conference call": "Δεν ήταν δυνατή η ρύθμιση κλήσης συνδιάσκεψης", + "Failed to toggle moderator status": "Δεν ήταν δυνατή η εναλλαγή κατάστασης του συντονιστή", + "Failed to upload profile picture!": "Δεν ήταν δυνατή η αποστολή της εικόνας προφίλ!", + "Hide read receipts": "Απόκρυψη αποδείξεων ανάγνωσης", + "Home": "Αρχική", + "Last seen": "Τελευταία εμφάνιση", + "Level:": "Επίπεδο:", + "Manage Integrations": "Διαχείριση ενσωματώσεων", + "Markdown is disabled": "Το Markdown είναι απενεργοποιημένο", + "Markdown is enabled": "Το Markdown είναι ενεργοποιημένο", + "Missing room_id in request": "Λείπει το room_id στο αίτημα", + "Permissions": "Δικαιώματα", + "Power level must be positive integer.": "Το επίπεδο δύναμης πρέπει να είναι ένας θετικός ακέραιος", + "Privacy warning": "Προειδοποίηση ιδιωτικότητας", + "Private Chat": "Προσωπική συνομιλία", + "Privileged Users": "Προνομιούχοι χρήστες", + "Profile": "Προφίλ", + "Public Chat": "Δημόσια συνομιλία", + "Reason": "Αιτία", + "Reason: %(reasonText)s": "Αιτία: %(reasonText)s", + "Revoke Moderator": "Ανάκληση συντονιστή", + "Registration required": "Απαιτείται εγγραφή", + "rejected": "απορρίφθηκε", + "%(targetName)s rejected the invitation.": "Ο %(targetName)s απέρριψε την πρόσκληση.", + "Reject invitation": "Απόρριψη πρόσκλησης", + "Remote addresses for this room:": "Απομακρυσμένες διευθύνσεις για το δωμάτιο:", + "Remove Contact Information?": "Αφαίρεση πληροφοριών επαφής;", + "Remove %(threePid)s?": "Αφαίρεση %(threePid)s;", + "Report it": "Αναφορά", + "restore": "επαναφορά", + "Results from DuckDuckGo": "Αποτελέσματα από DuckDuckGo", + "Return to app": "Επιστροφή στην εφαρμογή", + "Return to login screen": "Επιστροφή στην οθόνη σύνδεσης", + "Room %(roomId)s not visible": "Το δωμάτιο %(roomId)s δεν είναι ορατό", + "%(roomName)s does not exist.": "Το %(roomName)s δεν υπάρχει.", + "Searches DuckDuckGo for results": "Γίνεται αναζήτηση στο DuckDuckGo για αποτελέσματα", + "Searching known users": "Αναζήτηση γνωστών χρηστών", + "Seen by %(userName)s at %(dateTime)s": "Διαβάστηκε από %(userName)s στις %(dateTime)s", + "Send anyway": "Αποστολή ούτως ή άλλως", + "Send Invites": "Αποστολή προσκλήσεων", + "Send Reset Email": "Αποστολή μηνύματος επαναφοράς", + "%(senderDisplayName)s sent an image.": "Ο %(senderDisplayName)s έστειλε μια φωτογραφία.", + "Server may be unavailable or overloaded": "Ο διακομιστής μπορεί να είναι μη διαθέσιμος ή υπερφορτωμένος", + "Session ID": "Αναγνωριστικό συνεδρίας", + "%(senderName)s set a profile picture.": "Ο %(senderName)s όρισε τη φωτογραφία του προφίλ του.", + "Set": "Ορισμός", + "Start authentication": "Έναρξη πιστοποίησης", + "Submit": "Υποβολή", + "Tagged as: ": "Με ετικέτα:", + "The default role for new room members is": "Ο προεπιλεγμένος ρόλος για νέα μέλη είναι", + "The main address for this room is": "Η κύρια διεύθυνση για το δωμάτιο είναι", + "%(actionVerb)s this person?": "%(actionVerb)s αυτού του ατόμου;", + "The file '%(fileName)s' failed to upload": "Απέτυχε η αποστολή του αρχείου '%(fileName)s'", + "There was a problem logging in.": "Υπήρξε ένα πρόβλημα κατά την σύνδεση.", + "This room has no local addresses": "Αυτό το δωμάτιο δεν έχει τοπικές διευθύνσεις", + "This doesn't appear to be a valid email address": "Δεν μοιάζει με μια έγκυρη διεύθυνση ηλ. αλληλογραφίας", + "This phone number is already in use": "Αυτός ο αριθμός τηλεφώνου είναι ήδη σε χρήση", + "This room": "Αυτό το δωμάτιο", + "This room's internal ID is": "Το εσωτερικό αναγνωριστικό του δωματίου είναι", + "times": "φορές", + "To ban users": "Για αποκλεισμό χρηστών", + "to browse the directory": "για περιήγηση στο ευρετήριο", + "To configure the room": "Για ρύθμιση του δωματίου", + "To invite users into the room": "Για πρόσκληση χρηστών στο δωμάτιο", + "To remove other users' messages": "Για αφαίρεση μηνυμάτων άλλων χρηστών", + "to restore": "για επαναφορά", + "To send events of type": "Για αποστολή συμβάντων τύπου", + "To send messages": "Για αποστολή μηνυμάτων", + "Turn Markdown off": "Απενεργοποίηση Markdown", + "Turn Markdown on": "Ενεργοποίηση Markdown", + "Unable to add email address": "Αδυναμία προσθήκης διεύθυνσης ηλ. αλληλογραφίας", + "Unable to remove contact information": "Αδυναμία αφαίρεσης πληροφοριών επαφής", + "Unable to restore previous session": "Αδυναμία επαναφοράς της προηγούμενης συνεδρίας", + "Unable to verify email address.": "Αδυναμία επιβεβαίωσης διεύθυνσης ηλ. αλληλογραφίας", + "Unban": "Άρση αποκλεισμού", + "%(senderName)s unbanned %(targetName)s.": "Ο χρήστης %(senderName)s έδιωξε τον χρήστη %(targetName)s.", + "Unable to enable Notifications": "Αδυναμία ενεργοποίησης των ειδοποιήσεων", + "Unable to load device list": "Αδυναμία φόρτωσης της λίστας συσκευών", + "Unencrypted room": "Μη κρυπτογραφημένο δωμάτιο", + "unencrypted": "μη κρυπτογραφημένο", + "Unencrypted message": "Μη κρυπτογραφημένο μήνυμα", + "unknown caller": "άγνωστος καλών", + "Unknown command": "Άγνωστη εντολή", + "unknown device": "άγνωστη συσκευή", + "Unknown room %(roomId)s": "Άγνωστο δωμάτιο %(roomId)s", + "unknown": "άγνωστο", + "Unmute": "Άρση σίγασης", + "Unnamed Room": "Ανώνυμο δωμάτιο", + "Unrecognised command:": "Μη αναγνωρίσιμη εντολή", + "Unrecognised room alias:": "Μη αναγνωρίσιμο ψευδώνυμο", + "Unverified": "Ανεπιβεβαίωτο", + "Upload avatar": "Αποστολή προσωπικής εικόνας", + "Upload Failed": "Απέτυχε η αποστολή", + "Upload Files": "Αποστολή αρχείων", + "Upload file": "Αποστολή αρχείου", + "Upload new:": "Αποστολή νέου:", + "Usage": "Χρήση", + "Use with caution": "Να χρησιμοποιείται με προσοχή", + "User ID": "Αναγνωριστικό χρήστη", + "User Interface": "Διεπαφή χρήστη", + "%(user)s is a": "Ο %(user)s είναι", + "User name": "Όνομα χρήστη", + "Username invalid: %(errMessage)s": "Μη έγκυρο όνομα χρήστη: %(errMessage)s", + "Users": "Χρήστες", + "User": "Χρήστης", + "Video call": "Βιντεοκλήση", + "Voice call": "Φωνητική κλήση", + "Warning!": "Προειδοποίηση!", + "Who would you like to communicate with?": "Με ποιον θα θέλατε να επικοινωνήσετε;", + "You are already in a call.": "Είστε ήδη σε μια κλήση.", + "You have no visible notifications": "Δεν έχετε ορατές ειδοποιήσεις", + "you must be a": "πρέπει να είστε", + "You must register to use this functionality": "Πρέπει να εγγραφείτε για να χρησιμοποιήσετε αυτή την λειτουργία", + "You need to be logged in.": "Πρέπει να είστε συνδεδεμένος.", + "You need to enter a user name.": "Πρέπει να εισάγετε ένα όνομα χρήστη.", + "Your password has been reset": "Ο κωδικός πρόσβασης σας έχει επαναφερθεί", + "Sun": "Κυρ", + "Mon": "Δευ", + "Tue": "Τρί", + "Wed": "Τετ", + "Thu": "Πέμ", + "Fri": "Παρ", + "Sat": "Σάβ", + "Jan": "Ιαν", + "Feb": "Φεβ", + "Mar": "Μάρ", + "Apr": "Απρ", + "May": "Μάι", + "Jun": "Ιούν", + "Jul": "Ιούλ", + "Aug": "Αύγ", + "Sep": "Σεπ", + "Oct": "Οκτ", + "Nov": "Νοέ", + "Dec": "Δεκ", + "%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(time)s", + "%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s", + "Set a display name:": "Ορισμός ονόματος εμφάνισης:", + "Set a Display Name": "Ορισμός ονόματος εμφάνισης", + "Upload an avatar:": "Αποστολή προσωπικής εικόνας", + "This server does not support authentication with a phone number.": "Αυτός ο διακομιστής δεν υποστηρίζει πιστοποίηση με αριθμό τηλεφώνου.", + "Missing password.": "Λείπει ο κωδικός πρόσβασης.", + "Passwords don't match.": "Δεν ταιριάζουν οι κωδικοί πρόσβασης.", + "This doesn't look like a valid email address.": "Δεν μοιάζει με μια έγκυρη διεύθυνση ηλ. αλληλογραφίας.", + "An unknown error occurred.": "Προέκυψε ένα άγνωστο σφάλμα", + "I already have an account": "Έχω ήδη λογαριασμό", + "An error occurred: %(error_string)s": "Προέκυψε ένα σφάλμα: %(error_string)s", + "Topic": "Θέμα", + "Make Moderator": "Ορισμός συντονιστή", + "Encrypt room": "Κρυπτογράφηση δωματίου", + "Room": "Δωμάτιο", + "Auto-complete": "Αυτόματη συμπλήρωση", + "(~%(count)s results).one": "(~%(count)s αποτέλεσμα)", + "(~%(count)s results).other": "(~%(count)s αποτελέσματα)", + "Active call": "Ενεργή κλήση", + "strike": "επιγράμμιση", + "bullet": "κουκκίδα", + "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)s συνδέθηκαν %(repeats)s φορές", + "%(oneUser)sjoined %(repeats)s times": "%(oneUser)s συνδέθηκε %(repeats)s φορές", + "%(severalUsers)sjoined": "%(severalUsers)s συνδέθηκαν", + "%(oneUser)sjoined": "%(oneUser)s συνδέθηκε", + "were invited": "προσκλήθηκαν", + "was invited": "προσκλήθηκε", + "were banned": "αποκλείστηκαν", + "was banned": "αποκλείστηκε", + "were kicked": "διώχτηκαν", + "was kicked": "διώχτηκε", + "New Password": "Νέος κωδικός πρόσβασης", + "Start automatically after system login": "Αυτόματη έναρξη μετά τη σύνδεση", + "Options": "Επιλογές", + "Passphrases must match": "Δεν ταιριάζουν τα συνθηματικά", + "Passphrase must not be empty": "Το συνθηματικό δεν πρέπει να είναι κενό", + "Export room keys": "Εξαγωγή κλειδιών δωματίου", + "Confirm passphrase": "Επιβεβαίωση συνθηματικού", + "Import room keys": "Εισαγωγή κλειδιών δωματίου", + "File to import": "Αρχείο για εισαγωγή", + "Start new chat": "Έναρξη νέας συνομιλίας", + "Guest users can't invite users. Please register.": "Οι επισκέπτες δεν έχουν τη δυνατότητα να προσκαλέσουν άλλους χρήστες. Παρακαλούμε εγγραφείτε πρώτα.", + "Confirm Removal": "Επιβεβαίωση αφαίρεσης", + "Unknown error": "Άγνωστο σφάλμα", + "Incorrect password": "Λάθος κωδικός πρόσβασης", + "To continue, please enter your password.": "Για να συνεχίσετε, παρακαλούμε πληκτρολογήστε τον κωδικό πρόσβασής σας.", + "Device name": "Όνομα συσκευής", + "Device Name": "Όνομα συσκευής", + "Device key": "Κλειδί συσκευής", + "Verify device": "Επαλήθευση συσκευής", + "Unable to restore session": "Αδυναμία επαναφοράς συνεδρίας", + "Continue anyway": "Συνέχεια οπωσδήποτε", + "Unknown devices": "Άγνωστες συσκευές", + "Unknown Address": "Άγνωστη διεύθυνση", + "Blacklist": "Μαύρη λίστα", + "Verify...": "Επαλήθευση...", + "ex. @bob:example.com": "π.χ @bob:example.com", + "Add User": "Προσθήκη χρήστη", + "Sign in with CAS": "Σύνδεση με CAS", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Μπορείτε να χρησιμοποιήσετε τις προσαρμοσμένες ρυθμίσεις για να εισέλθετε σε άλλους διακομιστές Matrix επιλέγοντας μια διαφορετική διεύθυνση για το διακομιστή.", + "Token incorrect": "Εσφαλμένο διακριτικό", + "A text message has been sent to": "Ένα μήνυμα στάλθηκε στο", + "Please enter the code it contains:": "Παρακαλούμε εισάγετε τον κωδικό που περιέχει:", + "Default server": "Προεπιλεγμένος διακομιστής", + "Custom server": "Προσαρμοσμένος διακομιστής", + "Home server URL": "Διεύθυνση διακομιστή", + "Identity server URL": "Διεύθυνση διακομιστή ταυτοποίησης", + "What does this mean?": "Τι σημαίνει αυτό;", + "Error decrypting audio": "Σφάλμα κατά την αποκρυπτογράφηση του ήχου", + "Error decrypting image": "Σφάλμα κατά την αποκρυπτογράφηση της εικόνας", + "Image '%(Body)s' cannot be displayed.": "Η εικόνα '%(Body)s' δεν μπορεί να εμφανιστεί.", + "This image cannot be displayed.": "Αυτή η εικόνα δεν μπορεί να εμφανιστεί.", + "Error decrypting video": "Σφάλμα κατά την αποκρυπτογράφηση του βίντεο", + "Add an Integration": "Προσθήκη ενσωμάτωσης", + "URL Previews": "Προεπισκόπηση συνδέσμων", + "Enable URL previews for this room (affects only you)": "Ενεργοποίηση της προεπισκόπησης συνδέσμων γι' αυτό το δωμάτιο (επηρεάζει μόνο εσάς)", + "Drop file here to upload": "Αποθέστε εδώ για αποστολή", + "for %(amount)ss": "για %(amount)ss", + "for %(amount)sm": "για %(amount)sm", + "for %(amount)sh": "για %(amount)sh", + "for %(amount)sd": "για %(amount)sd", + "Online": "Σε σύνδεση", + "Idle": "Αδρανής", + "Offline": "Εκτός σύνδεσης", + "Start chatting": "Έναρξη συνομιλίας", + "Start Chatting": "Έναρξη συνομιλίας", + "Click on the button below to start chatting!": "Κάντε κλικ στο κουμπί παρακάτω για να ξεκινήσετε μια συνομιλία!", + "%(senderDisplayName)s removed the room avatar.": "Ο %(senderDisplayName)s διέγραψε την προσωπική εικόνα του δωματίου", + "%(senderDisplayName)s changed the avatar for %(roomName)s": "Ο %(senderDisplayName)s άλλαξε την προσωπική εικόνα του %(roomName)s.", + "Username available": "Διαθέσιμο όνομα χρήστη", + "Username not available": "Μη διαθέσιμο όνομα χρήστη", + "Something went wrong!": "Κάτι πήγε στραβά!" } From 08adc49f15ebddf776e092683e73488eec30a7a3 Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Mon, 12 Jun 2017 08:20:51 +0000 Subject: [PATCH 020/120] Translated using Weblate (French) Currently translated at 93.2% (840 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 712ccb2a63..51ec1b3215 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -854,5 +854,7 @@ "Username not available": "Nom d'utilisateur indisponible", "Something went wrong!": "Quelque chose s’est mal passé !", "This will be your account name on the homeserver, or you can pick a different server.": "Cela sera le nom de votre compte sur le serveur , ou vous pouvez sélectionner un autre serveur.", - "If you already have a Matrix account you can log in instead.": "Si vous avez déjà un compte Matrix vous pouvez vous identifier à la place." + "If you already have a Matrix account you can log in instead.": "Si vous avez déjà un compte Matrix vous pouvez vous identifier à la place.", + "a room": "un salon", + "Accept": "Accepter" } From aba4c76f4a83b8ef3ec59ecc1d8c548c3a71343d Mon Sep 17 00:00:00 2001 From: Tom Tryfonidis Date: Mon, 12 Jun 2017 09:19:31 +0000 Subject: [PATCH 021/120] Translated using Weblate (Greek) Currently translated at 87.0% (784 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/el/ --- src/i18n/strings/el.json | 197 +++++++++++++++++++++++++++++++++------ 1 file changed, 170 insertions(+), 27 deletions(-) diff --git a/src/i18n/strings/el.json b/src/i18n/strings/el.json index 4a73003239..bc5d5ca6b5 100644 --- a/src/i18n/strings/el.json +++ b/src/i18n/strings/el.json @@ -53,8 +53,8 @@ "An error has occurred.": "Παρουσιάστηκε ένα σφάλμα.", "Anyone": "Oποιοσδήποτε", "Are you sure?": "Είστε σίγουροι;", - "Are you sure you want to leave the room '%(roomName)s'?": "Είσαι σίγουρος οτι θές να φύγεις από το δωμάτιο '%(roomName)s';", - "Are you sure you want to reject the invitation?": "Είσαι σίγουρος οτι θες να απορρίψεις την πρόσκληση;", + "Are you sure you want to leave the room '%(roomName)s'?": "Είστε σίγουροι ότι θέλετε να αποχωρήσετε από το δωμάτιο '%(roomName)s';", + "Are you sure you want to reject the invitation?": "Είστε σίγουροι ότι θέλετε να απορρίψετε την πρόσκληση;", "Are you sure you want to upload the following files?": "Είσαι σίγουρος οτι θές να ανεβάσεις τα ακόλουθα αρχεία;", "Attachment": "Επισύναψη", "%(senderName)s banned %(targetName)s.": "Ο χρήστης %(senderName)s έδιωξε τον χρήστη %(targetName)s.", @@ -159,7 +159,7 @@ "ur": "Ουρντού", "ve": "Venda", "vi": "Βιετναμέζικα", - "xh": "Xhosa", + "xh": "Ξόσα", "zh-cn": "Κινέζικα (ΛΔΚ)", "zh-hk": "Κινέζικα (ΕΔΠ Χονγκ Κονγκ)", "zh-sg": "Κινέζικα (Σιγκαπούρη)", @@ -181,7 +181,7 @@ "%(names)s and %(lastPerson)s are typing": "%(names)s και %(lastPerson)s γράφουν", "%(names)s and one other are typing": "%(names)s και ένας ακόμα γράφουν", "%(names)s and %(count)s others are typing": "%(names)s και %(count)s άλλοι γράφουν", - "Anyone who knows the room's link, including guests": "Οποιοσδήποτε γνωρίζει τον σύνδεδμο του δωματίου, συμπεριλαμβάνωντας τους επισκέπτες", + "Anyone who knows the room's link, including guests": "Οποιοσδήποτε γνωρίζει τον σύνδεσμο του δωματίου, συμπεριλαμβάνωντας τους επισκέπτες", "Blacklisted": "Στη μαύρη λίστα", "Can't load user settings": "Δεν είναι δυνατή η φόρτωση των ρυθμίσεων χρήστη", "Change Password": "Αλλαγή κωδικού πρόσβασης", @@ -198,7 +198,7 @@ "Drop here %(toAction)s": "Απόθεση εδώ %(toAction)s", "Conference call failed.": "Η κλήση συνδιάσκεψης απέτυχε.", "powered by Matrix": "βασισμένο στο πρωτόκολλο Matrix", - "Confirm password": "Επιβεβαίωση κωδικού", + "Confirm password": "Επιβεβαίωση κωδικού πρόσβασης", "Confirm your new password": "Επιβεβαίωση του νέου κωδικού", "Continue": "Συνέχεια", "Create an account": "Δημιουργία λογαριασμού", @@ -261,38 +261,38 @@ "Fill screen": "Γέμισε την οθόνη", "Filter room members": "Φίλτραρε τα μέλη", "Forget room": "Διέγραψε το δωμάτιο", - "Forgot your password?": "Ξέχασες τον κωδικό σου;", - "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.": "Για λόγους ασφαλείας, τα κλειδιά κρυπτογράφησης θα διαγράφονται από τον φυλλομετρητή κατά την αποσύνδεση σας. Εάν επιθυμείτε να αποκρυπτογραφήσετε τις συνομιλίες σας στο μέλλον, εξάγετε τα κλειδιά σας και κρατήστε τα ασφαλή.", + "Forgot your password?": "Ξεχάσατε τoν κωδικό πρόσβασης;", + "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.": "Για λόγους ασφαλείας, τα κλειδιά κρυπτογράφησης θα διαγράφονται από τον περιηγητή κατά την αποσύνδεση σας. Εάν επιθυμείτε να αποκρυπτογραφήσετε τις συνομιλίες σας στο μέλλον, εξάγετε τα κλειδιά σας και κρατήστε τα ασφαλή.", "Found a bug?": "Βρήκατε κάποιο πρόβλημα;", "Guest users can't upload files. Please register to upload.": "Οι επισκέπτες δεν μπορούν να ανεβάσουν αρχεία. Παρακαλώ εγγραφείτε πρώτα.", "had": "είχε", - "Hangup": "Κλείσε", + "Hangup": "Κλείσιμο", "Historical": "Ιστορικό", "Homeserver is": "Ο διακομιστής είναι", - "Identity Server is": "Διακομιστής Ταυτοποίησης", - "I have verified my email address": "Έχω επαληθεύσει το email μου", + "Identity Server is": "Διακομιστής ταυτοποίησης", + "I have verified my email address": "Έχω επαληθεύσει την διεύθυνση ηλ. αλληλογραφίας", "Import": "Εισαγωγή", "Import E2E room keys": "Εισαγωγή κλειδιών κρυπτογράφησης", "Incorrect username and/or password.": "Λανθασμένο όνομα χρήστη και/ή κωδικός.", "Incorrect verification code": "Λανθασμένος κωδικός επαλήθευσης", "Interface Language": "Γλώσσα διεπαφής", - "Invalid Email Address": "Μη έγκυρο email", - "Invite new room members": "Προσκάλεσε νέα μέλη", + "Invalid Email Address": "Άκυρη διεύθυνση ηλ. αλληλογραφίας", + "Invite new room members": "Προσκαλέστε νέα μέλη", "Invited": "Προσκλήθηκε", "Invites": "Προσκλήσεις", "is a": "είναι ένα", - "%(displayName)s is typing": "ο χρήστης %(displayName)s γράφει", - "Sign in with": "Συνδέσου με", - "joined and left": "μπήκε και βγήκε", - "joined": "μπήκε", + "%(displayName)s is typing": "Ο χρήστης %(displayName)s γράφει", + "Sign in with": "Συνδεθείτε με", + "joined and left": "συνδέθηκε και έφυγε", + "joined": "συνδέθηκε", "%(targetName)s joined the room.": "ο χρήστης %(targetName)s συνδέθηκε στο δωμάτιο.", - "Jump to first unread message.": "Πήγαινε στο πρώτο μη αναγνωσμένο μήνυμα.", + "Jump to first unread message.": "Πηγαίνετε στο πρώτο μη αναγνωσμένο μήνυμα.", "%(senderName)s kicked %(targetName)s.": "Ο χρήστης %(senderName)s έδιωξε τον χρήστη %(targetName)s.", "Kick": "Διώξε", "Kicks user with given id": "Διώχνει χρήστες με το συγκεκριμένο id", "Labs": "Πειραματικά", - "Leave room": "Φύγε από το δωμάτιο", + "Leave room": "Αποχώρηση από το δωμάτιο", "left and rejoined": "έφυγε και ξανασυνδέθηκε", "left": "έφυγε", "%(targetName)s left the room.": "Ο χρήστης %(targetName)s έφυγε από το δωμάτιο.", @@ -300,7 +300,7 @@ "List this room in %(domain)s's room directory?": "Να εμφανίζεται το δωμάτιο στο γενικό ευρετήριο του διακομιστή %(domain)s;", "Local addresses for this room:": "Τοπική διεύθυνση για το δωμάτιο:", "Logged in as:": "Συνδέθηκες ως:", - "Login as guest": "Συνδέσου ως επισκέπτης", + "Login as guest": "Σύνδεση ως επισκέπτης", "Logout": "Αποσύνδεση", "Low priority": "Χαμηλής προτεραιότητας", "matrix-react-sdk version:": "έκδοση matrix-react-sdk:", @@ -331,16 +331,16 @@ "No more results": "Δεν υπάρχουν άλλα αποτελέσματα", "No results": "Κανένα αποτέλεσμα", "OK": "Εντάξει", - "olm version:": "έκδοση olm:", + "olm version:": "Έκδοση olm:", "Password": "Κωδικός πρόσβασης", "Password:": "Κωδικός πρόσβασης:", "Passwords can't be empty": "Οι κωδικοί πρόσβασης δεν μπορούν να είναι κενοί", "People": "Άτομα", "Phone": "Τηλέφωνο", "Register": "Εγγραφή", - "riot-web version:": "έκδοση riot-web:", - "Room Colour": "Χρώμα Δωματίου", - "Room name (optional)": "Όνομα Δωματίου (προαιρετικό)", + "riot-web version:": "Έκδοση riot-web:", + "Room Colour": "Χρώμα δωματίου", + "Room name (optional)": "Όνομα δωματίου (προαιρετικό)", "Rooms": "Δωμάτια", "Save": "Αποθήκευση", "Search failed": "Η αναζήτηση απέτυχε", @@ -375,7 +375,7 @@ "italic": "πλάγια", "underline": "υπογράμμιση", "code": "κώδικας", - "quote": "αναφορά", + "quote": "παράθεση", "%(oneUser)sleft %(repeats)s times": "%(oneUser)s έφυγε %(repeats)s φορές", "%(severalUsers)sleft": "%(severalUsers)s έφυγαν", "%(oneUser)sleft": "%(oneUser)s έφυγε", @@ -403,7 +403,7 @@ "Click here to join the discussion!": "Κλικ εδώ για να συμμετάσχετε στην συζήτηση!", "Click to mute audio": "Κάντε κλικ για σίγαση του ήχου", "Click to mute video": "Κάντε κλικ για σίγαση του βίντεο", - "click to reveal": "κάντε κλικ για εμφάνισηχ", + "click to reveal": "κάντε κλικ για εμφάνιση", "Click to unmute video": "Κάντε κλικ για άρση σίγασης του βίντεο", "Click to unmute audio": "Κάντε κλικ για άρση σίγασης του ήχου", "%(count)s new messages.one": "%(count)s νέο μήνυμα", @@ -646,5 +646,148 @@ "%(senderDisplayName)s changed the avatar for %(roomName)s": "Ο %(senderDisplayName)s άλλαξε την προσωπική εικόνα του %(roomName)s.", "Username available": "Διαθέσιμο όνομα χρήστη", "Username not available": "Μη διαθέσιμο όνομα χρήστη", - "Something went wrong!": "Κάτι πήγε στραβά!" + "Something went wrong!": "Κάτι πήγε στραβά!", + "Could not connect to the integration server": "Αδυναμία σύνδεσης στον διακομιστή ενσωμάτωσης", + "Create a new chat or reuse an existing one": "Δημιουργία νέας συνομιλίας ή επαναχρησιμοποίηση μιας υπάρχουσας", + "Don't send typing notifications": "Να μη γίνετε αποστολή ειδοποιήσεων πληκτρολόγησης", + "Encrypted by a verified device": "Κρυπτογραφημένο από μια επιβεβαιωμένη συσκευή", + "Encrypted by an unverified device": "Κρυπτογραφημένο από μια ανεπιβεβαίωτη συσκευή", + "Error: Problem communicating with the given homeserver.": "Σφάλμα: πρόβλημα κατά την επικοινωνία με τον ορισμένο οικιακό διακομιστή.", + "Failed to ban user": "Δεν ήταν δυνατός ο αποκλεισμός του χρήστη", + "Failed to change power level": "Δεν ήταν δυνατή η αλλαγή του επιπέδου δύναμης", + "Failed to fetch avatar URL": "Δεν ήταν δυνατή η ανάκτηση της διεύθυνσης εικόνας", + "Failed to lookup current room": "Δεν ήταν δυνατή η εύρεση του τρέχοντος δωματίου", + "Failed to unban": "Δεν ήταν δυνατή η άρση του αποκλεισμού", + "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s από %(fromPowerLevel)s σε %(toPowerLevel)s", + "Guest access is disabled on this Home Server.": "Έχει απενεργοποιηθεί η πρόσβαση στους επισκέπτες σε αυτόν τον διακομιστή.", + "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 use labs features. Please register.": "Οι επισκέπτες δεν μπορούν να χρησιμοποιήσουν τα πειραματικά χαρακτηριστικά. Παρακαλούμε εγγραφείτε.", + "Guests cannot join this room even if explicitly invited.": "Οι επισκέπτες δεν μπορούν να συνδεθούν στο δωμάτιο ακόμη και αν έχουν καλεστεί.", + "Hide Text Formatting Toolbar": "Απόκρυψη εργαλειοθήκης μορφοποίησης κειμένου", + "Incoming call from %(name)s": "Εισερχόμενη κλήση από %(name)s", + "Incoming video call from %(name)s": "Εισερχόμενη βιντεοκλήση από %(name)s", + "Incoming voice call from %(name)s": "Εισερχόμενη φωνητική κλήση από %(name)s", + "Invalid alias format": "Μη έγκυρη μορφή ψευδώνυμου", + "Invalid address format": "Μη έγκυρη μορφή διεύθυνσης", + "Invalid file%(extra)s": "Μη έγκυρο αρχείο %(extra)s", + "%(senderName)s invited %(targetName)s.": "Ο %(senderName)s προσκάλεσε τον %(targetName)s.", + "Invites user with given id to current room": "Προσκαλεί τον χρήστη με το δοσμένο αναγνωριστικό στο τρέχον δωμάτιο", + "'%(alias)s' is not a valid format for an address": "Το '%(alias)s' δεν είναι μια έγκυρη μορφή διεύθυνσης", + "'%(alias)s' is not a valid format for an alias": "Το '%(alias)s' δεν είναι μια έγκυρη μορφή ψευδώνυμου", + "%(senderName)s made future room history visible to": "Ο %(senderName)s έκανε το μελλοντικό ιστορικό του δωματίου δημόσιο", + "Missing user_id in request": "Λείπει το user_id στο αίτημα", + "Mobile phone number (optional)": "Αριθμός κινητού τηλεφώνου (προαιρετικό)", + "Must be viewing a room": "Πρέπει να βλέπετε ένα δωμάτιο", + "Never send encrypted messages to unverified devices from this device": "Να μη γίνει ποτέ αποστολή κρυπτογραφημένων μηνυμάτων σε ανεπιβεβαίωτες συσκευές από αυτή τη συσκευή", + "Never send encrypted messages to unverified devices in this room": "Να μη γίνει ποτέ αποστολή κρυπτογραφημένων μηνυμάτων σε ανεπιβεβαίωτες συσκευές σε αυτό το δωμάτιο", + "Never send encrypted messages to unverified devices in this room from this device": "Να μη γίνει ποτέ αποστολή κρυπτογραφημένων μηνυμάτων σε ανεπιβεβαίωτες συσκευές, σε αυτό το δωμάτιο, από αυτή τη συσκευή", + "New Composer & Autocomplete": "Νέος συνθέτης και αυτόματη συμπλήρωση", + "not set": "δεν έχει οριστεί", + "not specified": "μη καθορισμένο", + "NOT verified": "ΧΩΡΙΣ επαλήθευση", + "No devices with registered encryption keys": "Καθόλου συσκευές με εγγεγραμένα κλειδιά κρυπτογράφησης", + "No display name": "Χωρίς όνομα εμφάνισης", + "No users have specific privileges in this room": "Κανένας χρήστης δεν έχει συγκεκριμένα δικαιώματα σε αυτό το δωμάτιο", + "Once encryption is enabled for a room it cannot be turned off again (for now)": "Μόλις ενεργοποιηθεί η κρυπτογράφηση για ένα δωμάτιο, δεν μπορεί να απενεργοποιηθεί ξανά (για τώρα)", + "Once you've followed the link it contains, click below": "Μόλις ακολουθήσετε τον σύνδεσμο που περιέχει, κάντε κλικ παρακάτω", + "Only people who have been invited": "Μόνο άτομα που έχουν προσκληθεί", + "Otherwise, click here to send a bug report.": "Διαφορετικά, κάντε κλικ εδώ για να αποστείλετε μια αναφορά σφάλματος.", + "%(senderName)s placed a %(callType)s call.": "Ο %(senderName)s πραγματοποίησε μια %(callType)s κλήση.", + "Please check your email and click on the link it contains. Once this is done, click continue.": "Παρακαλούμε ελέγξτε την ηλεκτρονική σας αλληλογραφία και κάντε κλικ στον σύνδεσμο που περιέχει. Μόλις γίνει αυτό, κάντε κλίκ στο συνέχεια.", + "Press": "Πατήστε", + "Refer a friend to Riot:": "Πείτε για το Riot σε έναν φίλο σας:", + "Rejoin": "Επανασύνδεση", + "%(senderName)s removed their profile picture.": "Ο %(senderName)s αφαίρεσε τη φωτογραφία του προφίλ του.", + "%(senderName)s requested a VoIP conference.": "Ο %(senderName)s αιτήθηκε μια διάσκεψη VoIP.", + "Riot does not have permission to send you notifications - please check your browser settings": "Το Riot δεν έχει δικαιώματα για αποστολή ειδοποιήσεων - παρακαλούμε ελέγξτε τις ρυθμίσεις του περιηγητή σας", + "Riot was not given permission to send notifications - please try again": "Δεν δόθηκαν δικαιώματα στο Riot να αποστείλει ειδοποιήσεις - παρακαλούμε προσπαθήστε ξανά", + "Room contains unknown devices": "Το δωμάτιο περιέχει άγνωστες συσκευές", + "%(roomName)s is not accessible at this time.": "Το %(roomName)s δεν είναι προσβάσιμο αυτή τη στιγμή.", + "Scroll to bottom of page": "Μετάβαση στο τέλος της σελίδας", + "Scroll to unread messages": "Μεταβείτε στα μη αναγνωσμένα μηνύματα", + "Sender device information": "Πληροφορίες συσκευής αποστολέα", + "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.": "Ο διακομιστής μπορεί να είναι μη διαθέσιμος, υπερφορτωμένος, ή κάτι άλλο να πήγε στραβά.", + "Show panel": "Εμφάνιση καρτέλας", + "Show Text Formatting Toolbar": "Εμφάνιση εργαλειοθήκης μορφοποίησης κειμένου", + "Some of your messages have not been sent.": "Μερικά από τα μηνύματα σας δεν έχουν αποσταλεί.", + "This room is not recognised.": "Αυτό το δωμάτιο δεν αναγνωρίζεται.", + "to favourite": "στα αγαπημένα", + "To kick users": "Για να διώξετε χρήστες", + "to make a room or": "για δημιουργία ενός δωματίου ή", + "to start a chat with someone": "για να ξεκινήσετε μια συνομιλία με κάποιον", + "Unable to capture screen": "Αδυναμία σύλληψης οθόνης", + "Unknown (user, device) pair:": "Άγνωστο ζεύγος (χρήστη, συσκευής):", + "Uploading %(filename)s and %(count)s others.zero": "Γίνεται αποστολή του %(filename)s", + "Uploading %(filename)s and %(count)s others.other": "Γίνεται αποστολή του %(filename)s και %(count)s υπολοίπων", + "uploaded a file": "ανέβασε ένα αρχείο", + "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (δύναμη %(powerLevelNumber)s)", + "Verification Pending": "Εκκρεμεί επιβεβαίωση", + "Verification": "Επιβεβαίωση", + "verified": "επαληθεύτηκε", + "Verified": "Επαληθεύτηκε", + "Verified key": "Επιβεβαιωμένο κλειδί", + "VoIP conference finished.": "Ολοκληρώθηκε η διάσκεψη VoIP.", + "VoIP conference started.": "Ξεκίνησησε η διάσκεψη VoIP.", + "VoIP is unsupported": "Δεν υποστηρίζεται το VoIP", + "(warning: cannot be disabled again!)": "(προειδοποίηση: δεν μπορεί να απενεργοποιηθεί ξανά)", + "WARNING: Device already verified, but keys do NOT MATCH!": "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Η συσκευή έχει επαληθευτεί, αλλά τα κλειδιά ΔΕΝ ΤΑΙΡΙΑΖΟΥΝ!", + "Who can access this room?": "Ποιος μπορεί να προσπελάσει αυτό το δωμάτιο;", + "Who can read history?": "Ποιος μπορεί να διαβάσει το ιστορικό;", + "Who would you like to add to this room?": "Ποιον θέλετε να προσθέσετε σε αυτό το δωμάτιο;", + "%(senderName)s withdrew %(targetName)s's invitation.": "Ο %(senderName)s ανακάλεσε την πρόσκληση του %(targetName)s.", + "You're not in any rooms yet! Press": "Δεν είστε ακόμη σε κάνενα δωμάτιο! Πατήστε", + "You cannot place a call with yourself.": "Δεν μπορείτε να καλέσετε τον ευατό σας.", + "You cannot place VoIP calls in this browser.": "Δεν μπορείτε να πραγματοποιήσετε κλήσεις VoIP σε αυτόν τον περιηγητή.", + "You do not have permission to post to this room": "Δεν έχετε δικαιώματα για να δημοσιεύσετε σε αυτό το δωμάτιο", + "You have been banned from %(roomName)s by %(userName)s.": "Έχετε αποκλειστεί από το δωμάτιο %(roomName)s από τον %(userName)s.", + "You have been invited to join this room by %(inviterName)s": "Έχετε προσκληθεί να συνδεθείτε στο δωμάτιο από τον %(inviterName)s", + "You seem to be in a call, are you sure you want to quit?": "Φαίνεται ότι είστε σε μια κλήση, είστε βέβαιοι ότι θέλετε να αποχωρήσετε;", + "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s", + "This doesn't look like a valid phone number.": "Δεν μοιάζει με έναν έγκυρο αριθμό τηλεφώνου.", + "Make this room private": "Κάντε το δωμάτιο ιδιωτικό", + "There are no visible files in this room": "Δεν υπάρχουν ορατά αρχεία σε αυτό το δωμάτιο", + "Connectivity to the server has been lost.": "Χάθηκε η συνδεσιμότητα στον διακομιστή.", + "%(severalUsers)sleft %(repeats)s times": "%(severalUsers)s έφυγαν %(repeats)s φορές", + "%(severalUsers)srejected their invitations %(repeats)s times": "Οι %(severalUsers)s απέρριψαν τις προσκλήσεις τους %(repeats)s φορές", + "%(oneUser)srejected their invitation %(repeats)s times": "Ο %(oneUser)s απέρριψε την πρόσκληση του %(repeats)s φορές", + "%(severalUsers)srejected their invitations": "Οι %(severalUsers)s απέρριψαν τις προσκλήσεις τους", + "%(oneUser)srejected their invitation": "Ο %(oneUser)s απέρριψε την πρόσκληση", + "were invited %(repeats)s times": "προσκλήθηκαν %(repeats)s φορές", + "was invited %(repeats)s times": "προσκλήθηκε %(repeats)s φορές", + "were banned %(repeats)s times": "αποκλείστηκαν %(repeats)s φορές", + "was banned %(repeats)s times": "αποκλείστηκε %(repeats)s φορές", + "were kicked %(repeats)s times": "διώχθηκαν %(repeats)s φορές", + "was kicked %(repeats)s times": "διώχθηκε %(repeats)s φορές", + "%(severalUsers)schanged their name %(repeats)s times": "%(severalUsers)s άλλαξαν το όνομα τους %(repeats)s φορές", + "%(oneUser)schanged their name %(repeats)s times": "Ο %(oneUser)s άλλαξε το όνομα του %(repeats)s φορές", + "%(severalUsers)schanged their name": "Οι %(severalUsers)s άλλαξαν το όνομα τους", + "%(oneUser)schanged their name": "Ο %(oneUser)s άλλαξε το όνομα του", + "%(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 άλλαξε την προσωπική του εικόνα", + "Please select the destination room for this message": "Παρακαλούμε επιλέξτε ένα δωμάτιο προορισμού για αυτό το μήνυμα", + "Desktop specific": "Μόνο για επιφάνεια εργασίας", + "Analytics": "Αναλυτικά στοιχεία", + "Opt out of analytics": "Αποκλείστε τα αναλυτικά στοιχεία", + "Riot collects anonymous analytics to allow us to improve the application.": "Το Riot συλλέγει ανώνυμα δεδομένα επιτρέποντας μας να βελτιώσουμε την εφαρμογή.", + "Failed to invite": "Δεν ήταν δυνατή η πρόσκληση", + "Failed to invite user": "Δεν ήταν δυνατή η πρόσκληση του χρήση", + "This action is irreversible.": "Αυτή η ενέργεια είναι μη αναστρέψιμη", + "In future this verification process will be more sophisticated.": "Στο μέλλον η διαδικασία επαλήθευσης θα είναι πιο εξελιγμένη.", + "I verify that the keys match": "Επιβεβαιώνω πως ταιριάζουν τα κλειδιά", + "\"%(RoomName)s\" contains devices that you haven't seen before.": "Το \"%(RoomName)s\" περιέχει συσκευές που δεν έχετε ξαναδεί.", + "This Home Server would like to make sure you are not a robot": "Ο διακομιστής θέλει να σιγουρευτεί ότι δεν είσαστε ρομπότ", + "Please check your email to continue registration.": "Παρακαλούμε ελέγξτε την ηλεκτρονική σας αλληλογραφία για να συνεχίσετε με την εγγραφή.", + "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Αν δεν ορίσετε μια διεύθυνση ηλεκτρονικής αλληλογραφίας, δεν θα θα μπορείτε να επαναφέρετε τον κωδικό πρόσβασης σας. Είστε σίγουροι;", + "You are registering with %(SelectedTeamName)s": "Εγγραφείτε με %(SelectedTeamName)s", + "Removed or unknown message type": "Αφαιρέθηκε ή άγνωστος τύπος μηνύματος", + "Disable URL previews by default for participants in this room": "Απενεργοποίηση της προεπισκόπησης συνδέσμων για όλους τους συμμετέχοντες στο δωμάτιο", + "Disable URL previews for this room (affects only you)": "Ενεργοποίηση της προεπισκόπησης συνδέσμων για αυτό το δωμάτιο (επηρεάζει μόνο εσάς)", + " (unsupported)": " (μη υποστηριζόμενο)", + "$senderDisplayName changed the room avatar to ": "Ο $senderDisplayName άλλαξε την εικόνα του δωματίου σε " } From 534f4116b53700db564eab44a412314cacd41d69 Mon Sep 17 00:00:00 2001 From: Tom Tryfonidis Date: Mon, 12 Jun 2017 12:05:16 +0000 Subject: [PATCH 022/120] Translated using Weblate (Greek) Currently translated at 93.7% (845 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/el/ --- src/i18n/strings/el.json | 171 ++++++++++++++++++++++++++------------- 1 file changed, 116 insertions(+), 55 deletions(-) diff --git a/src/i18n/strings/el.json b/src/i18n/strings/el.json index bc5d5ca6b5..2f1151e028 100644 --- a/src/i18n/strings/el.json +++ b/src/i18n/strings/el.json @@ -106,7 +106,7 @@ "es-uy": "Ισπανικά (Ουρουγουάη)", "es-ve": "Ισπανικά (Βενεζουέλα)", "et": "Εσθονικά", - "eu": "Βασκική (βασκική)", + "eu": "Βασκική (Βασκική)", "fa": "Φάρσι", "fi": "Φινλανδικά", "fo": "Φαρόε", @@ -185,21 +185,21 @@ "Blacklisted": "Στη μαύρη λίστα", "Can't load user settings": "Δεν είναι δυνατή η φόρτωση των ρυθμίσεων χρήστη", "Change Password": "Αλλαγή κωδικού πρόσβασης", - "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "Ο χρήστης %(senderName)s άλλαξε το όνομά του από %(oldDisplayName)s σε %(displayName)s.", - "%(senderName)s changed their profile picture.": "Ο χρήστης %(senderName)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\".", + "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "Ο %(senderName)s άλλαξε το όνομά του από %(oldDisplayName)s σε %(displayName)s.", + "%(senderName)s changed their profile picture.": "Ο %(senderName)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\".", "Clear Cache and Reload": "Καθάρισε την μνήμη και Ανανέωσε", "Clear Cache": "Καθάρισε την μνήμη", "Bans user with given id": "Αποκλεισμός χρήστη με το συγκεκριμένο αναγνωριστικό", - "%(senderDisplayName)s removed the room name.": "Ο χρήστης %(senderDisplayName)s διέγραψε το όνομα του δωματίου.", - "Changes your display nickname": "Αλλάζει το όνομα χρήστη", + "%(senderDisplayName)s removed the room name.": "Ο %(senderDisplayName)s διέγραψε το όνομα του δωματίου.", + "Changes your display nickname": "Αλλάζει το ψευδώνυμο χρήστη", "Click here": "Κάνε κλικ εδώ", "Drop here %(toAction)s": "Απόθεση εδώ %(toAction)s", "Conference call failed.": "Η κλήση συνδιάσκεψης απέτυχε.", "powered by Matrix": "βασισμένο στο πρωτόκολλο Matrix", "Confirm password": "Επιβεβαίωση κωδικού πρόσβασης", - "Confirm your new password": "Επιβεβαίωση του νέου κωδικού", + "Confirm your new password": "Επιβεβαίωση του νέου κωδικού πρόσβασης", "Continue": "Συνέχεια", "Create an account": "Δημιουργία λογαριασμού", "Create Room": "Δημιουργία δωματίου", @@ -208,18 +208,18 @@ "Curve25519 identity key": "Κλειδί ταυτότητας Curve25519", "Custom level": "Προσαρμοσμένο επίπεδο", "/ddg is not a command": "/ddg δεν αναγνωρίζεται ως εντολή", - "Deactivate Account": "Απενεργοποίηση Λογαριασμού", + "Deactivate Account": "Απενεργοποίηση λογαριασμού", "Deactivate my account": "Απενεργοποίηση του λογαριασμού μου", "decline": "απόρριψη", - "Decrypt %(text)s": "Αποκρυπτογράφησε %(text)s", + "Decrypt %(text)s": "Αποκρυπτογράφηση %(text)s", "Decryption error": "Σφάλμα αποκρυπτογράφησης", "(default: %(userName)s)": "(προεπιλογή: %(userName)s)", "Delete": "Διαγραφή", "Default": "Προεπιλογή", "Device already verified!": "Η συσκευή έχει ήδη επαληθευτεί!", - "Device ID": "ID Συσκευής", - "Device ID:": "ID Συσκευής:", - "device id: ": "id συσκευής: ", + "Device ID": "Αναγνωριστικό συσκευής", + "Device ID:": "Αναγνωριστικό συσκευής:", + "device id: ": "αναγνωριστικό συσκευής: ", "Device key:": "Κλειδί συσκευής:", "Devices": "Συσκευές", "Direct Chat": "Απευθείας συνομιλία", @@ -240,10 +240,10 @@ "%(senderName)s ended the call.": "%(senderName)s τερμάτισε την κλήση.", "End-to-end encryption information": "Πληροφορίες σχετικά με τη κρυπτογράφηση από άκρο σε άκρο (End-to-end encryption)", "Error decrypting attachment": "Σφάλμα κατά την αποκρυπτογράφηση της επισύναψης", - "Event information": "Πληροφορίες μηνύματος", + "Event information": "Πληροφορίες συμβάντος", "Existing Call": "Υπάρχουσα κλήση", "Export": "Εξαγωγή", - "Export E2E room keys": "Εξαγωγή κλειδιών κρυπτογραφίας για το δωμάτιο", + "Export E2E room keys": "Εξαγωγή κλειδιών κρυπτογράφησης για το δωμάτιο", "Failed to change password. Is your password correct?": "Δεν ήταν δυνατή η αλλαγή του κωδικού πρόσβασης. Είναι σωστός ο κωδικός πρόσβασης;", "Failed to delete device": "Δεν ήταν δυνατή η διαγραφή της συσκευής", "Failed to join room": "Δεν ήταν δυνατή η σύνδεση στο δωμάτιο", @@ -253,15 +253,15 @@ "Failed to reject invite": "Δεν ήταν δυνατή η απόρριψη της πρόσκλησης", "Failed to reject invitation": "Δεν ήταν δυνατή η απόρριψη της πρόσκλησης", "Failed to save settings": "Δεν ήταν δυνατή η αποθήκευση των ρυθμίσεων", - "Failed to send email": "Δεν ήταν δυνατή η αποστολή email", + "Failed to send email": "Δεν ήταν δυνατή η αποστολή ηλ. αλληλογραφίας", "Failed to verify email address: make sure you clicked the link in the email": "Δεν ήταν δυνατή η επαλήθευση του email: βεβαιωθείτε οτι κάνατε κλικ στον σύνδεσμο που σας στάλθηκε", "Favourite": "Αγαπημένο", "favourite": "αγαπημένο", "Favourites": "Αγαπημένα", "Fill screen": "Γέμισε την οθόνη", - "Filter room members": "Φίλτραρε τα μέλη", - "Forget room": "Διέγραψε το δωμάτιο", - "Forgot your password?": "Ξεχάσατε τoν κωδικό πρόσβασης;", + "Filter room members": "Φιλτράρισμα μελών", + "Forget room": "Αγνόηση δωματίου", + "Forgot your password?": "Ξεχάσατε τoν κωδικό πρόσβασης σας;", "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.": "Για λόγους ασφαλείας, τα κλειδιά κρυπτογράφησης θα διαγράφονται από τον περιηγητή κατά την αποσύνδεση σας. Εάν επιθυμείτε να αποκρυπτογραφήσετε τις συνομιλίες σας στο μέλλον, εξάγετε τα κλειδιά σας και κρατήστε τα ασφαλή.", "Found a bug?": "Βρήκατε κάποιο πρόβλημα;", @@ -270,14 +270,14 @@ "Hangup": "Κλείσιμο", "Historical": "Ιστορικό", "Homeserver is": "Ο διακομιστής είναι", - "Identity Server is": "Διακομιστής ταυτοποίησης", + "Identity Server is": "Ο διακομιστής ταυτοποίησης είναι", "I have verified my email address": "Έχω επαληθεύσει την διεύθυνση ηλ. αλληλογραφίας", "Import": "Εισαγωγή", - "Import E2E room keys": "Εισαγωγή κλειδιών κρυπτογράφησης", + "Import E2E room keys": "Εισαγωγή κλειδιών E2E", "Incorrect username and/or password.": "Λανθασμένο όνομα χρήστη και/ή κωδικός.", "Incorrect verification code": "Λανθασμένος κωδικός επαλήθευσης", "Interface Language": "Γλώσσα διεπαφής", - "Invalid Email Address": "Άκυρη διεύθυνση ηλ. αλληλογραφίας", + "Invalid Email Address": "Μη έγκυρη διεύθυνση ηλ. αλληλογραφίας", "Invite new room members": "Προσκαλέστε νέα μέλη", "Invited": "Προσκλήθηκε", "Invites": "Προσκλήσεις", @@ -288,7 +288,7 @@ "joined": "συνδέθηκε", "%(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.", "Kick": "Διώξε", "Kicks user with given id": "Διώχνει χρήστες με το συγκεκριμένο id", "Labs": "Πειραματικά", @@ -315,26 +315,26 @@ "Enable encryption": "Ενεργοποίηση κρυπτογραφίας", "Enter Code": "Εισαγωγή κωδικού πρόσβασης", "Failed to send request.": "Δεν ήταν δυνατή η αποστολή αιτήματος.", - "Failed to upload file": "Δεν ήταν δυνατό η αποστολή του αρχείου", + "Failed to upload file": "Δεν ήταν δυνατή η αποστολή του αρχείου", "Failure to create room": "Δεν ήταν δυνατή η δημιουργία δωματίου", - "Join Room": "Συνδέσου", + "Join Room": "Είσοδος σε δωμάτιο", "Moderator": "Συντονιστής", "my Matrix ID": "το Matrix ID μου", "Name": "Όνομα", "New address (e.g. #foo:%(localDomain)s)": "Νέα διεύθυνση (e.g. #όνομα:%(localDomain)s)", "New password": "Νέος κωδικός πρόσβασης", - "New passwords don't match": "Οι νέοι κωδικοί είναι διαφορετικοί", - "New passwords must match each other.": "Οι νέοι κωδικόι πρέπει να ταιριάζουν.", + "New passwords don't match": "Οι νέοι κωδικοί πρόσβασης είναι διαφορετικοί", + "New passwords must match each other.": "Οι νέοι κωδικοί πρόσβασης πρέπει να ταιριάζουν.", "none": "κανένα", - "(not supported by this browser)": "(δεν υποστηρίζεται από τον browser)", + "(not supported by this browser)": "(δεν υποστηρίζεται από τον περιηγητή)", "": "<δεν υποστηρίζεται>", - "No more results": "Δεν υπάρχουν άλλα αποτελέσματα", + "No more results": "Δεν υπάρχουν αποτελέσματα", "No results": "Κανένα αποτέλεσμα", "OK": "Εντάξει", "olm version:": "Έκδοση olm:", "Password": "Κωδικός πρόσβασης", "Password:": "Κωδικός πρόσβασης:", - "Passwords can't be empty": "Οι κωδικοί πρόσβασης δεν μπορούν να είναι κενοί", + "Passwords can't be empty": "Οι κωδικοί πρόσβασης δεν γίνετε να είναι κενοί", "People": "Άτομα", "Phone": "Τηλέφωνο", "Register": "Εγγραφή", @@ -356,8 +356,8 @@ "since they were invited": "από τη στιγμή που προσκλήθηκαν", "Someone": "Κάποιος", "Start a chat": "Έναρξη συνομιλίας", - "This email address is already in use": "Το email χρησιμοποιείται", - "This email address was not found": "Η διεύθηνση email δεν βρέθηκε", + "This email address is already in use": "Η διεύθυνση ηλ. αλληλογραφίας χρησιμοποιείται ήδη", + "This email address was not found": "Δεν βρέθηκε η διεύθυνση ηλ. αλληλογραφίας", "Success": "Επιτυχία", "Start Chat": "Συνομιλία", "Cancel": "Ακύρωση", @@ -417,8 +417,8 @@ "Encryption is enabled in this room": "Η κρυπτογράφηση είναι ενεργοποιημένη σε αυτό το δωμάτιο", "Encryption is not enabled in this room": "Η κρυπτογράφηση είναι απενεργοποιημένη σε αυτό το δωμάτιο", "Enter passphrase": "Εισαγωγή συνθηματικού", - "Failed to set avatar.": "Δεν ήταν δυνατός ο ορισμός της προσωπικής εικόνας", - "Failed to set display name": "Δεν ήταν δυνατός ο ορισμός του ονόματος εμφάνισης", + "Failed to set avatar.": "Δεν ήταν δυνατό ο ορισμός της προσωπικής εικόνας.", + "Failed to set display name": "Δεν ήταν δυνατό ο ορισμός του ονόματος εμφάνισης", "Failed to set up conference call": "Δεν ήταν δυνατή η ρύθμιση κλήσης συνδιάσκεψης", "Failed to toggle moderator status": "Δεν ήταν δυνατή η εναλλαγή κατάστασης του συντονιστή", "Failed to upload profile picture!": "Δεν ήταν δυνατή η αποστολή της εικόνας προφίλ!", @@ -431,7 +431,7 @@ "Markdown is enabled": "Το Markdown είναι ενεργοποιημένο", "Missing room_id in request": "Λείπει το room_id στο αίτημα", "Permissions": "Δικαιώματα", - "Power level must be positive integer.": "Το επίπεδο δύναμης πρέπει να είναι ένας θετικός ακέραιος", + "Power level must be positive integer.": "Το επίπεδο δύναμης πρέπει να είναι ένας θετικός ακέραιος.", "Privacy warning": "Προειδοποίηση ιδιωτικότητας", "Private Chat": "Προσωπική συνομιλία", "Privileged Users": "Προνομιούχοι χρήστες", @@ -492,7 +492,7 @@ "Unable to add email address": "Αδυναμία προσθήκης διεύθυνσης ηλ. αλληλογραφίας", "Unable to remove contact information": "Αδυναμία αφαίρεσης πληροφοριών επαφής", "Unable to restore previous session": "Αδυναμία επαναφοράς της προηγούμενης συνεδρίας", - "Unable to verify email address.": "Αδυναμία επιβεβαίωσης διεύθυνσης ηλ. αλληλογραφίας", + "Unable to verify email address.": "Αδυναμία επιβεβαίωσης διεύθυνσης ηλ. αλληλογραφίας.", "Unban": "Άρση αποκλεισμού", "%(senderName)s unbanned %(targetName)s.": "Ο χρήστης %(senderName)s έδιωξε τον χρήστη %(targetName)s.", "Unable to enable Notifications": "Αδυναμία ενεργοποίησης των ειδοποιήσεων", @@ -507,8 +507,8 @@ "unknown": "άγνωστο", "Unmute": "Άρση σίγασης", "Unnamed Room": "Ανώνυμο δωμάτιο", - "Unrecognised command:": "Μη αναγνωρίσιμη εντολή", - "Unrecognised room alias:": "Μη αναγνωρίσιμο ψευδώνυμο", + "Unrecognised command:": "Μη αναγνωρίσιμη εντολή:", + "Unrecognised room alias:": "Μη αναγνωρίσιμο ψευδώνυμο:", "Unverified": "Ανεπιβεβαίωτο", "Upload avatar": "Αποστολή προσωπικής εικόνας", "Upload Failed": "Απέτυχε η αποστολή", @@ -558,12 +558,12 @@ "%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s", "Set a display name:": "Ορισμός ονόματος εμφάνισης:", "Set a Display Name": "Ορισμός ονόματος εμφάνισης", - "Upload an avatar:": "Αποστολή προσωπικής εικόνας", + "Upload an avatar:": "Αποστολή προσωπικής εικόνας:", "This server does not support authentication with a phone number.": "Αυτός ο διακομιστής δεν υποστηρίζει πιστοποίηση με αριθμό τηλεφώνου.", "Missing password.": "Λείπει ο κωδικός πρόσβασης.", "Passwords don't match.": "Δεν ταιριάζουν οι κωδικοί πρόσβασης.", "This doesn't look like a valid email address.": "Δεν μοιάζει με μια έγκυρη διεύθυνση ηλ. αλληλογραφίας.", - "An unknown error occurred.": "Προέκυψε ένα άγνωστο σφάλμα", + "An unknown error occurred.": "Προέκυψε ένα άγνωστο σφάλμα.", "I already have an account": "Έχω ήδη λογαριασμό", "An error occurred: %(error_string)s": "Προέκυψε ένα σφάλμα: %(error_string)s", "Topic": "Θέμα", @@ -599,7 +599,7 @@ "Guest users can't invite users. Please register.": "Οι επισκέπτες δεν έχουν τη δυνατότητα να προσκαλέσουν άλλους χρήστες. Παρακαλούμε εγγραφείτε πρώτα.", "Confirm Removal": "Επιβεβαίωση αφαίρεσης", "Unknown error": "Άγνωστο σφάλμα", - "Incorrect password": "Λάθος κωδικός πρόσβασης", + "Incorrect password": "Λανθασμένος κωδικός πρόσβασης", "To continue, please enter your password.": "Για να συνεχίσετε, παρακαλούμε πληκτρολογήστε τον κωδικό πρόσβασής σας.", "Device name": "Όνομα συσκευής", "Device Name": "Όνομα συσκευής", @@ -642,8 +642,8 @@ "Start chatting": "Έναρξη συνομιλίας", "Start Chatting": "Έναρξη συνομιλίας", "Click on the button below to start chatting!": "Κάντε κλικ στο κουμπί παρακάτω για να ξεκινήσετε μια συνομιλία!", - "%(senderDisplayName)s removed the room avatar.": "Ο %(senderDisplayName)s διέγραψε την προσωπική εικόνα του δωματίου", - "%(senderDisplayName)s changed the avatar for %(roomName)s": "Ο %(senderDisplayName)s άλλαξε την προσωπική εικόνα του %(roomName)s.", + "%(senderDisplayName)s removed the room avatar.": "Ο %(senderDisplayName)s διέγραψε την προσωπική εικόνα του δωματίου.", + "%(senderDisplayName)s changed the avatar for %(roomName)s": "Ο %(senderDisplayName)s άλλαξε την προσωπική εικόνα του %(roomName)s", "Username available": "Διαθέσιμο όνομα χρήστη", "Username not available": "Μη διαθέσιμο όνομα χρήστη", "Something went wrong!": "Κάτι πήγε στραβά!", @@ -652,8 +652,8 @@ "Don't send typing notifications": "Να μη γίνετε αποστολή ειδοποιήσεων πληκτρολόγησης", "Encrypted by a verified device": "Κρυπτογραφημένο από μια επιβεβαιωμένη συσκευή", "Encrypted by an unverified device": "Κρυπτογραφημένο από μια ανεπιβεβαίωτη συσκευή", - "Error: Problem communicating with the given homeserver.": "Σφάλμα: πρόβλημα κατά την επικοινωνία με τον ορισμένο οικιακό διακομιστή.", - "Failed to ban user": "Δεν ήταν δυνατός ο αποκλεισμός του χρήστη", + "Error: Problem communicating with the given homeserver.": "Σφάλμα: πρόβλημα κατά την επικοινωνία με τον ορισμένο διακομιστή.", + "Failed to ban user": "Δεν ήταν δυνατό ο αποκλεισμός του χρήστη", "Failed to change power level": "Δεν ήταν δυνατή η αλλαγή του επιπέδου δύναμης", "Failed to fetch avatar URL": "Δεν ήταν δυνατή η ανάκτηση της διεύθυνσης εικόνας", "Failed to lookup current room": "Δεν ήταν δυνατή η εύρεση του τρέχοντος δωματίου", @@ -687,19 +687,19 @@ "not specified": "μη καθορισμένο", "NOT verified": "ΧΩΡΙΣ επαλήθευση", "No devices with registered encryption keys": "Καθόλου συσκευές με εγγεγραμένα κλειδιά κρυπτογράφησης", - "No display name": "Χωρίς όνομα εμφάνισης", + "No display name": "Χωρίς όνομα", "No users have specific privileges in this room": "Κανένας χρήστης δεν έχει συγκεκριμένα δικαιώματα σε αυτό το δωμάτιο", "Once encryption is enabled for a room it cannot be turned off again (for now)": "Μόλις ενεργοποιηθεί η κρυπτογράφηση για ένα δωμάτιο, δεν μπορεί να απενεργοποιηθεί ξανά (για τώρα)", "Once you've followed the link it contains, click below": "Μόλις ακολουθήσετε τον σύνδεσμο που περιέχει, κάντε κλικ παρακάτω", "Only people who have been invited": "Μόνο άτομα που έχουν προσκληθεί", "Otherwise, click here to send a bug report.": "Διαφορετικά, κάντε κλικ εδώ για να αποστείλετε μια αναφορά σφάλματος.", "%(senderName)s placed a %(callType)s call.": "Ο %(senderName)s πραγματοποίησε μια %(callType)s κλήση.", - "Please check your email and click on the link it contains. Once this is done, click continue.": "Παρακαλούμε ελέγξτε την ηλεκτρονική σας αλληλογραφία και κάντε κλικ στον σύνδεσμο που περιέχει. Μόλις γίνει αυτό, κάντε κλίκ στο συνέχεια.", + "Please check your email and click on the link it contains. Once this is done, click continue.": "Παρακαλούμε ελέγξτε την ηλεκτρονική σας αλληλογραφία και κάντε κλικ στον σύνδεσμο που περιέχει. Μόλις γίνει αυτό, κάντε κλίκ στο κουμπί συνέχεια.", "Press": "Πατήστε", "Refer a friend to Riot:": "Πείτε για το Riot σε έναν φίλο σας:", "Rejoin": "Επανασύνδεση", "%(senderName)s removed their profile picture.": "Ο %(senderName)s αφαίρεσε τη φωτογραφία του προφίλ του.", - "%(senderName)s requested a VoIP conference.": "Ο %(senderName)s αιτήθηκε μια διάσκεψη VoIP.", + "%(senderName)s requested a VoIP conference.": "Ο %(senderName)s αιτήθηκε μια συνδιάσκεψη VoIP.", "Riot does not have permission to send you notifications - please check your browser settings": "Το Riot δεν έχει δικαιώματα για αποστολή ειδοποιήσεων - παρακαλούμε ελέγξτε τις ρυθμίσεις του περιηγητή σας", "Riot was not given permission to send notifications - please try again": "Δεν δόθηκαν δικαιώματα στο Riot να αποστείλει ειδοποιήσεις - παρακαλούμε προσπαθήστε ξανά", "Room contains unknown devices": "Το δωμάτιο περιέχει άγνωστες συσκευές", @@ -712,7 +712,7 @@ "Server may be unavailable, overloaded, or you hit a bug.": "Ο διακομιστής μπορεί να είναι μη διαθέσιμος, υπερφορτωμένος, ή να πέσατε σε ένα σφάλμα.", "Server unavailable, overloaded, or something else went wrong.": "Ο διακομιστής μπορεί να είναι μη διαθέσιμος, υπερφορτωμένος, ή κάτι άλλο να πήγε στραβά.", "Show panel": "Εμφάνιση καρτέλας", - "Show Text Formatting Toolbar": "Εμφάνιση εργαλειοθήκης μορφοποίησης κειμένου", + "Show Text Formatting Toolbar": "Εμφάνιση της εργαλειοθήκης μορφοποίησης κειμένου", "Some of your messages have not been sent.": "Μερικά από τα μηνύματα σας δεν έχουν αποσταλεί.", "This room is not recognised.": "Αυτό το δωμάτιο δεν αναγνωρίζεται.", "to favourite": "στα αγαπημένα", @@ -730,8 +730,8 @@ "verified": "επαληθεύτηκε", "Verified": "Επαληθεύτηκε", "Verified key": "Επιβεβαιωμένο κλειδί", - "VoIP conference finished.": "Ολοκληρώθηκε η διάσκεψη VoIP.", - "VoIP conference started.": "Ξεκίνησησε η διάσκεψη VoIP.", + "VoIP conference finished.": "Ολοκληρώθηκε η συνδιάσκεψη VoIP.", + "VoIP conference started.": "Ξεκίνησησε η συνδιάσκεψη VoIP.", "VoIP is unsupported": "Δεν υποστηρίζεται το VoIP", "(warning: cannot be disabled again!)": "(προειδοποίηση: δεν μπορεί να απενεργοποιηθεί ξανά)", "WARNING: Device already verified, but keys do NOT MATCH!": "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Η συσκευή έχει επαληθευτεί, αλλά τα κλειδιά ΔΕΝ ΤΑΙΡΙΑΖΟΥΝ!", @@ -741,7 +741,7 @@ "%(senderName)s withdrew %(targetName)s's invitation.": "Ο %(senderName)s ανακάλεσε την πρόσκληση του %(targetName)s.", "You're not in any rooms yet! Press": "Δεν είστε ακόμη σε κάνενα δωμάτιο! Πατήστε", "You cannot place a call with yourself.": "Δεν μπορείτε να καλέσετε τον ευατό σας.", - "You cannot place VoIP calls in this browser.": "Δεν μπορείτε να πραγματοποιήσετε κλήσεις VoIP σε αυτόν τον περιηγητή.", + "You cannot place VoIP calls in this browser.": "Δεν μπορείτε να πραγματοποιήσετε κλήσεις VoIP με αυτόν τον περιηγητή.", "You do not have permission to post to this room": "Δεν έχετε δικαιώματα για να δημοσιεύσετε σε αυτό το δωμάτιο", "You have been banned from %(roomName)s by %(userName)s.": "Έχετε αποκλειστεί από το δωμάτιο %(roomName)s από τον %(userName)s.", "You have been invited to join this room by %(inviterName)s": "Έχετε προσκληθεί να συνδεθείτε στο δωμάτιο από τον %(inviterName)s", @@ -776,8 +776,8 @@ "Opt out of analytics": "Αποκλείστε τα αναλυτικά στοιχεία", "Riot collects anonymous analytics to allow us to improve the application.": "Το Riot συλλέγει ανώνυμα δεδομένα επιτρέποντας μας να βελτιώσουμε την εφαρμογή.", "Failed to invite": "Δεν ήταν δυνατή η πρόσκληση", - "Failed to invite user": "Δεν ήταν δυνατή η πρόσκληση του χρήση", - "This action is irreversible.": "Αυτή η ενέργεια είναι μη αναστρέψιμη", + "Failed to invite user": "Δεν ήταν δυνατή η πρόσκληση του χρήστη", + "This action is irreversible.": "Αυτή η ενέργεια είναι μη αναστρέψιμη.", "In future this verification process will be more sophisticated.": "Στο μέλλον η διαδικασία επαλήθευσης θα είναι πιο εξελιγμένη.", "I verify that the keys match": "Επιβεβαιώνω πως ταιριάζουν τα κλειδιά", "\"%(RoomName)s\" contains devices that you haven't seen before.": "Το \"%(RoomName)s\" περιέχει συσκευές που δεν έχετε ξαναδεί.", @@ -789,5 +789,66 @@ "Disable URL previews by default for participants in this room": "Απενεργοποίηση της προεπισκόπησης συνδέσμων για όλους τους συμμετέχοντες στο δωμάτιο", "Disable URL previews for this room (affects only you)": "Ενεργοποίηση της προεπισκόπησης συνδέσμων για αυτό το δωμάτιο (επηρεάζει μόνο εσάς)", " (unsupported)": " (μη υποστηριζόμενο)", - "$senderDisplayName changed the room avatar to ": "Ο $senderDisplayName άλλαξε την εικόνα του δωματίου σε " + "$senderDisplayName changed the room avatar to ": "Ο $senderDisplayName άλλαξε την εικόνα του δωματίου σε ", + "Missing Media Permissions, click here to request.": "Λείπουν τα δικαιώματα πολύμεσων, κάντε κλικ για να ζητήσετε.", + "You may need to manually permit Riot to access your microphone/webcam": "Μπορεί να χρειαστεί να ορίσετε χειροκίνητα την πρόσβαση του Riot στο μικρόφωνο/κάμερα", + "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Δεν είναι δυνατή η σύνδεση στον διακομιστή - παρακαλούμε ελέγξτε την συνδεσιμότητα, βεβαιωθείτε ότι το πιστοποιητικό SSL του διακομιστή είναι έμπιστο και ότι κάποιο πρόσθετο περιηγητή δεν αποτρέπει τα αιτήματα.", + "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 ή ενεργοποιήστε τα μη ασφαλή σενάρια εντολών.", + "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "Ο %(senderName)s άλλαξε το επίπεδο δύναμης του %(powerLevelDiffText)s.", + "Changes to who can read history will only apply to future messages in this room": "Οι αλλαγές που αφορούν την ορατότητα του ιστορικού θα εφαρμοστούν μόνο στα μελλοντικά μηνύματα του δωματίου", + "Conference calling is in development and may not be reliable.": "Η κλήση συνδιάσκεψης είναι υπό ανάπτυξη και μπορεί να μην είναι αξιόπιστη.", + "Devices will not yet be able to decrypt history from before they joined the room": "Οι συσκευές δεν θα είναι σε θέση να αποκρυπτογραφήσουν το ιστορικό πριν από την είσοδο τους στο δωμάτιο", + "End-to-end encryption is in beta and may not be reliable": "Η κρυπτογράφηση από άκρο σε άκρο είναι σε δοκιμαστικό στάδιο και μπορεί να μην είναι αξιόπιστη", + "%(senderName)s removed their display name (%(oldDisplayName)s).": "Ο %(senderName)s αφαίρεσε το όνομα εμφάνισης του (%(oldDisplayName)s).", + "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "Ο %(senderName)s έστειλε μια πρόσκληση στον %(targetDisplayName)s για να συνδεθεί στο δωμάτιο.", + "%(senderName)s set their display name to %(displayName)s.": "Ο %(senderName)s όρισε το όνομα του σε %(displayName)s.", + "Sorry, this homeserver is using a login which is not recognised ": "Συγγνώμη, ο διακομιστής χρησιμοποιεί έναν τρόπο σύνδεσης που δεν αναγνωρίζεται", + "tag as %(tagName)s": "ετικέτα ως %(tagName)s", + "tag direct chat": "προσθήκη ετικέτας στην απευθείας συνομιλία", + "The phone number entered looks invalid": "Ο αριθμός που καταχωρίσατε δεν είναι έγκυρος", + "This action cannot be performed by a guest user. Please register to be able to do this.": "Αυτή η ενέργεια δεν μπορεί να εκτελεστεί από έναν επισκέπτη. Παρακαλούμε εγγραφείτε για να μπορέσετε να το κάνετε.", + "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 remote side failed to pick up": "Η απομακρυσμένη πλευρά απέτυχε να συλλέξει", + "This Home Server does not support login using email address.": "Ο διακομιστής δεν υποστηρίζει σύνδεση με διευθύνσεις ηλ. αλληλογραφίας.", + "This invitation was sent to an email address which is not associated with this account:": "Η πρόσκληση στάλθηκε σε μια διεύθυνση που δεν έχει συσχετιστεί με αυτόν τον λογαριασμό:", + "These are experimental features that may break in unexpected ways": "Αυτά είναι πειραματικά χαρακτηριστικά και μπορεί να καταρρεύσουν με απροσδόκητους τρόπους", + "The visibility of existing history will be unchanged": "Η ορατότητα του υπάρχοντος ιστορικού θα παραμείνει αμετάβλητη", + "This is a preview of this room. Room interactions have been disabled": "Αυτή είναι μια προεπισκόπηση του δωματίου. Οι αλληλεπιδράσεις δωματίου έχουν απενεργοποιηθεί", + "This room is not accessible by remote Matrix servers": "Αυτό το δωμάτιο δεν είναι προσβάσιμο από απομακρυσμένους διακομιστές Matrix", + "to demote": "για υποβίβαση", + "To reset your password, enter the email address linked to your account": "Για να επαναφέρετε τον κωδικό πρόσβασης σας, πληκτρολογήστε τη διεύθυνση ηλ. αλληλογραφίας όπου είναι συνδεδεμένη με τον λογαριασμό σας", + "to tag as %(tagName)s": "για να οριστεί ετικέτα ως %(tagName)s", + "to tag direct chat": "για να οριστεί ετικέτα σε απευθείας συνομιλία", + "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "Ο %(senderName)s ενεργοποίησε την από άκρο σε άκρο κρυπτογράφηση (algorithm %(algorithm)s).", + "Undecryptable": "Μη αποκρυπτογραφημένο", + "Uploading %(filename)s and %(count)s others.one": "Γίνεται αποστολή του %(filename)s και %(count)s υπολοίπα", + "Would you like to accept or decline this invitation?": "Θα θέλατε να δεχθείτε ή να απορρίψετε την πρόσκληση;", + "You already have existing direct chats with this user:": "Έχετε ήδη απευθείας συνομιλίες με τον χρήστη:", + "You are trying to access %(roomName)s.": "Προσπαθείτε να έχετε πρόσβαση στο %(roomName)s.", + "You have been kicked from %(roomName)s by %(userName)s.": "Έχετε διωχθεί από το δωμάτιο %(roomName)s από τον %(userName)s.", + "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Έχετε αποσυνδεθεί από όλες τις συσκευές και δεν θα λαμβάνετε πλέον ειδοποιήσεις push. Για να ενεργοποιήσετε τις ειδοποιήσεις, συνδεθείτε ξανά σε κάθε συσκευή", + "You have disabled URL previews by default.": "Έχετε απενεργοποιημένη από προεπιλογή την προεπισκόπηση συνδέσμων.", + "You have enabled URL previews by default.": "Έχετε ενεργοποιημένη από προεπιλογή την προεπισκόπηση συνδέσμων.", + "You have entered an invalid contact. Try using their Matrix ID or email address.": "Έχετε πληκτρολογήσει μια άκυρη επαφή. Χρησιμοποιήστε το Matrix ID ή την ηλεκτρονική διεύθυνση αλληλογραφίας τους.", + "You may wish to login with a different account, or add this email to this account.": "Μπορεί να θέλετε να συνδεθείτε με διαφορετικό λογαριασμό, ή να προσθέσετε αυτή τη διεύθυνση ηλεκτρονικής αλληλογραφίας σε αυτόν τον λογαριασμό.", + "You need to be able to invite users to do that.": "Για να το κάνετε αυτό πρέπει να έχετε τη δυνατότητα να προσκαλέσετε χρήστες.", + "You seem to be uploading files, are you sure you want to quit?": "Φαίνεται ότι αποστέλετε αρχεία, είστε βέβαιοι ότι θέλετε να αποχωρήσετε;", + "You should not yet trust it to secure data": "Δεν πρέπει να το εμπιστεύεστε για να ασφαλίσετε δεδομένα", + "Your home server does not support device management.": "Ο διακομιστής δεν υποστηρίζει διαχείριση συσκευών.", + "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Ο κωδικός πρόσβασης είναι πολύ μικρός (ελ. %(MIN_PASSWORD_LENGTH)s).", + "User names may only contain letters, numbers, dots, hyphens and underscores.": "Τα ονόματα μπορεί να περιέχουν μόνο γράμματα, αριθμούς, τελείες, πάνω και κάτω παύλα.", + "Share message history with new users": "Διαμοιρασμός ιστορικού μηνυμάτων με τους νέους χρήστες", + "numbullet": "απαρίθμηση", + "%(severalUsers)sleft and rejoined %(repeats)s times": "%(severalUsers)s έφυγαν και ξανασυνδέθηκαν %(repeats)s φορές", + "%(oneUser)sleft and rejoined %(repeats)s times": "%(severalUsers)s έφυγε και ξανασυνδέθηκε %(repeats)s φορές", + "%(severalUsers)sleft and rejoined": "%(severalUsers)s έφυγαν και ξανασυνδέθηκαν", + "%(oneUser)sleft and rejoined": "%(severalUsers)s έφυγε και ξανασυνδέθηκε", + "%(severalUsers)shad their invitations withdrawn %(repeats)s times": "Οι %(severalUsers)s απέσυραν τις προσκλήσεις τους %(repeats)s φορές", + "%(oneUser)shad their invitation withdrawn %(repeats)s times": "Ο %(severalUsers)s απέσυρε την πρόσκληση του %(repeats)s φορές", + "%(severalUsers)shad their invitations withdrawn": "Οι %(severalUsers)s απέσυραν τις προσκλήσεις τους", + "%(oneUser)shad their invitation withdrawn": "Ο %(severalUsers)s απέσυρε την πρόσκληση του", + "You must join the room to see its files": "Πρέπει να συνδεθείτε στο δωμάτιο για να δείτε τα αρχεία του", + "Reject all %(invitedRooms)s invites": "Απόρριψη όλων των προσκλήσεων %(invitedRooms)s", + "Failed to invite the following users to the %(roomName)s room:": "Δεν ήταν δυνατή η πρόσκληση των χρηστών στο δωμάτιο %(roomName)s:" } From ef4fddfb695479c4d4f72fccb0adb8f9b69ff5db Mon Sep 17 00:00:00 2001 From: Jean Date: Mon, 12 Jun 2017 12:08:19 +0000 Subject: [PATCH 023/120] Translated using Weblate (French) Currently translated at 93.7% (845 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 51ec1b3215..894e9836d1 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -856,5 +856,10 @@ "This will be your account name on the homeserver, or you can pick a different server.": "Cela sera le nom de votre compte sur le serveur , ou vous pouvez sélectionner un autre serveur.", "If you already have a Matrix account you can log in instead.": "Si vous avez déjà un compte Matrix vous pouvez vous identifier à la place.", "a room": "un salon", - "Accept": "Accepter" + "Accept": "Accepter", + "Active call (%(roomName)s)": "Appel en cours (%(roomName)s)", + "Admin tools": "Outils d'administration", + "Alias (optional)": "Alias (optionnel)", + "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Impossible de se connecter au homeserver - veuillez vérifier votre connexion, assurez vous que vous faite confiance au certificat SSL de votre homeserver, et qu'aucune extension de navigateur ne bloque de requêtes.", + "Click here to join the discussion!": "Cliquez ici pour joindre la discussion !" } From 40d25f0a6df237cce0f179533eadea14682e3dc7 Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Mon, 12 Jun 2017 12:11:46 +0000 Subject: [PATCH 024/120] Translated using Weblate (French) Currently translated at 93.8% (846 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 894e9836d1..2e0e6f69eb 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -861,5 +861,6 @@ "Admin tools": "Outils d'administration", "Alias (optional)": "Alias (optionnel)", "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Impossible de se connecter au homeserver - veuillez vérifier votre connexion, assurez vous que vous faite confiance au certificat SSL de votre homeserver, et qu'aucune extension de navigateur ne bloque de requêtes.", - "Click here to join the discussion!": "Cliquez ici pour joindre la discussion !" + "Click here to join the discussion!": "Cliquer ici pour joindre la discussion!", + "Close": "Fermer" } From d6c306f010938d5903d0b23c6af039addb46869d Mon Sep 17 00:00:00 2001 From: Jean Date: Mon, 12 Jun 2017 13:02:32 +0000 Subject: [PATCH 025/120] Translated using Weblate (French) Currently translated at 95.0% (856 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 2e0e6f69eb..1392de67f4 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -862,5 +862,16 @@ "Alias (optional)": "Alias (optionnel)", "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Impossible de se connecter au homeserver - veuillez vérifier votre connexion, assurez vous que vous faite confiance au certificat SSL de votre homeserver, et qu'aucune extension de navigateur ne bloque de requêtes.", "Click here to join the discussion!": "Cliquer ici pour joindre la discussion!", - "Close": "Fermer" + "Close": "Fermer", + "Custom": "Personnaliser", + "Decline": "Décliner", + "Disable Notifications": "Désactiver les Notifications", + "Drop File Here": "Déposer le Fichier Ici", + "Enable Notifications": "Activer les Notifications", + "Failed to upload profile picture!": "Échec du téléchargement de la photo de profil !", + "Incoming call from %(name)s": "Appel entrant de %(name)s", + "Incoming video call from %(name)s": "Appel vidéo entrant de %(name)s", + "Incoming voice call from %(name)s": "Appel audio entrant de %(name)s", + "No display name": "", + "Otherwise, click here to send a bug report.": "Sinon, cliquer ici pour envoyer un rapport d'erreur." } From 9a056270c45d6bcc66d09c2bc8bd3fca01dc25a3 Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Mon, 12 Jun 2017 13:03:21 +0000 Subject: [PATCH 026/120] Translated using Weblate (French) Currently translated at 95.1% (857 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 1392de67f4..34d5f3db3c 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -873,5 +873,6 @@ "Incoming video call from %(name)s": "Appel vidéo entrant de %(name)s", "Incoming voice call from %(name)s": "Appel audio entrant de %(name)s", "No display name": "", - "Otherwise, click here to send a bug report.": "Sinon, cliquer ici pour envoyer un rapport d'erreur." + "Otherwise, click here to send a bug report.": "Sinon, cliquer ici pour envoyer un rapport d'erreur.", + "Private Chat": "Conversation Privé" } From 90df2545eb4ec83541008ce7d062197669f691c7 Mon Sep 17 00:00:00 2001 From: Jean Date: Mon, 12 Jun 2017 13:04:13 +0000 Subject: [PATCH 027/120] Translated using Weblate (French) Currently translated at 95.2% (858 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 34d5f3db3c..34b7d1221a 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -874,5 +874,7 @@ "Incoming voice call from %(name)s": "Appel audio entrant de %(name)s", "No display name": "", "Otherwise, click here to send a bug report.": "Sinon, cliquer ici pour envoyer un rapport d'erreur.", - "Private Chat": "Conversation Privé" + "Private Chat": "Conversation Privée", + "Public Chat": "Conversation Publique", + "Reason: %(reasonText)s": "" } From 75da7043883b84b4ce7c06c86d95b47c8e279f35 Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Mon, 12 Jun 2017 13:04:28 +0000 Subject: [PATCH 028/120] Translated using Weblate (French) Currently translated at 95.4% (860 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 34b7d1221a..299bb8b8e1 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -876,5 +876,6 @@ "Otherwise, click here to send a bug report.": "Sinon, cliquer ici pour envoyer un rapport d'erreur.", "Private Chat": "Conversation Privée", "Public Chat": "Conversation Publique", - "Reason: %(reasonText)s": "" + "Reason: %(reasonText)s": "Raison: %(reasonText)s", + "Rejoin": "Rejoindre" } From c70eacd0497a2beb173302856a7e59de6db46f5d Mon Sep 17 00:00:00 2001 From: Jean Date: Mon, 12 Jun 2017 13:05:21 +0000 Subject: [PATCH 029/120] Translated using Weblate (French) Currently translated at 95.5% (861 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 299bb8b8e1..add5323267 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -877,5 +877,6 @@ "Private Chat": "Conversation Privée", "Public Chat": "Conversation Publique", "Reason: %(reasonText)s": "Raison: %(reasonText)s", - "Rejoin": "Rejoindre" + "Rejoin": "Rejoindre", + "Room contains unknown devices": "Le salon contient des appareils inconnus" } From 39a75694b6303d97db8a81d35b669f79cccedcfc Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Mon, 12 Jun 2017 13:05:29 +0000 Subject: [PATCH 030/120] Translated using Weblate (French) Currently translated at 95.6% (862 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index add5323267..50eff06ed8 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -878,5 +878,6 @@ "Public Chat": "Conversation Publique", "Reason: %(reasonText)s": "Raison: %(reasonText)s", "Rejoin": "Rejoindre", - "Room contains unknown devices": "Le salon contient des appareils inconnus" + "Room contains unknown devices": "Le salon contient des appareils inconnus", + "%(roomName)s does not exist.": "%(roomName)s n'existe pas" } From e972cb3a9ba05b1aabb87a32a0315d6a6a74386b Mon Sep 17 00:00:00 2001 From: Jean Date: Mon, 12 Jun 2017 13:15:39 +0000 Subject: [PATCH 031/120] Translated using Weblate (French) Currently translated at 96.3% (868 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 50eff06ed8..3d3de42876 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -298,7 +298,7 @@ "had": "avait", "Hangup": "Raccrocher", "Hide read receipts": "Cacher les accusés de réception", - "Hide Text Formatting Toolbar": "Cacher la barre de formattage de texte", + "Hide Text Formatting Toolbar": "Cacher la barre de formatage de texte", "Historical": "Historique", "Homeserver is": "Le homeserver est", "Identity Server is": "Le serveur d'identité est", @@ -879,5 +879,11 @@ "Reason: %(reasonText)s": "Raison: %(reasonText)s", "Rejoin": "Rejoindre", "Room contains unknown devices": "Le salon contient des appareils inconnus", - "%(roomName)s does not exist.": "%(roomName)s n'existe pas" + "%(roomName)s does not exist.": "%(roomName)s n'existe pas.", + "%(roomName)s is not accessible at this time.": "%(roomName)s n'est pas accessible pour le moment.", + "Seen by %(userName)s at %(dateTime)s": "Vu par %(userName)s à %(dateTime)s", + "Send anyway": "Envoyer quand même", + "Show Text Formatting Toolbar": "Afficher la Barre de Formatage de Texte", + "Start authentication": "Démarrer une authentification", + "This invitation was sent to an email address which is not associated with this account:": "Cette invitation a été envoyée à une adresse e-mail qui n'est pas associée avec ce compte :" } From 0f3da93ff43112a2afd8d47c4e298fd79ff4fe15 Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Mon, 12 Jun 2017 13:16:33 +0000 Subject: [PATCH 032/120] Translated using Weblate (French) Currently translated at 96.4% (869 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 3d3de42876..8598a8b9c0 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -885,5 +885,6 @@ "Send anyway": "Envoyer quand même", "Show Text Formatting Toolbar": "Afficher la Barre de Formatage de Texte", "Start authentication": "Démarrer une authentification", - "This invitation was sent to an email address which is not associated with this account:": "Cette invitation a été envoyée à une adresse e-mail qui n'est pas associée avec ce compte :" + "This invitation was sent to an email address which is not associated with this account:": "Cette invitation a été envoyée à une adresse e-mail qui n'est pas associée avec ce compte :", + "This room": "Ce salon" } From c58221e79e073d31e59854a9b49a99706d70ca37 Mon Sep 17 00:00:00 2001 From: Jean Date: Mon, 12 Jun 2017 13:22:27 +0000 Subject: [PATCH 033/120] Translated using Weblate (French) Currently translated at 96.6% (871 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 8598a8b9c0..c4460061ac 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -886,5 +886,7 @@ "Show Text Formatting Toolbar": "Afficher la Barre de Formatage de Texte", "Start authentication": "Démarrer une authentification", "This invitation was sent to an email address which is not associated with this account:": "Cette invitation a été envoyée à une adresse e-mail qui n'est pas associée avec ce compte :", - "This room": "Ce salon" + "This room": "Ce salon", + "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Impossible de vérifier que l'adresse à qui cette invitation a été envoyée correspond à celle associée à votre compte.", + "Undecryptable": "Indécryptable" } From 2e7077cc9deddc79051d9ea34f272d8934c5cd4b Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Mon, 12 Jun 2017 13:27:07 +0000 Subject: [PATCH 034/120] Translated using Weblate (French) Currently translated at 96.7% (872 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index c4460061ac..1cf95d584d 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -888,5 +888,6 @@ "This invitation was sent to an email address which is not associated with this account:": "Cette invitation a été envoyée à une adresse e-mail qui n'est pas associée avec ce compte :", "This room": "Ce salon", "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Impossible de vérifier que l'adresse à qui cette invitation a été envoyée correspond à celle associée à votre compte.", - "Undecryptable": "Indécryptable" + "Undecryptable": "Indécryptable", + "Unencrypted message": "Message non-encrypté" } From 7f5cb0e4a193ea4fee0b90e8490b6b5b9e8eda25 Mon Sep 17 00:00:00 2001 From: Jean Date: Mon, 12 Jun 2017 13:32:20 +0000 Subject: [PATCH 035/120] Translated using Weblate (French) Currently translated at 96.8% (873 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 1cf95d584d..f4d4e237a7 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -889,5 +889,6 @@ "This room": "Ce salon", "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Impossible de vérifier que l'adresse à qui cette invitation a été envoyée correspond à celle associée à votre compte.", "Undecryptable": "Indécryptable", - "Unencrypted message": "Message non-encrypté" + "Unencrypted message": "Message non-encrypté", + "unknown caller": "appelant inconnu" } From 0c70e56795417ecc797e8a0b3918b6b516e83a1e Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Mon, 12 Jun 2017 13:33:19 +0000 Subject: [PATCH 036/120] Translated using Weblate (French) Currently translated at 97.1% (875 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index f4d4e237a7..0fdb9e0397 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -890,5 +890,7 @@ "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Impossible de vérifier que l'adresse à qui cette invitation a été envoyée correspond à celle associée à votre compte.", "Undecryptable": "Indécryptable", "Unencrypted message": "Message non-encrypté", - "unknown caller": "appelant inconnu" + "unknown caller": "appelant inconnu", + "Unnamed Room": "Salon sans nom", + "Unverified": "Non-verifié" } From 52e024f408634ec0ae4f51e7fc370a166ad5e429 Mon Sep 17 00:00:00 2001 From: Jean Date: Mon, 12 Jun 2017 13:33:23 +0000 Subject: [PATCH 037/120] Translated using Weblate (French) Currently translated at 97.1% (875 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 0fdb9e0397..5c4a052e58 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -892,5 +892,5 @@ "Unencrypted message": "Message non-encrypté", "unknown caller": "appelant inconnu", "Unnamed Room": "Salon sans nom", - "Unverified": "Non-verifié" + "Unverified": "Non verifié" } From cef1f112da96892a66216c893be8bb235b7fd537 Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Mon, 12 Jun 2017 13:37:25 +0000 Subject: [PATCH 038/120] Translated using Weblate (French) Currently translated at 97.2% (876 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 5c4a052e58..0b55729dc8 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -892,5 +892,6 @@ "Unencrypted message": "Message non-encrypté", "unknown caller": "appelant inconnu", "Unnamed Room": "Salon sans nom", - "Unverified": "Non verifié" + "Unverified": "Non verifié", + "%(user)s is a": "%(user)s est un(e)" } From 3b03f268f83e77b5f5ee473c127efe96d3343732 Mon Sep 17 00:00:00 2001 From: Jean Date: Mon, 12 Jun 2017 13:40:27 +0000 Subject: [PATCH 039/120] Translated using Weblate (French) Currently translated at 97.3% (877 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 0b55729dc8..cf59b6b269 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -893,5 +893,6 @@ "unknown caller": "appelant inconnu", "Unnamed Room": "Salon sans nom", "Unverified": "Non verifié", - "%(user)s is a": "%(user)s est un(e)" + "%(user)s is a": "%(user)s est un(e)", + "Username invalid: %(errMessage)s": "Nom d'utilisateur invalide : %(errMessage)s" } From 0bcdf2981befa6ce250c2823dada4cb28cd75325 Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Mon, 12 Jun 2017 13:40:31 +0000 Subject: [PATCH 040/120] Translated using Weblate (French) Currently translated at 97.4% (878 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index cf59b6b269..d5e0d8ceea 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -894,5 +894,6 @@ "Unnamed Room": "Salon sans nom", "Unverified": "Non verifié", "%(user)s is a": "%(user)s est un(e)", - "Username invalid: %(errMessage)s": "Nom d'utilisateur invalide : %(errMessage)s" + "Username invalid: %(errMessage)s": "Nom d'utilisateur invalide : %(errMessage)s", + "Verified": "Verifié" } From 0bb58aec0586af235577d76022cf44a4259d34a2 Mon Sep 17 00:00:00 2001 From: Jean Date: Mon, 12 Jun 2017 13:47:37 +0000 Subject: [PATCH 041/120] Translated using Weblate (French) Currently translated at 98.0% (883 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index d5e0d8ceea..3a0f4be81a 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -895,5 +895,10 @@ "Unverified": "Non verifié", "%(user)s is a": "%(user)s est un(e)", "Username invalid: %(errMessage)s": "Nom d'utilisateur invalide : %(errMessage)s", - "Verified": "Verifié" + "Verified": "Verifié", + "Would you like to accept or decline this invitation?": "Souhaitez-vous accepter ou refuser cette invitation ?", + "You have been banned from %(roomName)s by %(userName)s.": "Vous avez été bannis de %(roomName)s par %(userName)s.", + "You have been kicked from %(roomName)s by %(userName)s.": "Vous avez été expulsé de %(roomName)s by %(userName)s.", + "You may wish to login with a different account, or add this email to this account.": "Vous souhaiteriez peut-être vous identifier avec un autre compte, ou ajouter cette e-mail à votre compte.", + "Your home server does not support device management.": "Votre home server ne supporte pas la gestion d'appareils." } From 85d70f138154135d0827d8af953963183844ab4e Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Mon, 12 Jun 2017 13:47:45 +0000 Subject: [PATCH 042/120] Translated using Weblate (French) Currently translated at 98.1% (884 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 3a0f4be81a..aa767d8709 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -900,5 +900,6 @@ "You have been banned from %(roomName)s by %(userName)s.": "Vous avez été bannis de %(roomName)s par %(userName)s.", "You have been kicked from %(roomName)s by %(userName)s.": "Vous avez été expulsé de %(roomName)s by %(userName)s.", "You may wish to login with a different account, or add this email to this account.": "Vous souhaiteriez peut-être vous identifier avec un autre compte, ou ajouter cette e-mail à votre compte.", - "Your home server does not support device management.": "Votre home server ne supporte pas la gestion d'appareils." + "Your home server does not support device management.": "Votre home server ne supporte pas la gestion d'appareils.", + "(~%(count)s results).one": "(~%(count)s résultat)" } From 69c16fa3f81dc1cd00963c0b2809726f35b3a1ed Mon Sep 17 00:00:00 2001 From: Tom Tryfonidis Date: Mon, 12 Jun 2017 13:54:08 +0000 Subject: [PATCH 043/120] Translated using Weblate (Greek) Currently translated at 96.5% (870 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/el/ --- src/i18n/strings/el.json | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/src/i18n/strings/el.json b/src/i18n/strings/el.json index 2f1151e028..d85f21162b 100644 --- a/src/i18n/strings/el.json +++ b/src/i18n/strings/el.json @@ -55,7 +55,7 @@ "Are you sure?": "Είστε σίγουροι;", "Are you sure you want to leave the room '%(roomName)s'?": "Είστε σίγουροι ότι θέλετε να αποχωρήσετε από το δωμάτιο '%(roomName)s';", "Are you sure you want to reject the invitation?": "Είστε σίγουροι ότι θέλετε να απορρίψετε την πρόσκληση;", - "Are you sure you want to upload the following files?": "Είσαι σίγουρος οτι θές να ανεβάσεις τα ακόλουθα αρχεία;", + "Are you sure you want to upload the following files?": "Είστε σίγουροι ότι θέλετε να αποστείλετε τα ακόλουθα αρχεία;", "Attachment": "Επισύναψη", "%(senderName)s banned %(targetName)s.": "Ο χρήστης %(senderName)s έδιωξε τον χρήστη %(targetName)s.", "Autoplay GIFs and videos": "Αυτόματη αναπαραγωγή GIFs και βίντεο", @@ -170,7 +170,7 @@ "A registered account is required for this action": "Ένας εγγεγραμμένος λογαριασμός απαιτείται για αυτή την ενέργεια", "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Ένα μήνυμα στάλθηκε στο +%(msisdn)s. Παρακαλώ γράψε τον κωδικό επαλήθευσης που περιέχει", "Access Token:": "Κωδικός πρόσβασης:", - "Always show message timestamps": "Εμ,φάνιση πάντα ένδειξη ώρας στα μηνύματα", + "Always show message timestamps": "Εμφάνιση πάντα της ένδειξης ώρας στα μηνύματα", "all room members": "όλα τα μέλη του δωματίου", "all room members, from the point they are invited": "όλα τα μέλη του δωματίου, από τη στιγμή που προσκλήθηκαν", "an address": "μία διεύθηνση", @@ -229,10 +229,10 @@ "Display name": "Όνομα χρήστη", "Download %(text)s": "Λήψη %(text)s", "Ed25519 fingerprint": "Αποτύπωμα Ed25519", - "Email": "Ηλ. αλληλογραφία", - "Email address": "Διεύθυνση ηλ. αλληλογραφίας", - "Email address (optional)": "Διεύθυνση ηλ. αλληλογραφίας (προαιρετικό)", - "Email, name or matrix ID": "Ηλ. αλληλογραφίας, όνομα ή matrix ID", + "Email": "Ηλεκτρονική διεύθυνση", + "Email address": "Ηλεκτρονική διεύθυνση", + "Email address (optional)": "Ηλεκτρονική διεύθυνση (προαιρετικό)", + "Email, name or matrix ID": "Ηλεκτρονική διεύθυνση, όνομα ή matrix ID", "Emoji": "Εικονίδια", "enabled": "ενεργό", "Encrypted messages will not be visible on clients that do not yet implement encryption": "Τα κρυπτογραφημένα μηνύματα δεν θα είναι ορατά σε εφαρμογές που δεν παρέχουν τη δυνατότητα κρυπτογράφησης", @@ -850,5 +850,30 @@ "%(oneUser)shad their invitation withdrawn": "Ο %(severalUsers)s απέσυρε την πρόσκληση του", "You must join the room to see its files": "Πρέπει να συνδεθείτε στο δωμάτιο για να δείτε τα αρχεία του", "Reject all %(invitedRooms)s invites": "Απόρριψη όλων των προσκλήσεων %(invitedRooms)s", - "Failed to invite the following users to the %(roomName)s room:": "Δεν ήταν δυνατή η πρόσκληση των χρηστών στο δωμάτιο %(roomName)s:" + "Failed to invite the following users to the %(roomName)s room:": "Δεν ήταν δυνατή η πρόσκληση των χρηστών στο δωμάτιο %(roomName)s:", + "changing room on a RoomView is not supported": "Δεν υποστηρίζεται η αλλαγή δωματίου σε RoomView", + "demote": "υποβίβαση", + "Deops user with given id": "Deop χρήστη με το συγκεκριμένο αναγνωριστικό", + "Disable inline URL previews by default": "Απενεργοποίηση προεπισκόπησης συνδέσμων από προεπιλογή", + "Drop here to tag %(section)s": "Απόθεση εδώ για ορισμό ετικέτας στο %(section)s", + "Join as voice or video.": "Συμμετάσχετε με φωνή ή βίντεο.", + "Joins room with given alias": "Συνδέεστε στο δωμάτιο με δοσμένο ψευδώνυμο", + "Setting a user name will create a fresh account": "Ορίζοντας ένα όνομα χρήστη θα δημιουργήσει ένα νέο λογαριασμό", + "Show timestamps in 12 hour format (e.g. 2:30pm)": "Εμφάνιση χρονικών σημάνσεων σε 12ωρη μορφή ώρας (π.χ. 2:30 μ.μ.)", + "since the point in time of selecting this option": "από το χρονικό σημείο επιλογής αυτής της ρύθμισης", + "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Το κλειδί υπογραφής που δώσατε αντιστοιχεί στο κλειδί υπογραφής που λάβατε από τη συσκευή %(userId)s %(deviceId)s. Η συσκευή έχει επισημανθεί ως επιβεβαιωμένη.", + "To link to a room it must have an address.": "Για να συνδεθείτε σε ένα δωμάτιο πρέπει να έχετε μια διεύθυνση.", + "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.": "Πρέπει να συνδεθείτε ξανά για να δημιουργήσετε τα κλειδιά κρυπτογράφησης από άκρο σε άκρο για αυτήν τη συσκευή και να υποβάλετε το δημόσιο κλειδί στον διακομιστή σας. Αυτό θα χρειαστεί να γίνει μόνο μια φορά.", + "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Η διεύθυνση ηλεκτρονικής αλληλογραφίας σας δεν φαίνεται να συσχετίζεται με Matrix ID σε αυτόν τον διακομιστή.", + "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Ο κωδικός πρόσβασής σας άλλαξε επιτυχώς. Δεν θα λάβετε ειδοποιήσεις push σε άλλες συσκευές μέχρι να συνδεθείτε ξανά σε αυτές", + "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Δεν θα μπορέσετε να αναιρέσετε αυτήν την αλλαγή καθώς προωθείτε τον χρήστη να έχει το ίδιο επίπεδο δύναμης με τον εαυτό σας.", + "Sent messages will be stored until your connection has returned.": "Τα απεσταλμένα μηνύματα θα αποθηκευτούν μέχρι να αακτηθεί η σύνδεσή σας.", + "Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Αποστολή ξανά όλων ή ακύρωση όλων τώρα. Μπορείτε επίσης να επιλέξετε μεμονωμένα μηνύματα για να τα στείλετε ξανά ή να ακυρώσετε.", + "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.": "Είστε βέβαιοι ότι θέλετε να καταργήσετε (διαγράψετε) αυτό το συμβάν; Σημειώστε ότι αν διαγράψετε το όνομα δωματίου ή αλλάξετε το θέμα, θα μπορούσε να αναιρέσει την αλλαγή.", + "This allows you to use this app with an existing Matrix account on a different home server.": "Αυτό σας επιτρέπει να χρησιμοποιήσετε την εφαρμογή με έναν υπάρχον λογαριασμό Matrix σε έναν διαφορετικό διακομιστή.", + "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Μπορείτε επίσης να ορίσετε έναν προσαρμοσμένο διακομιστή ταυτοποίησης, αλλά αυτό συνήθως θα αποτρέψει την αλληλεπίδραση με τους χρήστες που βασίζονται στην ηλεκτρονική διεύθυνση αλληλογραφίας.", + "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "Η προεπισκόπηση συνδέσμων είναι %(globalDisableUrlPreview)s από προεπιλογή για τους συμμετέχοντες του δωματίου.", + "Ongoing conference call%(supportedText)s. %(joinText)s": "Κλήση συνδιάσκεψης σε εξέλιξη %(supportedText)s. %(joinText)s", + "This will be your account name on the homeserver, or you can pick a different server.": "Αυτό θα είναι το όνομα του λογαριασμού σας στον διακομιστή , ή μπορείτε να επιλέξετε διαφορετικό διακομιστή.", + "If you already have a Matrix account you can log in instead.": "Αν έχετε ήδη λογαριασμό Matrix μπορείτε να συνδεθείτε." } From 29355a610f000b44a1937e4824bd0a9f6362ebd3 Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 12 Jun 2017 15:19:52 +0100 Subject: [PATCH 044/120] js-sdk 0.7.11 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7e2ad6d064..1b57cc6890 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": "0.7.11-rc.1", + "matrix-js-sdk": "0.7.11", "optimist": "^0.6.1", "prop-types": "^15.5.8", "q": "^1.4.1", From ebac408c662726e52fda9295a1ed06b5f78bd200 Mon Sep 17 00:00:00 2001 From: Jean Date: Mon, 12 Jun 2017 13:54:45 +0000 Subject: [PATCH 045/120] Translated using Weblate (French) Currently translated at 98.1% (884 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index aa767d8709..01ad98cecc 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -325,8 +325,8 @@ "%(targetName)s joined the room.": "%(targetName)s a joint le salon.", "Joins room with given alias": "Joint le salon avec l'alias défini", "%(senderName)s kicked %(targetName)s.": "%(senderName)s a expulsé %(targetName)s.", - "Kick": "Expluser", - "Kicks user with given id": "Expulse l'utilisateur and l'ID donné", + "Kick": "Expulser", + "Kicks user with given id": "Expulse l'utilisateur avec l'ID donné", "Labs": "Laboratoire", "Leave room": "Quitter le salon", "left and rejoined": "a quitté et rejoint", @@ -901,5 +901,7 @@ "You have been kicked from %(roomName)s by %(userName)s.": "Vous avez été expulsé de %(roomName)s by %(userName)s.", "You may wish to login with a different account, or add this email to this account.": "Vous souhaiteriez peut-être vous identifier avec un autre compte, ou ajouter cette e-mail à votre compte.", "Your home server does not support device management.": "Votre home server ne supporte pas la gestion d'appareils.", - "(~%(count)s results).one": "(~%(count)s résultat)" + "(~%(count)s results).one": "(~%(count)s résultat)", + "(~%(count)s results).other": "", + "Device Name": "" } From 1cde4abfd821ecb77a859bae8e80a13a50515fd0 Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Mon, 12 Jun 2017 14:28:43 +0000 Subject: [PATCH 046/120] Translated using Weblate (French) Currently translated at 98.2% (885 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 01ad98cecc..6376f23d5c 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -903,5 +903,6 @@ "Your home server does not support device management.": "Votre home server ne supporte pas la gestion d'appareils.", "(~%(count)s results).one": "(~%(count)s résultat)", "(~%(count)s results).other": "", - "Device Name": "" + "Device Name": "", + "Encrypted by a verified device": "Encrypté par un apareil verifié" } From fea1259127f8c07536cf128d7ab664e68a3e0905 Mon Sep 17 00:00:00 2001 From: Jean Date: Mon, 12 Jun 2017 14:28:47 +0000 Subject: [PATCH 047/120] Translated using Weblate (French) Currently translated at 98.2% (885 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 6376f23d5c..84745aa0b0 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -904,5 +904,5 @@ "(~%(count)s results).one": "(~%(count)s résultat)", "(~%(count)s results).other": "", "Device Name": "", - "Encrypted by a verified device": "Encrypté par un apareil verifié" + "Encrypted by a verified device": "Encrypté par un appareil verifié" } From b1bc83ab15f74dfbf03eaf7544bf3e0249eab57a Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Mon, 12 Jun 2017 14:29:21 +0000 Subject: [PATCH 048/120] Translated using Weblate (French) Currently translated at 98.3% (886 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 84745aa0b0..08997227a6 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -904,5 +904,6 @@ "(~%(count)s results).one": "(~%(count)s résultat)", "(~%(count)s results).other": "", "Device Name": "", - "Encrypted by a verified device": "Encrypté par un appareil verifié" + "Encrypted by a verified device": "Encrypté par un appareil verifié", + "Encrypted by an unverified device": "Encrypté par un apareil non-verifié" } From 613318658319160d7db2b4dfbd0d3ac3cdde1660 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Fri, 9 Jun 2017 22:19:14 +0100 Subject: [PATCH 049/120] fullstop fails --- .../views/elements/MemberEventListSummary.js | 28 +++++++++---------- src/i18n/strings/de_DE.json | 4 +-- src/i18n/strings/th.json | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/components/views/elements/MemberEventListSummary.js b/src/components/views/elements/MemberEventListSummary.js index f2f6da83e5..842b44b793 100644 --- a/src/components/views/elements/MemberEventListSummary.js +++ b/src/components/views/elements/MemberEventListSummary.js @@ -227,8 +227,7 @@ module.exports = React.createClass({ ? _t("%(severalUsers)sjoined", { severalUsers: "" }) : _t("%(oneUser)sjoined", { oneUser: "" }); } - - break; + break; case "left": if (repeats > 1) { res = (plural) @@ -238,7 +237,8 @@ module.exports = React.createClass({ res = (plural) ? _t("%(severalUsers)sleft", { severalUsers: "" }) : _t("%(oneUser)sleft", { oneUser: "" }); - } break; + } + break; case "joined_and_left": if (repeats > 1) { res = (plural) @@ -249,7 +249,7 @@ module.exports = React.createClass({ ? _t("%(severalUsers)sjoined and left", { severalUsers: "" }) : _t("%(oneUser)sjoined and left", { oneUser: "" }); } - break; + break; case "left_and_joined": if (repeats > 1) { res = (plural) @@ -259,8 +259,8 @@ module.exports = React.createClass({ res = (plural) ? _t("%(severalUsers)sleft and rejoined", { severalUsers: "" }) : _t("%(oneUser)sleft and rejoined", { oneUser: "" }); - } break; - break; + } + break; case "invite_reject": if (repeats > 1) { res = (plural) @@ -271,7 +271,7 @@ module.exports = React.createClass({ ? _t("%(severalUsers)srejected their invitations", { severalUsers: "" }) : _t("%(oneUser)srejected their invitation", { oneUser: "" }); } - break; + break; case "invite_withdrawal": if (repeats > 1) { res = (plural) @@ -282,7 +282,7 @@ module.exports = React.createClass({ ? _t("%(severalUsers)shad their invitations withdrawn", { severalUsers: "" }) : _t("%(oneUser)shad their invitation withdrawn", { oneUser: "" }); } - break; + break; case "invited": if (repeats > 1) { res = (plural) @@ -293,7 +293,7 @@ module.exports = React.createClass({ ? _t("were invited") : _t("was invited"); } - break; + break; case "banned": if (repeats > 1) { res = (plural) @@ -304,7 +304,7 @@ module.exports = React.createClass({ ? _t("were banned") : _t("was banned"); } - break; + break; case "unbanned": if (repeats > 1) { res = (plural) @@ -315,7 +315,7 @@ module.exports = React.createClass({ ? _t("were unbanned") : _t("was unbanned"); } - break; + break; case "kicked": if (repeats > 1) { res = (plural) @@ -326,7 +326,7 @@ module.exports = React.createClass({ ? _t("were kicked") : _t("was kicked"); } - break; + break; case "changed_name": if (repeats > 1) { res = (plural) @@ -337,7 +337,7 @@ module.exports = React.createClass({ ? _t("%(severalUsers)schanged their name", { severalUsers: "" }) : _t("%(oneUser)schanged their name", { oneUser: "" }); } - break; + break; case "changed_avatar": if (repeats > 1) { res = (plural) @@ -348,7 +348,7 @@ module.exports = React.createClass({ ? _t("%(severalUsers)schanged their avatar", { severalUsers: "" }) : _t("%(oneUser)schanged their avatar", { oneUser: "" }); } - break; + break; } return res; diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 699914d7ea..fbd49a6800 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -615,8 +615,8 @@ "%(actionVerb)s this person?": "Diese Person %(actionVerb)s?", "This room has no local addresses": "Dieser Raum hat keine lokale Adresse", "This room is private or inaccessible to guests. You may be able to join if you register": "Dieser Raum ist privat oder für Gäste nicht zugänglich. Du kannst jedoch eventuell beitreten, wenn du dich registrierst", - "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question": "Versuchte einen spezifischen Punkt in der Raum-Chronik zu laden, aber du hast keine Berechtigung die angeforderte Nachricht anzuzeigen", - "Tried to load a specific point in this room's timeline, but was unable to find it": "Der Versuch, einen spezifischen Punkt im Chatverlauf zu laden, ist fehlgeschlagen. Der Punkt konnte nicht gefunden werden", + "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Versuchte einen spezifischen Punkt in der Raum-Chronik zu laden, aber du hast keine Berechtigung die angeforderte Nachricht anzuzeigen.", + "Tried to load a specific point in this room's timeline, but was unable to find it.": "Der Versuch, einen spezifischen Punkt im Chatverlauf zu laden, ist fehlgeschlagen. Der Punkt konnte nicht gefunden werden.", "Turn Markdown off": "Markdown deaktiveren", "Turn Markdown on": "Markdown einschalten", "Unable to load device list": "Geräteliste konnte nicht geladen werden", diff --git a/src/i18n/strings/th.json b/src/i18n/strings/th.json index 05116953f7..a54f7fee42 100644 --- a/src/i18n/strings/th.json +++ b/src/i18n/strings/th.json @@ -389,7 +389,7 @@ "Who would you like to add to this room?": "คุณต้องการเพิ่มใครเข้าห้องนี้?", "Who would you like to communicate with?": "คุณต้องการสื่อสารกับใคร?", "You're not in any rooms yet! Press": "คุณยังไม่ได้อยู่ในห้องใดเลย! กด", - "You are trying to access %(roomName)s": "คุณกำลังพยายามเข้าสู่ %(roomName)s", + "You are trying to access %(roomName)s.": "คุณกำลังพยายามเข้าสู่ %(roomName)s", "You have disabled URL previews by default.": "ค่าเริ่มต้นของคุณปิดใช้งานตัวอย่าง URL เอาไว้", "You have enabled URL previews by default.": "ค่าเริ่มต้นของคุณเปิดใช้งานตัวอย่าง URL เอาไว้", "you must be a": "คุณต้องเป็น", From 6afd8952911fb8ac3dddd2d49ad93ecfe5969398 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Fri, 9 Jun 2017 22:20:09 +0100 Subject: [PATCH 050/120] broken var --- src/i18n/strings/zh_Hant.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 140e7a7b2d..2d0ac27363 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -290,7 +290,7 @@ "Would you like to": "你要", "You are already in a call.": "你已在電話通話中", "You're not in any rooms yet! Press": "你尚未加入任何聊天室!請按", - "You are trying to access %(roomName)s.": "你將進入 %(roomName)聊天室", + "You are trying to access %(roomName)s.": "你將進入 %(roomName)s聊天室", "You cannot place a call with yourself.": "你不能打電話給自已", "You cannot place VoIP calls in this browser.": "在此瀏覽器下無法置入網路電話通話", "Sun": "星期日", From f98c491fddb60c8f64b71c0e287bcdcfa41dd97c Mon Sep 17 00:00:00 2001 From: Riot Translate Bot Date: Sun, 11 Jun 2017 20:40:20 +0100 Subject: [PATCH 051/120] Update from Weblate. (#1073) * Translated using Weblate (German) Currently translated at 93.4% (842 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/de/ * Translated using Weblate (Russian) Currently translated at 100.0% (901 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/ru/ * Added translation using Weblate (Arabic) * Translated using Weblate (Greek) Currently translated at 42.2% (381 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/el/ * Translated using Weblate (English (United States)) Currently translated at 91.8% (828 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/en_US/ * Translated using Weblate (Russian) Currently translated at 100.0% (901 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/ru/ * Translated using Weblate (German) Currently translated at 100.0% (901 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/de/ * Translated using Weblate (Hungarian) Currently translated at 20.0% (181 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/hu/ * Translated using Weblate (Chinese (Simplified)) Currently translated at 38.9% (351 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hans/ * Translated using Weblate (Arabic) Currently translated at 0.5% (5 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/ar/ * remote entirely spurious translation progress stats :/ --- src/i18n/strings/ar.json | 7 ++ src/i18n/strings/de_DE.json | 42 ++++----- src/i18n/strings/el.json | 23 +++-- src/i18n/strings/en_US.json | 19 +++- src/i18n/strings/hu.json | 8 +- src/i18n/strings/ru.json | 31 ++++--- src/i18n/strings/zh_Hans.json | 157 ++++++++++++++++++++++++++++++++-- 7 files changed, 237 insertions(+), 50 deletions(-) create mode 100644 src/i18n/strings/ar.json diff --git a/src/i18n/strings/ar.json b/src/i18n/strings/ar.json new file mode 100644 index 0000000000..30f0730a98 --- /dev/null +++ b/src/i18n/strings/ar.json @@ -0,0 +1,7 @@ +{ + "ar-iq": "العربية", + "Continue": "استمر", + "Username available": "اسم المستخدم متاح", + "Username not available": "الإسم المستخدم غير موجود", + "Something went wrong!": "هناك خطأ ما!" +} diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index fbd49a6800..bfdaf62399 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1,5 +1,5 @@ { - "Filter room members": "Raum-Benutzer filtern", + "Filter room members": "Raum-Mitglieder filtern", "You have no visible notifications": "Du hast keine sichtbaren Benachrichtigungen", "Invites": "Einladungen", "Favourites": "Favoriten", @@ -88,7 +88,7 @@ "Display name": "Anzeigename", "Email Address": "E-Mail-Adresse", "Email, name or matrix ID": "E-Mail, Name oder Matrix-ID", - "Encrypted messages will not be visible on clients that do not yet implement encryption": "Verschlüsselte Nachrichten werden an Clients nicht sichtbar sein, die Verschlüsselung noch nicht implementiert haben", + "Encrypted messages will not be visible on clients that do not yet implement encryption": "Verschlüsselte Nachrichten werden nicht in Matrix-Clients sichtbar sein, die die Verschlüsselung noch nicht implementiert haben", "Encrypted room": "Verschlüsselter Raum", "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", @@ -193,7 +193,7 @@ "Room name (optional)": "Raumname (optional)", "Scroll to unread messages": "Zu den ungelesenen Nachrichten scrollen", "Send Invites": "Einladungen senden", - "Send Reset Email": "E-Mail für das Zurücksetzen senden", + "Send Reset Email": "E-Mail zum Zurücksetzen senden", "sent an image": "hat ein Bild gesendet", "sent an invitation to": "sandte eine Einladung an", "sent a video": "hat ein Video gesendet", @@ -270,7 +270,7 @@ "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 do not have permission to post to this room": "Du hast keine Berechtigung an diesen Raum etwas zu senden", + "You do not have permission to post to this room": "Du hast keine Berechtigung, in diesem Raum etwas zu senden", "You have been invited to join this room by %(inviterName)s": "%(inviterName)s hat dich in diesen Raum eingeladen", "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 auf allen Geräten abgemeldet und wirst keine Push-Benachrichtigungen mehr erhalten. Um die Benachrichtigungen zu reaktivieren, musst du dich auf jedem Gerät neu anmelden", "you must be a": "nötige Rolle", @@ -392,7 +392,7 @@ "%(senderName)s unbanned %(targetName)s.": "%(senderName)s zog Bann für %(targetName)s zurück.", "Usage": "Verwendung", "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.", + "%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s hat die Einladung für %(targetName)s zurückgezogen.", "You need to be able to invite users to do that.": "Du musst die Berechtigung haben, Nutzer einzuladen, um diese Aktion ausführen zu können.", "You need to be logged in.": "Du musst angemeldet sein.", "There are no visible files in this room": "Es gibt keine sichtbaren Dateien in diesem Raum", @@ -564,7 +564,7 @@ "Click to mute audio": "Klicke um den Ton stumm zu stellen", "Click to mute video": "Klicken, um das Video stummzuschalten", "Command error": "Befehlsfehler", - "Decrypt %(text)s": "Entschlüssele %(text)s", + "Decrypt %(text)s": "%(text)s entschlüsseln", "Delete": "Löschen", "Devices": "Geräte", "Direct chats": "Direkte Chats", @@ -586,7 +586,7 @@ "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", - "'%(alias)s' is not a valid format for an alias": "'%(alias)s' hat kein valides Aliasformat", + "'%(alias)s' is not a valid format for an alias": "'%(alias)s' ist kein gültiges Alias-Format", "Join Room": "Dem Raum beitreten", "Kick": "Kicke", "Level": "Berechtigungslevel", @@ -607,7 +607,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.": "Server nicht verfügbar, überlastet oder etwas anderes lief falsch.", + "Server unavailable, overloaded, or something else went wrong.": "Server ist nicht verfügbar, überlastet oder ein anderer Fehler ist aufgetreten.", "Some of your messages have not been sent.": "Einige deiner Nachrichten wurden 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", @@ -626,7 +626,7 @@ "You seem to be in a call, are you sure you want to quit?": "Du scheinst in einem Anruf zu sein. Bist du sicher schließen zu wollen?", "You seem to be uploading files, are you sure you want to quit?": "Du scheinst Dateien hochzuladen. Bist du sicher schließen zu wollen?", "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Du wirst diese Änderung nicht rückgängig machen können, da der Nutzer dasselbe Berechtigungslevel wie du selbst erhalten wird.", - "Make Moderator": "Zum Moderator machen", + "Make Moderator": "Zum Moderator ernennen", "Room": "Raum", "(~%(searchCount)s results)": "(~%(searchCount)s Ergebnisse)", "Cancel": "Abbrechen", @@ -655,7 +655,7 @@ "%(oneUser)sjoined %(repeats)s times": "%(oneUser)shat den Raum %(repeats)s mal betreten", "%(severalUsers)sjoined": "%(severalUsers)shaben den Raum betreten", "%(oneUser)sjoined": "%(oneUser)shat den Raum betreten", - "%(severalUsers)sleft %(repeats)s times": "%(severalUsers)sverließen %(repeats)s mal den Raum", + "%(severalUsers)sleft %(repeats)s times": "%(severalUsers)shaben %(repeats)s mal den Raum verlassen", "%(oneUser)sleft %(repeats)s times": "%(oneUser)sging %(repeats)s mal", "%(severalUsers)sleft": "%(severalUsers)shaben den Raum verlassen", "%(oneUser)sleft": "%(oneUser)sging", @@ -674,7 +674,7 @@ "%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)szogen ihre Einladungen %(repeats)s mal zurück", "%(oneUser)shad their invitation withdrawn %(repeats)s times": "%(oneUser)szog seine/ihre Einladung %(repeats)s mal zurück", "%(severalUsers)shad their invitations withdrawn": "%(severalUsers)szogen ihre Einladungen zurück", - "%(oneUser)shad their invitation withdrawn": "%(oneUser)szog seine/ihre Einladung zurück", + "%(oneUser)shad their invitation withdrawn": "%(oneUser)swurde die ursprüngliche Einladung wieder entzogen", "were invited %(repeats)s times": "wurden %(repeats)s mal eingeladen", "was invited %(repeats)s times": "wurde %(repeats)s mal eingeladen", "were invited": "wurden eingeladen", @@ -751,8 +751,8 @@ "Verify device": "Gerät verifizieren", "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 der Name, der anderen Nutzern angezeigt wird, wenn du in Räumen sprichst. Welchen Anzeigenamen möchtest du wählen?", + "Continue anyway": "Trotzdem fortfahren", + "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 kommunizierst. 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 bislang noch nicht gesehen hast.", "Unknown devices": "Unbekannte Geräte", @@ -809,7 +809,7 @@ "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 zuvor eine aktuellere Version von Riot verwendet hast, ist deine Sitzung eventuell inkompatibel mit dieser Version. Bitte schließe dieses Fenster und kehre zur aktuelleren Version zurück.", "Blacklist": "Blockieren", "Unblacklist": "Entblockieren", - "Unverify": "Entverifizieren", + "Unverify": "Verifizierung widerrufen", "This Home Server would like to make sure you are not a robot": "Dieser Heimserver möchte sicherstellen, dass du kein Roboter bist", "Drop file here to upload": "Datei hier loslassen zum hochladen", "Idle": "Untätig", @@ -841,7 +841,7 @@ "Camera": "Kamera", "Device already verified!": "Gerät bereits verifiziert!", "Export": "Export", - "Failed to register as guest:": "Registrieren als Gast schlug fehl:", + "Failed to register as guest:": "Die Registrierung als Gast ist fehlgeschlagen:", "Guest access is disabled on this Home Server.": "Gastzugang ist auf diesem Heimserver deaktivert.", "Import": "Import", "Incorrect username and/or password.": "Inkorrekter Nutzername und/oder Passwort.", @@ -862,7 +862,7 @@ "Register": "Registrieren", "Save": "Speichern", "Setting a user name will create a fresh account": "Die Eingabe eines Benutzernamens wird ein neues Konto erzeugen", - "Tagged as: ": "Getaggt als: ", + "Tagged as: ": "Markiert als: ", "This Home Server does not support login using email address.": "Dieser Heimserver unterstützt den Login mittels E-Mail-Adresse nicht.", "There was a problem logging in.": "Es gab ein Problem beim anmelden.", "Unknown (user, device) pair:": "Unbekanntes (Nutzer-/Gerät-)Paar:", @@ -880,7 +880,7 @@ "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s hat das Raum-Bild für %(roomName)s geändert", "Hide removed messages": "Gelöschte Nachrichten verbergen", "Start new chat": "Neuen Chat starten", - "Disable markdown formatting": "Deaktiviere Markdown-Formatierung", + "Disable markdown formatting": "Markdown-Formatierung deaktivieren", "Add": "Hinzufügen", "%(count)s new messages.one": "%(count)s neue Nachricht", "%(count)s new messages.other": "%(count)s neue Nachrichten", @@ -900,13 +900,13 @@ "Room directory": "Raum-Verzeichnis", "Start chat": "Chat starten", "New Password": "Neues Passwort", - "Start chatting": "Starte plaudern", + "Start chatting": "Chat beginnen", "Start Chatting": "Starte Gespräche", "Click on the button below to start chatting!": "Unten auf den Button klicken, um einen Chat zu beginnen!", "Create a new chat or reuse an existing one": "Neuen Chat erstellen oder einen vorhandenen Chat fortsetzen", "You already have existing direct chats with this user:": "Du hast bereits direkte Chats mit diesem Nutzer:", - "Username available": "Nutzername verfügbar", - "Username not available": "Nutzername nicht verfügbar", + "Username available": "Benutzername ist verfügbar", + "Username not available": "Benutzername ist nicht verfügbar", "Something went wrong!": "Etwas ging schief!", "This will be your account name on the homeserver, or you can pick a different server.": "Dies wird dein zukünftiger Benutzername auf dem Heimserver. Alternativ kannst du auch einen anderen Server auswählen.", "If you already have a Matrix account you can log in instead.": "Wenn du bereits ein Matrix-Benutzerkonto hast, kannst du dich stattdessen auch direkt anmelden.", @@ -964,7 +964,7 @@ "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (Berechtigungslevel %(powerLevelNumber)s)", "Verified": "Verifiziert", "Would you like to accept or decline this invitation?": "Möchtest du diese Einladung akzeptieren oder ablehnen?", - "You have been banned from %(roomName)s by %(userName)s.": "Du wurdest von %(userName)s aus dem Raum %(roomName)s verbannt.", + "You have been banned from %(roomName)s by %(userName)s.": "Du wurdest von %(userName)s aus dem Raum %(roomName)s ausgeschlossen.", "You have been kicked from %(roomName)s by %(userName)s.": "Du wurdest von %(userName)s aus dem Raum %(roomName)s gekickt.", "You may wish to login with a different account, or add this email to this account.": "Du möchtest dich evtl. mit einem anderen Konto anmelden oder diese E-Mail-Adresse diesem Konto hinzufügen.", "Your home server does not support device management.": "Dein Heimserver unterstützt kein Geräte-Management.", diff --git a/src/i18n/strings/el.json b/src/i18n/strings/el.json index 725b5497a5..a38dddb35b 100644 --- a/src/i18n/strings/el.json +++ b/src/i18n/strings/el.json @@ -1,13 +1,13 @@ { "af": "Αφρικάνικα", "Error": "Σφάλμα", - "Failed to forget room %(errCode)s": "Δεν ήταν δυνατή η διαγραφή του δωματίου %(errCode)s", + "Failed to forget room %(errCode)s": "Δεν ήταν δυνατή η διαγραφή του δωματίου (%(errCode)s)", "Failed to join the room": "Δεν ήταν δυνατή η σύνδεση στο δωμάτιο", "Mute": "Σίγαση", "Notifications": "Ειδοποιήσεις", "Operation failed": "Η λειτουργία απέτυχε", - "Please Register": "Παρακαλώ εγγραφείτε", - "Remove": "Αφαίρεσε", + "Please Register": "Παρακαλούμε εγγραφείτε", + "Remove": "Αφαίρεση", "Search": "Αναζήτηση", "Settings": "Ρυθμίσεις", "unknown error code": "άγνωστος κωδικός σφάλματος", @@ -195,7 +195,7 @@ "%(senderDisplayName)s removed the room name.": "Ο χρήστης %(senderDisplayName)s διέγραψε το όνομα του δωματίου.", "Changes your display nickname": "Αλλάζει το όνομα χρήστη", "Click here": "Κάνε κλικ εδώ", - "Drop here %(toAction)s": "Σύρε εδώ %(toAction)s", + "Drop here %(toAction)s": "Απόθεση εδώ %(toAction)s", "Conference call failed.": "Η κλήση συνδιάσκεψης απέτυχε.", "powered by Matrix": "βασισμένο στο πρωτόκολλο Matrix", "Confirm password": "Επιβεβαίωση κωδικού", @@ -222,7 +222,7 @@ "device id: ": "id συσκευής: ", "Device key:": "Κλειδί Συσκευής:", "Devices": "Συσκευές", - "Direct Chat": "Απευθείας Συνομιλία", + "Direct Chat": "Απευθείας συνομιλία", "Direct chats": "Απευθείας συνομιλίες", "disabled": "ανενεργό", "Disinvite": "Ανακάλεσε πρόσκληση", @@ -244,7 +244,7 @@ "Existing Call": "Υπάρχουσα Κλήση", "Export": "Εξαγωγή", "Export E2E room keys": "Εξαγωγή κλειδιών κρυπτογραφίας για το δωμάτιο", - "Failed to change password. Is your password correct?": "Δεν ήταν δυνατή η αλλαγή του κωδικού. Είναι ο κωδικός σωστός;", + "Failed to change password. Is your password correct?": "Δεν ήταν δυνατή η αλλαγή του κωδικού πρόσβασης. Είναι σωστός ο κωδικός πρόσβασης;", "Failed to delete device": "Δεν ήταν δυνατή η διαγραφή της συσκευής", "Failed to join room": "Δεν ήταν δυνατή η σύνδεση στο δωμάτιο", "Failed to leave room": "Δεν ήταν δυνατή η αποχώρηση από το δωμάτιο", @@ -330,7 +330,7 @@ "": "<δεν υποστηρίζεται>", "No more results": "Δεν υπάρχουν άλλα αποτελέσματα", "No results": "Κανένα αποτέλεσμα", - "OK": "ΟΚ", + "OK": "Εντάξει", "olm version:": "έκδοση olm:", "Password": "Κωδικός", "Password:": "Κωδικός:", @@ -364,7 +364,7 @@ "cancel all": "ακύρωση όλων", "or": "ή", "Custom Server Options": "Προσαρμοσμένες ρυθμίσεις διακομιστή", - "Dismiss": "Αγνόησε", + "Dismiss": "Απόρριψη", "Monday": "Δευτέρα", "Tuesday": "Τρίτη", "Wednesday": "Τετάρτη", @@ -382,5 +382,10 @@ "%(severalUsers)sjoined and left %(repeats)s times": "%(severalUsers)s συνδέθηκαν και έφυγαν %(repeats)s φορές", "%(oneUser)sjoined and left %(repeats)s times": "%(oneUser)s συνδέθηκε και έφυγε %(repeats)s φορές", "%(severalUsers)sjoined and left": "%(severalUsers)s συνδέθηκαν και έφυγαν", - "%(oneUser)sjoined and left": "%(oneUser)s συνδέθηκε και έφυγε" + "%(oneUser)sjoined and left": "%(oneUser)s συνδέθηκε και έφυγε", + "Close": "Κλείσιμο", + "Create new room": "Δημιουργία νέου δωματίου", + "Room directory": "Ευρετήριο", + "Start chat": "Έναρξη συνομιλίας", + "Welcome page": "Αρχική σελίδα" } diff --git a/src/i18n/strings/en_US.json b/src/i18n/strings/en_US.json index 20041ef231..d857ff06cb 100644 --- a/src/i18n/strings/en_US.json +++ b/src/i18n/strings/en_US.json @@ -824,5 +824,22 @@ "Disable URL previews for this room (affects only you)": "Disable URL previews for this room (affects only you)", "$senderDisplayName changed the room avatar to ": "$senderDisplayName changed the room avatar to ", "%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s removed the room avatar.", - "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s changed the avatar for %(roomName)s" + "%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s changed the avatar for %(roomName)s", + "Active call (%(roomName)s)": "Active call (%(roomName)s)", + "Accept": "Accept", + "a room": "a room", + "Add": "Add", + "Admin tools": "Admin tools", + "And %(count)s more...": "And %(count)s more...", + "Alias (optional)": "Alias (optional)", + "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.", + "Click here to join the discussion!": "Click here to join the discussion!", + "Close": "Close", + "%(count)s new messages.one": "%(count)s new message", + "%(count)s new messages.other": "%(count)s new messages", + "Custom": "Custom", + "Decline": "Decline", + "Disable markdown formatting": "Disable markdown formatting", + "Disable Notifications": "Disable Notifications", + "Enable Notifications": "Enable Notifications" } diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 458d461b90..c6a86347f5 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -173,5 +173,11 @@ "Always show message timestamps": "Üzenet időbélyeg folyamatos megjelenítése", "Authentication": "Azonosítás", "Alias (optional)": "Becenév (opcionális)", - "all room members": "minden szoba tagság" + "all room members": "minden szoba tagság", + "Failed to change password. Is your password correct?": "Nem sikerült megváltoztatni a jelszót. Helyesen írtad be a jelszavadat?", + "Continue": "Folytatás", + "Create new room": "Új szoba létrehozása", + "sb": "Szorb", + "rm": "Rétoromán", + "tn": "Tswana" } diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 6bcfa680c6..f2d88bcc44 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -59,7 +59,7 @@ "Deops user with given id": "Deops пользователь с данным id", "Device ID": "Устройство ID", "Devices will not yet be able to decrypt history from before they joined the room": "Устройство еще не будет в состоянии дешифровать историю, до присоединения к комнате", - "Direct Chat": "Персональное сообщение", + "Direct Chat": "Приватный чат", "Disable inline URL previews by default": "Отключить встроенные предварительные просмотры URL по умолчанию", "Display name": "Отображаемое имя", "Displays action": "Отображение действий", @@ -75,7 +75,7 @@ "Error": "Ошибка", "Event information": "Event information", "Export E2E room keys": "Экспорт E2E ключей комнаты", - "Failed to change password. Is your password correct?": "Не удалось изменить пароль. Ваш пароль правильный?", + "Failed to change password. Is your password correct?": "Не удалось сменить пароль. Вы правильно ввели текущий пароль?", "Failed to forget room": "Не удалось забыть комнату", "Failed to leave room": "Не удалось выйти из комнаты", "Failed to reject invitation": "Не удалось отклонить приглашение", @@ -246,7 +246,7 @@ "Failed to set up conference call": "Не удалось установить конференц-вызов", "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", + "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId) изменил %(fromPowerLevel) на %(toPowerLevel)", "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.", @@ -258,7 +258,7 @@ "Missing room_id in request": "Отсутствует room_id в запросе", "Missing user_id in request": "Отсутствует user_id в запросе", "Must be viewing a room": "Посмотреть комнату", - "New Composer & Autocomplete": "Новый автор & Авто. заполнение", + "New Composer & Autocomplete": "Новый автор & Автозаполнение", "(not supported by this browser)": "(не поддерживаемый этим браузером)", "af": "Африкаанс", "ar-ae": "Арабский (О.А.Е)", @@ -355,12 +355,12 @@ "Friday": "Пятница", "Saturday": "Суббота", "Sunday": "Воскресенье", - "%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s", + "%(weekDayName)s %(time)s": "%(weekDayName) %(time)", "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 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.": "Вы не можете позвонить самим себе.", @@ -725,7 +725,7 @@ "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 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.", @@ -766,7 +766,7 @@ "You have enabled URL previews by default.": "Предпросмотр ссылок включен по-умолчанию.", "You have entered an invalid contact. Try using their Matrix ID or email address.": "Вы ввели неправильный адрес. Попробуйте использовать Matrix ID или адрес email.", "You need to enter a user name.": "Необходимо ввести имя пользователя.", - "You seem to be in a call, are you sure you want to quit?": "Вы участвуете в звонке, вы уверены, что хотите выйти?", + "You seem to be in a call, are you sure you want to quit?": "Звонок не завершен, вы уверены, что хотите выйти?", "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Вы не сможете отменить это действие так как даете пользователю такой же уровень доступа как и у вас.", "Set a Display Name": "Установить отображаемое имя", "(~%(searchCount)s results)": "(~%(searchCount)s результатов)", @@ -818,7 +818,7 @@ "\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" содержит неизвестные прежде устройства.", "Unknown Address": "Неизвестный адрес", "Unblacklist": "Удалить из черного списка", - "Blacklist": "Добавить в черный список", + "Blacklist": "Черный список", "Unverify": "Убрать верификацию", "Verify...": "Верифицировать...", "ex. @bob:example.com": "например @bob:example.com", @@ -872,7 +872,7 @@ "Add": "Добавить", "%(count)s new messages.one": "%(count)s новое сообщение", "%(count)s new messages.other": "%(count)s новых сообщений", - "Error: Problem communicating with the given homeserver.": "Ошибка: проблема коммуникаций с указанным Home Server'ом.", + "Error: Problem communicating with the given homeserver.": "Ошибка: проблема связи с указанным сервером.", "Failed to fetch avatar URL": "Ошибка получения аватара", "The phone number entered looks invalid": "Введенный номер телефона выглядит неправильным", "Uploading %(filename)s and %(count)s others.zero": "Загрузка %(filename)s", @@ -925,7 +925,7 @@ "Set": "Вводить", "Start authentication": "Начать идентификацию", "This room": "Эта комната", - "(~%(count)s results).other": "(~%(count)s results)", + "(~%(count)s results).other": "(~%(count) найдено)", "Device Name": "Имя устройства", "Custom": "Пользователь", "Decline": "Отклонить", @@ -947,6 +947,11 @@ "%(user)s is a": "%(user)s является", "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (уровень доступа %(powerLevelNumber)s)", "Verified": "Подтверждён", - "Would you like to accept or decline this invitation?": "Хотели бы вы это приглашение подтвердить или отклонить?", - "(~%(count)s results).one": "(~%(count)s Результат)" + "Would you like to accept or decline this invitation?": "Хотели бы вы подтвердить это приглашение или отклонить?", + "(~%(count)s results).one": "(~%(count)s Результат)", + "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Не удается подключиться к домашнему серверу - проверьте подключение, убедитесь, что ваш сертификат SSL homeserver's SSL certificate действителен, и расширение браузера не блокирует запросы.", + "You have been banned from %(roomName)s by %(userName)s.": "%(userName) забанил Вас в % (roomName).", + "You have been kicked from %(roomName)s by %(userName)s.": "%(userName) выгнал Вас из %(roomName).", + "You may wish to login with a different account, or add this email to this account.": "Вы можете войти в систему с другой учетной записью или добавить этот адрес email в эту учетную запись.", + "Your home server does not support device management.": "Ваш домашний сервер не поддерживает управление устройствами." } diff --git a/src/i18n/strings/zh_Hans.json b/src/i18n/strings/zh_Hans.json index e6eb5f632b..ad37ce9430 100644 --- a/src/i18n/strings/zh_Hans.json +++ b/src/i18n/strings/zh_Hans.json @@ -162,9 +162,9 @@ "de-at": "德语(奥地利)", "de-ch": "德语(瑞士)", "de": "德语", - "de-lu": "德语(卢森堡)", + "de-lu": "德语 (卢森堡)", "el": "希腊语", - "en-au": "英语(澳大利亚)", + "en-au": "英语 (澳大利亚)", "en": "英语", "zh-cn": "中文(中国)", "zh-hk": "中文(香港)", @@ -199,11 +199,158 @@ "Ed25519 fingerprint": "Ed25519指纹", "Invite new room members": "邀请新的聊天室成员", "Join Room": "加入聊天室", - "joined": "加入了", - "%(targetName)s joined the room.": "%(targetName)s 加入了聊天室。.", + "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": "新密码" + "New password": "新密码", + "ar-ae": "阿拉伯语 (阿联酋)", + "ar-bh": "阿拉伯语 (巴林)", + "ar-dz": "阿拉伯语 (阿尔及利亚)", + "ar-eg": "阿拉伯语 (埃及)", + "ar-iq": "阿拉伯语 (伊拉克)", + "ar-jo": "阿拉伯语 (约旦)", + "ar-kw": "阿拉伯语 (科威特)", + "ar-lb": "阿拉伯语 (黎巴嫩)", + "ar-ly": "阿拉伯语 (利比亚)", + "ar-ma": "阿拉伯语 (摩洛哥)", + "ar-ye": "阿拉伯语 (也门)", + "en-ca": "英语 (加拿大)", + "en-gb": "英语 (英国)", + "en-ie": "英语 (爱尔兰)", + "en-nz": "英语 (新西兰)", + "Add a topic": "新话题", + "Admin": "管理员", + "Admin tools": "管理工具", + "VoIP": "IP 电话", + "Missing Media Permissions, click here to request.": "没有媒体存储权限,点此获取。", + "No Microphones detected": "未检测到麦克风", + "No Webcams detected": "未检测到摄像头", + "No media permissions": "没有媒体存取权限", + "You may need to manually permit Riot to access your microphone/webcam": "你可能需要手动授权 Riot 使用你的麦克风或摄像头", + "Default Device": "默认设备", + "Microphone": "麦克风", + "Camera": "摄像头", + "Hide removed messages": "隐藏被删除的消息", + "Authentication": "认证", + "Alias (optional)": "别名 (可选)", + "%(items)s and %(remaining)s others": "%(items)s 和其它 %(remaining)s 个", + "%(items)s and one other": "%(items)s 和其它一个", + "%(items)s and %(lastItem)s": "%(items)s 和 %(lastItem)s", + "and %(overflowCount)s others...": "和其它 %(overflowCount)s 个...", + "and one other...": "和其它一个...", + "%(names)s and one other are typing": "%(names)s 和另一个人正在打字", + "anyone": "任何人", + "Anyone": "任何人", + "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 leave the room '%(roomName)s'?": "你确定要离开聊天室 “%(roomName)s” 吗?", + "Are you sure you want to reject the invitation?": "你确定要拒绝邀请吗?", + "Are you sure you want to upload the following files?": "你确定要上传这些文件吗?", + "Bans user with given id": "封禁指定 ID 的用户", + "Blacklisted": "已列入黑名单", + "Bug Report": "反馈漏洞", + "Bulk Options": "批量操作", + "Call Timeout": "通话超时", + "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "无法连接主服务器 - 请检查网络连接,确保你的主服务器 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": "修改密码", + "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s 将昵称从 %(oldDisplayName)s 改为了 %(displayName)s。", + "%(senderName)s changed their profile picture.": "%(senderName)s 修改了头像。", + "%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s 将聊天室名称改为 %(roomName)s。", + "%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s 移除了聊天室名称。", + "%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s 把话题修改为 “%(topic)s”。", + "Changes to who can read history will only apply to future messages in this room": "修改阅读历史的权限仅对此聊天室以后的消息有效", + "Changes your display nickname": "修改昵称", + "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.": "目前,修改密码会导致所有设备上的端对端密钥被重置,使得加密的聊天记录不再可读。除非你事先导出聊天室密钥,修改密码后再导入。这个问题未来会改善。", + "Clear Cache and Reload": "清除缓存并刷新", + "Clear Cache": "清除缓存", + "Click here to join the discussion!": "点此 加入讨论!", + "Click to mute audio": "点此静音", + "Click to mute video": "点此静音", + "click to reveal": "点击展开", + "Click to unmute video": "点此打开声音", + "Click to unmute audio": "点此打开声音", + "Close": "关闭", + "Command error": "命令错误", + "Commands": "命令", + "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": "此客户端不支持视频会议", + "%(count)s new messages.one": "%(count)s 条新消息", + "%(count)s new messages.other": "%(count)s 新消息", + "Create a new chat or reuse an existing one": "创建新聊天或使用已有的聊天", + "Custom": "自定义", + "Custom level": "自定义级别", + "Decline": "拒绝", + "Device already verified!": "设备已经验证!", + "Device ID:": "设备 ID:", + "device id: ": "设备 ID: ", + "Device key:": "设备密钥 :", + "Disable Notifications": "关闭消息通知", + "disabled": "已禁用", + "Disable markdown formatting": "禁用 Markdown 格式", + "Drop File Here": "把文件拖拽到这里", + "Email address (optional)": "电子邮件地址 (可选)", + "Enable Notifications": "启用消息通知", + "enabled": "已启用", + "Encrypted by a verified device": "由一个已验证的设备加密", + "Encrypted by an unverified device": "由一个未经验证的设备加密", + "Encryption is enabled in this room": "此聊天室启用了加密", + "Encryption is not enabled in this room": "此聊天室未启用加密", + "Enter passphrase": "输入密码", + "Error: Problem communicating with the given homeserver.": "错误: 与指定的主服务器通信时出错。", + "Export": "导出", + "Failed to fetch avatar URL": "获取 Avatar URL 失败", + "Failed to register as guest:": "无法注册为游客:", + "Failed to upload profile picture!": "无法上传头像!", + "Guest access is disabled on this Home Server.": "此服务器禁用了游客访问。", + "Home": "主页面", + "Import": "导入", + "Incoming call from %(name)s": "来自 %(name)s 的通话", + "Incoming video call from %(name)s": "来自 %(name)s 的视频通话", + "Incoming voice call from %(name)s": "来自 %(name)s 的视频通话", + "Incorrect username and/or password.": "用户名或密码错误。", + "%(senderName)s invited %(targetName)s.": "%(senderName)s 邀请了 %(targetName)s。", + "Invited": "已邀请", + "Invites": "邀请", + "Invites user with given id to current room": "邀请指定 ID 的用户加入当前聊天室", + "'%(alias)s' is not a valid format for an address": "'%(alias)s' 不是一个合法的电子邮件地址格式", + "'%(alias)s' is not a valid format for an alias": "'%(alias)s' 不是一个合法的昵称格式", + "%(displayName)s is typing": "%(displayName)s 正在输入", + "Sign in with": "第三方登录", + "Message not sent due to unknown devices being present": "消息未发送,因为有未知的设备存在", + "Missing room_id in request": "请求中没有 room_id", + "Missing user_id in request": "请求中没有 user_id", + "Mobile phone number": "手机号码", + "Mobile phone number (optional)": "手机号码 (可选)", + "Moderator": "管理员", + "Mute": "静音", + "my Matrix ID": "我的 Matrix ID", + "Name": "姓名", + "Never send encrypted messages to unverified devices from this device": "不要从此设备向未验证的设备发送消息", + "Never send encrypted messages to unverified devices in this room": "不要在此聊天室里向未验证的设备发送消息", + "New passwords don't match": "两次输入的新密码不符", + "none": "无", + "not set": "未设置", + "not specified": "未指定", + "Notifications": "通知", + "(not supported by this browser)": "(此浏览器不支持)", + "": "<不支持>", + "NOT verified": "未验证", + "No display name": "无昵称", + "No results": "没有更多结果", + "OK": "确定", + "Once encryption is enabled for a room it cannot be turned off again (for now)": "(目前) 一旦聊天室开启加密,就不能再关闭", + "Operation failed": "操作失败", + "Password": "密码", + "Password:": "密码:", + "Passwords can't be empty": "密码不能为空", + "Permissions": "权限", + "Phone": "电话" } From a389d5a3c487f72d4bc018f3f5da638a28be6057 Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 12 Jun 2017 15:50:36 +0100 Subject: [PATCH 052/120] Prepare changelog for v0.9.3 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 651303d3b9..16eeca8fa7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +Changes in [0.9.3](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.9.3) (2017-06-12) +=================================================================================================== +[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.9.3-rc.2...v0.9.3) + + * Add more translations & fix some existing ones + Changes in [0.9.3-rc.2](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.9.3-rc.2) (2017-06-09) ============================================================================================================= [Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.9.3-rc.1...v0.9.3-rc.2) From aef0a8025ca2c94c2a52c823d9bc7d4825b52e15 Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 12 Jun 2017 15:50:37 +0100 Subject: [PATCH 053/120] v0.9.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1b57cc6890..12a17900be 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "matrix-react-sdk", - "version": "0.9.3-rc.2", + "version": "0.9.3", "description": "SDK for matrix.org using React", "author": "matrix.org", "repository": { From f37608a4ea4f89cddcd57a381624285f8793c313 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Mon, 12 Jun 2017 16:45:36 +0100 Subject: [PATCH 054/120] Avoid React warning from _tJsx (#1078) --- src/languageHandler.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/languageHandler.js b/src/languageHandler.js index 6f64e5edec..1f0e6326e0 100644 --- a/src/languageHandler.js +++ b/src/languageHandler.js @@ -18,6 +18,7 @@ limitations under the License. import request from 'browser-request'; import counterpart from 'counterpart'; import q from 'q'; +import React from 'react'; import UserSettingsStore from './UserSettingsStore'; @@ -78,7 +79,7 @@ export function _t(...args) { * with multiple args, each arg representing a captured group of the matching regexp. * This function must return a JSX node. * - * @return A list of strings/JSX nodes. + * @return a React component containing the generated text */ export function _tJsx(jsxText, patterns, subs) { // convert everything to arrays @@ -121,7 +122,10 @@ export function _tJsx(jsxText, patterns, subs) { output.push(inputText.substr(match.index + match[0].length)); } - return output; + // this is a bit of a fudge to avoid the 'Each child in an array or iterator + // should have a unique "key" prop' error: we explicitly pass the generated + // nodes into React.createElement as children of a . + return React.createElement('span', null, ...output); } // Allow overriding the text displayed when no translation exists From c1d1a1377c71ce2a07e32bb8c9ace4f539360ef2 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 12 Jun 2017 20:15:14 +0100 Subject: [PATCH 055/120] allow forcing of TURN, pass account val per-call until UX is designed. Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/CallHandler.js | 19 ++++++------- src/components/structures/UserSettings.js | 33 +++++++++++++++-------- src/i18n/strings/en_EN.json | 3 ++- 3 files changed, 34 insertions(+), 21 deletions(-) diff --git a/src/CallHandler.js b/src/CallHandler.js index b2ccf65df7..e3fbe9e5e3 100644 --- a/src/CallHandler.js +++ b/src/CallHandler.js @@ -51,13 +51,14 @@ limitations under the License. * } */ -var MatrixClientPeg = require('./MatrixClientPeg'); -var PlatformPeg = require("./PlatformPeg"); -var Modal = require('./Modal'); -var sdk = require('./index'); +import MatrixClientPeg from './MatrixClientPeg'; +import UserSettingsStore from './UserSettingsStore'; +import PlatformPeg from './PlatformPeg'; +import Modal from './Modal'; +import sdk from './index'; import { _t } from './languageHandler'; -var Matrix = require("matrix-js-sdk"); -var dis = require("./dispatcher"); +import Matrix from 'matrix-js-sdk'; +import dis from './dispatcher'; global.mxCalls = { //room_id: MatrixCall @@ -257,9 +258,9 @@ function _onAction(payload) { } else if (members.length === 2) { console.log("Place %s call in %s", payload.type, payload.room_id); - var call = Matrix.createNewMatrixCall( - MatrixClientPeg.get(), payload.room_id - ); + const call = Matrix.createNewMatrixCall(MatrixClientPeg.get(), payload.room_id, { + forceTURN: UserSettingsStore.getLocalSetting('webRtcForceTURN', false), + }); placeCall(call); } else { // > 2 diff --git a/src/components/structures/UserSettings.js b/src/components/structures/UserSettings.js index e73f0335f0..5ac2e77256 100644 --- a/src/components/structures/UserSettings.js +++ b/src/components/structures/UserSettings.js @@ -110,6 +110,13 @@ const ANALYTICS_SETTINGS_LABELS = [ }, ]; +const WEBRTC_SETTINGS_LABELS = [ + { + id: 'webRtcForceTURN', + label: 'Disable Peer-to-Peer for 1:1 calls', + }, +]; + // Warning: Each "label" string below must be added to i18n/strings/en_EN.json, // since they will be translated when rendered. const CRYPTO_SETTINGS_LABELS = [ @@ -945,16 +952,13 @@ module.exports = React.createClass({ } }, - _renderWebRtcSettings: function() { + _renderWebRtcDeviceSettings: function() { if (this.state.mediaDevices === false) { - return
-

{_t('VoIP')}

-
-

- {_t('Missing Media Permissions, click here to request.')} -

-
-
; + return ( +

+ {_t('Missing Media Permissions, click here to request.')} +

+ ); } else if (!this.state.mediaDevices) return; const Dropdown = sdk.getComponent('elements.Dropdown'); @@ -1008,10 +1012,17 @@ module.exports = React.createClass({ } return
-

{_t('VoIP')}

-
{microphoneDropdown} {webcamDropdown} +
; + }, + + _renderWebRtcSettings: function() { + return
+

{_t('VoIP')}

+
+ { WEBRTC_SETTINGS_LABELS.map(this._renderLocalSetting) } + { this._renderWebRtcDeviceSettings() }
; }, diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 51d03db0b7..0172115824 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -907,5 +907,6 @@ "If you already have a Matrix account you can log in instead.": "If you already have a Matrix account you can log in instead.", "Your browser does not support the required cryptography extensions": "Your browser does not support the required cryptography extensions", "Not a valid Riot keyfile": "Not a valid Riot keyfile", - "Authentication check failed: incorrect password?": "Authentication check failed: incorrect password?" + "Authentication check failed: incorrect password?": "Authentication check failed: incorrect password?", + "Disable Peer-to-Peer for 1:1 calls": "Disable Peer-to-Peer for 1:1 calls" } From 2902b97ca82f6708e9da2fea85acf7c680d1cd5c Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Mon, 12 Jun 2017 22:30:16 +0000 Subject: [PATCH 056/120] Translated using Weblate (English (United States)) Currently translated at 100.0% (901 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/en_US/ --- src/i18n/strings/en_US.json | 75 ++++++++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/en_US.json b/src/i18n/strings/en_US.json index 4a7f75a8f6..34a87166eb 100644 --- a/src/i18n/strings/en_US.json +++ b/src/i18n/strings/en_US.json @@ -841,5 +841,78 @@ "Decline": "Decline", "Disable markdown formatting": "Disable markdown formatting", "Disable Notifications": "Disable Notifications", - "Enable Notifications": "Enable Notifications" + "Enable Notifications": "Enable Notifications", + "Create new room": "Create new room", + "Room directory": "Room directory", + "Start chat": "Start chat", + "Welcome page": "Welcome page", + "Create a new chat or reuse an existing one": "Create a new chat or reuse an existing one", + "Drop File Here": "Drop File Here", + "Encrypted by a verified device": "Encrypted by a verified device", + "Encrypted by an unverified device": "Encrypted by an unverified device", + "Encryption is enabled in this room": "Encryption is enabled in this room", + "Encryption is not enabled in this room": "Encryption is not enabled in this room", + "Error: Problem communicating with the given homeserver.": "Error: Problem communicating with the given homeserver.", + "Failed to fetch avatar URL": "Failed to fetch avatar URL", + "Failed to upload profile picture!": "Failed to upload profile picture!", + "Home": "Home", + "Incoming call from %(name)s": "Incoming call from %(name)s", + "Incoming video call from %(name)s": "Incoming video call from %(name)s", + "Incoming voice call from %(name)s": "Incoming voice call from %(name)s", + "Join as voice or video.": "Join as voice or video.", + "Last seen": "Last seen", + "Level:": "Level:", + "No display name": "No display name", + "Otherwise, click here to send a bug report.": "Otherwise, click here to send a bug report.", + "Private Chat": "Private Chat", + "Public Chat": "Public Chat", + "Reason: %(reasonText)s": "Reason: %(reasonText)s", + "Rejoin": "Rejoin", + "Room contains unknown devices": "Room contains unknown devices", + "%(roomName)s does not exist.": "%(roomName)s does not exist.", + "%(roomName)s is not accessible at this time.": "%(roomName)s is not accessible at this time.", + "Searching known users": "Searching known users", + "Seen by %(userName)s at %(dateTime)s": "Seen by %(userName)s at %(dateTime)s", + "Send anyway": "Send anyway", + "Set": "Set", + "Show Text Formatting Toolbar": "Show Text Formatting Toolbar", + "Start authentication": "Start authentication", + "The phone number entered looks invalid": "The phone number entered looks invalid", + "This invitation was sent to an email address which is not associated with this account:": "This invitation was sent to an email address which is not associated with this account:", + "This room": "This room", + "To link to a room it must have an address.": "To link to a room it must have an address.", + "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Unable to ascertain that the address this invite was sent to matches one associated with your account.", + "Undecryptable": "Undecryptable", + "Unencrypted message": "Unencrypted message", + "unknown caller": "unknown caller", + "Unnamed Room": "Unnamed Room", + "Unverified": "Unverified", + "Uploading %(filename)s and %(count)s others.zero": "Uploading %(filename)s", + "Uploading %(filename)s and %(count)s others.one": "Uploading %(filename)s and %(count)s other", + "Uploading %(filename)s and %(count)s others.other": "Uploading %(filename)s and %(count)s others", + "Upload new:": "Upload new:", + "%(user)s is a": "%(user)s is a", + "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (power %(powerLevelNumber)s)", + "Username invalid: %(errMessage)s": "Username invalid: %(errMessage)s", + "Verified": "Verified", + "Would you like to accept or decline this invitation?": "Would you like to accept or decline this invitation?", + "You already have existing direct chats with this user:": "You already have existing direct chats with this user:", + "You have been banned from %(roomName)s by %(userName)s.": "You have been banned from %(roomName)s by %(userName)s.", + "You have been kicked from %(roomName)s by %(userName)s.": "You have been kicked from %(roomName)s by %(userName)s.", + "You may wish to login with a different account, or add this email to this account.": "You may wish to login with a different account, or add this email to this account.", + "You must register to use this functionality": "You must register to use this functionality", + "Your home server does not support device management.": "Your home server does not support device management.", + "Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Resend all or cancel all now. You can also select individual messages to resend or cancel.", + "(~%(count)s results).one": "(~%(count)s result)", + "(~%(count)s results).other": "(~%(count)s results)", + "New Password": "New Password", + "Device Name": "Device Name", + "Start chatting": "Start chatting", + "Start Chatting": "Start Chatting", + "Click on the button below to start chatting!": "Click on the button below to start chatting!", + "Username available": "Username available", + "Username not available": "Username not available", + "Something went wrong!": "Something went wrong!", + "This will be your account name on the homeserver, or you can pick a different server.": "This will be your account name on the homeserver, or you can pick a different server.", + "If you already have a Matrix account you can log in instead.": "If you already have a Matrix account you can log in instead." } From a185f75bd30654404313069ffd9c34546318b9de Mon Sep 17 00:00:00 2001 From: Jean Date: Mon, 12 Jun 2017 15:42:30 +0000 Subject: [PATCH 057/120] Translated using Weblate (French) Currently translated at 99.1% (893 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 08997227a6..3188dc0e67 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -129,7 +129,7 @@ "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 to tag %(section)s": "Déposer ici pour marque comme %(section)s", + "Drop here to tag %(section)s": "Déposer ici pour marquer comme %(section)s", "Ed25519 fingerprint": "Empreinte Ed25519", "Email Address": "Adresse e-mail", "Email, name or matrix ID": "E-mail, nom ou identifiant Matrix", @@ -282,7 +282,7 @@ "Email": "E-mail", "Failed to unban": "Échec de l'amnistie", "Failed to upload file": "Échec du téléchargement", - "Failed to verify email address: make sure you clicked the link in the email": "Échec de la vérification de l’adresse e-mail: vérifiez que vous avez bien cliqué sur le lien dans l’e-mail", + "Failed to verify email address: make sure you clicked the link in the email": "Échec de la vérification de l’adresse e-mail : vérifiez que vous avez bien cliqué sur le lien dans l’e-mail", "Failure to create room": "Échec de la création du salon", "favourite": "favoris", "Favourites": "Favoris", @@ -290,7 +290,7 @@ "Filter room members": "Filtrer les membres par nom", "Forget room": "Oublier le salon", "Forgot your password?": "Mot de passe perdu ?", - "For security, this session has been signed out. Please sign in again.": "Par sécurité, la session a expiré. Merci de vous authentifer à nouveau.", + "For security, this session has been signed out. Please sign in again.": "Par sécurité, la session a expiré. Merci de vous authentifier à nouveau.", "Found a bug?": "Trouvé un problème ?", "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s à %(toPowerLevel)s", "Guest users can't create new rooms. Please register to create room and start a chat.": "Les visiteurs ne peuvent créer de nouveaux salons. Merci de vous enregistrer pour commencer une discussion.", @@ -453,7 +453,7 @@ "Show timestamps in 12 hour format (e.g. 2:30pm)": "Afficher l’heure au format am/pm (par ex. 2:30pm)", "Signed Out": "Déconnecté", "Sign in": "S'identifier", - "Sign out": "Se Déconnecter", + "Sign out": "Se déconnecter", "since the point in time of selecting this option": "depuis le moment où cette option a été sélectionnée", "since they joined": "depuis qu’ils ont rejoint le salon", "since they were invited": "depuis qu’ils ont été invités", @@ -498,7 +498,7 @@ "To link to a room it must have": "Pour avoir un lien vers un salon, il doit avoir", "to make a room or": "pour créer un salon ou", "To remove other users' messages": "Pour supprimer les messages des autres utilisateurs", - "To reset your password, enter the email address linked to your account": "Pour réinitialiser votre mot de passe, merci d’entrer l’adresse email liée à votre compte", + "To reset your password, enter the email address linked to your account": "Pour réinitialiser votre mot de passe, merci d’entrer l’adresse e-mail liée à votre compte", "to restore": "pour restaurer", "To send events of type": "Pour envoyer des évènements du type", "To send messages": "Pour envoyer des messages", @@ -527,7 +527,7 @@ "Unknown room %(roomId)s": "Salon inconnu %(roomId)s", "unknown": "inconnu", "Unmute": "Activer le son", - "uploaded a file": "télécharger un fichier", + "uploaded a file": "téléchargé un fichier", "Upload avatar": "Télécharger une photo de profil", "Upload Failed": "Erreur lors du téléchargement", "Upload Files": "Télécharger les fichiers", @@ -547,7 +547,7 @@ "VoIP conference finished.": "Conférence audio terminée.", "VoIP conference started.": "Conférence audio démarrée.", "VoIP is unsupported": "Appels voix non supportés", - "(warning: cannot be disabled again!)": "(attention: ne peut être désactivé !)", + "(warning: cannot be disabled again!)": "(attention : ne peut être désactivé !)", "Warning!": "Attention !", "Who can access this room?": "Qui peut accéder au salon ?", "Who can read history?": "Qui peut lire l'historique ?", @@ -562,13 +562,13 @@ "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", + "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 notifications, identifiez vous à nouveau sur tous les appareils", "You have no visible notifications": "Vous n'avez pas de notifications visibles", "you must be a": "vous devez être un", "You need to be able to invite users to do that.": "Vous devez être capable d’inviter des utilisateurs pour faire ça.", "You need to be logged in.": "Vous devez être connecté.", "You need to 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.", + "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 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", @@ -647,7 +647,7 @@ "%(oneUser)sleft and rejoined %(repeats)s times": "%(oneUser)sa quitté et à nouveau joint le salon %(repeats)s fois", "%(severalUsers)sleft and rejoined": "%(severalUsers)sont quitté et à nouveau joint le salon", "%(oneUser)sleft and rejoined": "%(oneUser)sa quitté et à nouveau joint le salon", - "%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)sotn rejeté leurs invitations %(repeats)s fois", + "%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)sont rejeté leurs invitations %(repeats)s fois", "%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)sa rejeté son invitation %(repeats)s fois", "%(severalUsers)srejected their invitations": "%(severalUsers)sont rejeté leurs invitations", "%(oneUser)srejected their invitation": "%(oneUser)sa rejeté son invitation", @@ -699,7 +699,7 @@ "Failed to invite user": "Echec lors de l'invitation de l'utilisateur", "Failed to invite the following users to the %(roomName)s room:": "Echec lors de l’invitation des utilisateurs suivants dans le salon %(roomName)s :", "Confirm Removal": "Confirmer la suppression", - "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é.", + "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 à 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.", @@ -831,7 +831,7 @@ "%(count)s new messages.one": "%(count)s nouveau message", "%(count)s new messages.other": "%(count)s nouveaux messages", "Disable markdown formatting": "Désactiver le formattage markdown", - "Error: Problem communicating with the given homeserver.": "Erreur: Problème de communication avec le homeserveur.", + "Error: Problem communicating with the given homeserver.": "Erreur : Problème de communication avec le homeserveur.", "Failed to fetch avatar URL": "Échec lors de la récupération de l’URL de l’avatar", "The phone number entered looks invalid": "Le numéro de téléphone entré semble être invalide", "This room is private or inaccessible to guests. You may be able to join if you register.": "Ce salon est privé ou interdits aux visiteurs. Vous pourrez peut-être le joindre si vous vous enregistrez.", @@ -861,7 +861,7 @@ "Admin tools": "Outils d'administration", "Alias (optional)": "Alias (optionnel)", "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Impossible de se connecter au homeserver - veuillez vérifier votre connexion, assurez vous que vous faite confiance au certificat SSL de votre homeserver, et qu'aucune extension de navigateur ne bloque de requêtes.", - "Click here to join the discussion!": "Cliquer ici pour joindre la discussion!", + "Click here to join the discussion!": "Cliquer ici pour joindre la discussion !", "Close": "Fermer", "Custom": "Personnaliser", "Decline": "Décliner", @@ -872,7 +872,7 @@ "Incoming call from %(name)s": "Appel entrant de %(name)s", "Incoming video call from %(name)s": "Appel vidéo entrant de %(name)s", "Incoming voice call from %(name)s": "Appel audio entrant de %(name)s", - "No display name": "", + "No display name": "Pas de nom d'affichage", "Otherwise, click here to send a bug report.": "Sinon, cliquer ici pour envoyer un rapport d'erreur.", "Private Chat": "Conversation Privée", "Public Chat": "Conversation Publique", @@ -883,7 +883,7 @@ "%(roomName)s is not accessible at this time.": "%(roomName)s n'est pas accessible pour le moment.", "Seen by %(userName)s at %(dateTime)s": "Vu par %(userName)s à %(dateTime)s", "Send anyway": "Envoyer quand même", - "Show Text Formatting Toolbar": "Afficher la Barre de Formatage de Texte", + "Show Text Formatting Toolbar": "Afficher la barre de formatage de texte", "Start authentication": "Démarrer une authentification", "This invitation was sent to an email address which is not associated with this account:": "Cette invitation a été envoyée à une adresse e-mail qui n'est pas associée avec ce compte :", "This room": "Ce salon", @@ -903,7 +903,12 @@ "Your home server does not support device management.": "Votre home server ne supporte pas la gestion d'appareils.", "(~%(count)s results).one": "(~%(count)s résultat)", "(~%(count)s results).other": "", - "Device Name": "", + "Device Name": "Nom de l'appareil", "Encrypted by a verified device": "Encrypté par un appareil verifié", - "Encrypted by an unverified device": "Encrypté par un apareil non-verifié" + "Encrypted by an unverified device": "Encrypté par un appareil non verifié", + "Encryption is enabled in this room": "L'encryption est activée sur ce salon", + "Encryption is not enabled in this room": "L'encryption n'est pas activée sur ce salon", + "Home": "Accueil", + "To link to a room it must have an address.": "Pour ajouter un lien à un salon celui-ci doit avoir une adresse.", + "Upload new:": "Télécharger un nouveau :" } From 4b07bd8584a7b9769dbfdbe91deb112a53737641 Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Tue, 13 Jun 2017 07:46:11 +0000 Subject: [PATCH 058/120] Translated using Weblate (French) Currently translated at 99.3% (895 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 3188dc0e67..9ff3f91ca0 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -910,5 +910,7 @@ "Encryption is not enabled in this room": "L'encryption n'est pas activée sur ce salon", "Home": "Accueil", "To link to a room it must have an address.": "Pour ajouter un lien à un salon celui-ci doit avoir une adresse.", - "Upload new:": "Télécharger un nouveau :" + "Upload new:": "Télécharger un nouveau :", + "And %(count)s more...": "Et %(count)s autres...", + "Join as voice or video.": "Joindre avec audio ou vidéo." } From 301080ab7ef6609828f5fc53b1468b61fb68060e Mon Sep 17 00:00:00 2001 From: Jean Date: Tue, 13 Jun 2017 07:46:24 +0000 Subject: [PATCH 059/120] Translated using Weblate (French) Currently translated at 99.4% (896 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 9ff3f91ca0..1c9399857a 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -912,5 +912,6 @@ "To link to a room it must have an address.": "Pour ajouter un lien à un salon celui-ci doit avoir une adresse.", "Upload new:": "Télécharger un nouveau :", "And %(count)s more...": "Et %(count)s autres...", - "Join as voice or video.": "Joindre avec audio ou vidéo." + "Join as voice or video.": "Joindre avec audio ou vidéo.", + "Last seen": "Dernier vu" } From 435c8885f070c24360eb9fdfdf271b5f2e0b08df Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Tue, 13 Jun 2017 07:46:32 +0000 Subject: [PATCH 060/120] Translated using Weblate (French) Currently translated at 99.5% (897 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 1c9399857a..6b5adc43b5 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -913,5 +913,6 @@ "Upload new:": "Télécharger un nouveau :", "And %(count)s more...": "Et %(count)s autres...", "Join as voice or video.": "Joindre avec audio ou vidéo.", - "Last seen": "Dernier vu" + "Last seen": "Dernier vu", + "Level:": "Niveau: " } From 2447b3fbbb161796a1bd7171969f4299baffb6bc Mon Sep 17 00:00:00 2001 From: Jean Date: Tue, 13 Jun 2017 07:46:52 +0000 Subject: [PATCH 061/120] Translated using Weblate (French) Currently translated at 99.5% (897 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 6b5adc43b5..d611c58107 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -914,5 +914,5 @@ "And %(count)s more...": "Et %(count)s autres...", "Join as voice or video.": "Joindre avec audio ou vidéo.", "Last seen": "Dernier vu", - "Level:": "Niveau: " + "Level:": "Niveau :" } From bf76c76e53faeca3a1e004b16da05d93cc2aa893 Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Tue, 13 Jun 2017 08:09:37 +0000 Subject: [PATCH 062/120] Translated using Weblate (French) Currently translated at 99.6% (898 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index d611c58107..071be66777 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -902,7 +902,7 @@ "You may wish to login with a different account, or add this email to this account.": "Vous souhaiteriez peut-être vous identifier avec un autre compte, ou ajouter cette e-mail à votre compte.", "Your home server does not support device management.": "Votre home server ne supporte pas la gestion d'appareils.", "(~%(count)s results).one": "(~%(count)s résultat)", - "(~%(count)s results).other": "", + "(~%(count)s results).other": "(~%(count)s résultats)", "Device Name": "Nom de l'appareil", "Encrypted by a verified device": "Encrypté par un appareil verifié", "Encrypted by an unverified device": "Encrypté par un appareil non verifié", From 0ea3b781639bdc0d8beb3acba1455aaec32eacc1 Mon Sep 17 00:00:00 2001 From: Jean Date: Tue, 13 Jun 2017 08:12:07 +0000 Subject: [PATCH 063/120] Translated using Weblate (French) Currently translated at 100.0% (901 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 071be66777..cbc324e57b 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -914,5 +914,8 @@ "And %(count)s more...": "Et %(count)s autres...", "Join as voice or video.": "Joindre avec audio ou vidéo.", "Last seen": "Dernier vu", - "Level:": "Niveau :" + "Level:": "Niveau :", + "Searching known users": "En recherche d'utilisateurs connus", + "Set": "Définit", + "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (pouvoir %(powerLevelNumber)s)" } From 387b3a12297f59cb5dee6bb7c6bb11e635efbf97 Mon Sep 17 00:00:00 2001 From: Justin Date: Mon, 12 Jun 2017 22:30:18 +0000 Subject: [PATCH 064/120] Translated using Weblate (Dutch) Currently translated at 27.6% (249 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nl/ --- src/i18n/strings/nl.json | 59 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json index 226706c884..c3c3ac2cfa 100644 --- a/src/i18n/strings/nl.json +++ b/src/i18n/strings/nl.json @@ -1,7 +1,7 @@ { "af": "Afrikaans", "ar-ae": "Arabisch (U.A.E.)", - "Direct Chat": "Privé gesprek", + "Direct Chat": "Privégesprek", "ar-bh": "Arabisch (Bahrain)", "ar-dz": "Arabisch (Algerije)", "ar-eg": "Arabisch (Egypte)", @@ -60,7 +60,7 @@ "es-ve": "Spaans (Venezuela)", "et": "Estlands", "eu": "Baskisch (Bask)", - "fa": "Farsi", + "fa": "Perzisch (Farsi)", "fi": "Fins", "fo": "Faeroesisch", "fr-be": "Frans (België)", @@ -199,5 +199,58 @@ "Confirm your new password": "Bevestig je nieuwe wachtwoord", "Continue": "Doorgaan", "Could not connect to the integration server": "Mislukt om te verbinden met de integratie server", - "Cancel": "Annuleer" + "Cancel": "Annuleren", + "a room": "een ruimte", + "Accept": "Accepteren", + "Active call (%(roomName)s)": "Actief gesprek (%(roomName)s)", + "Add": "Toevoegen", + "Add a topic": "Een onderwerp toevoegen", + "Admin tools": "Beheerhulpmiddelen", + "And %(count)s more...": "Nog %(count)s andere...", + "VoIP": "VoiP", + "Missing Media Permissions, click here to request.": "Ontbrekende mediatoestemmingen, klik hier om aan te vragen.", + "No Microphones detected": "Geen microfoons gevonden", + "No Webcams detected": "Geen webcams gevonden", + "No media permissions": "Geen mediatoestemmingen", + "You may need to manually permit Riot to access your microphone/webcam": "U moet Riot wellicht handmatig toestemming geven om uw microfoon/webcam te gebruiken", + "Default Device": "Standaardapparaat", + "Microphone": "Microfoon", + "Camera": "Camera", + "Hide removed messages": "Verwijderde berichten verbergen", + "Alias (optional)": "Alias (optioneel)", + "Anyone": "Iedereen", + "Are you sure you want to leave the room '%(roomName)s'?": "Weet u zeker dat u de ruimte '%(roomName)s' wil verlaten?", + "Are you sure you want to upload the following files?": "Weet u zeker dat u de volgende bestanden wil uploaden?", + "Click here to join the discussion!": "Klik hier om mee te doen aan de discussie!", + "Close": "Sluiten", + "%(count)s new messages.one": "%(count)s nieuw bericht", + "Create new room": "Een nieuwe kamer maken", + "Custom Server Options": "Aangepaste serverinstellingen", + "Dismiss": "Afwijzen", + "Drop here %(toAction)s": "%(toAction)s hier naartoe verplaatsen", + "Error": "Fout", + "Failed to forget room %(errCode)s": "Kamer vergeten mislukt %(errCode)s", + "Failed to join the room": "Kamer binnengaan mislukt", + "Favourite": "Favoriet", + "Mute": "Dempen", + "Notifications": "Meldingen", + "Operation failed": "Actie mislukt", + "Please Register": "Registreer alstublieft", + "powered by Matrix": "mogelijk gemaakt door Matrix", + "Remove": "Verwijderen", + "Room directory": "Kamerlijst", + "Settings": "Instellingen", + "Start chat": "Gesprek starten", + "unknown error code": "onbekende foutcode", + "Sunday": "Zondag", + "Monday": "Maandag", + "Tuesday": "Dinsdag", + "Wednesday": "Woensdag", + "Thursday": "Donderdag", + "Friday": "Vrijdag", + "Saturday": "Zaterdag", + "Welcome page": "Welkomstpagina", + "Search": "Zoeken", + "OK": "OK", + "Failed to change password. Is your password correct?": "Wachtwoord wijzigen mislukt. Is uw wachtwoord juist?" } From 6f2f3f3fb14bba9cd8067336d104d91fc55783d1 Mon Sep 17 00:00:00 2001 From: Tom Tryfonidis Date: Mon, 12 Jun 2017 14:13:23 +0000 Subject: [PATCH 065/120] Translated using Weblate (Greek) Currently translated at 96.8% (873 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/el/ --- src/i18n/strings/el.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/el.json b/src/i18n/strings/el.json index d85f21162b..c55fca9b0c 100644 --- a/src/i18n/strings/el.json +++ b/src/i18n/strings/el.json @@ -875,5 +875,8 @@ "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "Η προεπισκόπηση συνδέσμων είναι %(globalDisableUrlPreview)s από προεπιλογή για τους συμμετέχοντες του δωματίου.", "Ongoing conference call%(supportedText)s. %(joinText)s": "Κλήση συνδιάσκεψης σε εξέλιξη %(supportedText)s. %(joinText)s", "This will be your account name on the homeserver, or you can pick a different server.": "Αυτό θα είναι το όνομα του λογαριασμού σας στον διακομιστή , ή μπορείτε να επιλέξετε διαφορετικό διακομιστή.", - "If you already have a Matrix account you can log in instead.": "Αν έχετε ήδη λογαριασμό Matrix μπορείτε να συνδεθείτε." + "If you already have a Matrix account you can log in instead.": "Αν έχετε ήδη λογαριασμό Matrix μπορείτε να συνδεθείτε.", + "Failed to load timeline position": "Δεν ήταν δυνατή η φόρτωση της θέσης του χρονολόγιου", + "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Προσπαθήσατε να φορτώσετε ένα συγκεκριμένο σημείο στο χρονολόγιο του δωματίου, αλλά δεν έχετε δικαίωμα να δείτε το εν λόγω μήνυμα.", + "Tried to load a specific point in this room's timeline, but was unable to find it.": "Προσπαθήσατε να φορτώσετε ένα συγκεκριμένο σημείο στο χρονολόγιο του δωματίου, αλλά δεν καταφέρατε να το βρείτε." } From e2cd8a7233a66a44a3912df0fea599a19977b239 Mon Sep 17 00:00:00 2001 From: Robert Swain Date: Mon, 12 Jun 2017 08:24:39 +0000 Subject: [PATCH 066/120] Translated using Weblate (Swedish) Currently translated at 32.7% (295 of 901 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/sv/ --- src/i18n/strings/sv.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json index af5e27acc2..a3da858f07 100644 --- a/src/i18n/strings/sv.json +++ b/src/i18n/strings/sv.json @@ -291,5 +291,12 @@ "Failed to upload file": "Det gick inte att ladda upp filen", "Failed to verify email address: make sure you clicked the link in the email": "Det gick inte att bekräfta epostadressen, klicka på länken i epostmeddelandet", "Favourite": "Favorit", - "favourite": "favorit" + "favourite": "favorit", + "a room": "ett rum", + "Accept": "Godkänn", + "Access Token:": "Åtkomsttoken:", + "Active call (%(roomName)s)": "Aktiv samtal (%(roomName)s)", + "Add": "Lägg till", + "Admin tools": "Admin verktyg", + "And %(count)s more...": "Och %(count) till..." } From 1ce1984858a75bfad6ba54a0f5ff11968b0efbe6 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Tue, 13 Jun 2017 10:15:29 +0100 Subject: [PATCH 067/120] Fix regressions with starting a 1-1. --- src/components/views/dialogs/ChatInviteDialog.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/components/views/dialogs/ChatInviteDialog.js b/src/components/views/dialogs/ChatInviteDialog.js index 2f635fd670..e331432228 100644 --- a/src/components/views/dialogs/ChatInviteDialog.js +++ b/src/components/views/dialogs/ChatInviteDialog.js @@ -24,6 +24,7 @@ import DMRoomMap from '../../../utils/DMRoomMap'; import Modal from '../../../Modal'; import AccessibleButton from '../elements/AccessibleButton'; import q from 'q'; +import dis from '../../../dispatcher'; const TRUNCATE_QUERY_LIST = 40; const QUERY_USER_DIRECTORY_DEBOUNCE_MS = 200; @@ -102,7 +103,7 @@ module.exports = React.createClass({ const ChatCreateOrReuseDialog = sdk.getComponent( "views.dialogs.ChatCreateOrReuseDialog", ); - Modal.createDialog(ChatCreateOrReuseDialog, { + const close = Modal.createDialog(ChatCreateOrReuseDialog, { userId: userId, onFinished: (success) => { this.props.onFinished(success); @@ -112,14 +113,16 @@ module.exports = React.createClass({ action: 'start_chat', user_id: userId, }); + close(true); }, onExistingRoomSelected: (roomId) => { dis.dispatch({ action: 'view_room', - user_id: roomId, + room_id: roomId, }); + close(true); }, - }); + }).close; } else { this._startChat(inviteList); } From 10ba5f8c3c8efc5642dc8684fa74f80a491e0500 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Tue, 13 Jun 2017 11:03:22 +0100 Subject: [PATCH 068/120] Only process user_directory response if it's for the current query --- src/components/views/dialogs/ChatInviteDialog.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/components/views/dialogs/ChatInviteDialog.js b/src/components/views/dialogs/ChatInviteDialog.js index e331432228..9a14cb91d3 100644 --- a/src/components/views/dialogs/ChatInviteDialog.js +++ b/src/components/views/dialogs/ChatInviteDialog.js @@ -241,6 +241,11 @@ module.exports = React.createClass({ MatrixClientPeg.get().searchUserDirectory({ term: query, }).then((resp) => { + // The query might have changed since we sent the request, so ignore + // responses for anything other than the latest query. + if (this.state.query !== query) { + return; + } this._processResults(resp.results, query); }).catch((err) => { console.error('Error whilst searching user directory: ', err); From 89c7477bd658d99bc93963725f0bb96f0762dd6f Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 13 Jun 2017 11:39:37 +0100 Subject: [PATCH 069/120] Add script to copy translations between files So we can fill in missing translations from different dialects Use it to fill in missing strings in pt from pt_BR --- scripts/copy-i18n.py | 46 ++++++++++++++++++++ src/i18n/strings/pt.json | 92 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 137 insertions(+), 1 deletion(-) create mode 100755 scripts/copy-i18n.py diff --git a/scripts/copy-i18n.py b/scripts/copy-i18n.py new file mode 100755 index 0000000000..c3b8d6072e --- /dev/null +++ b/scripts/copy-i18n.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python + +import json +import sys +import os + +if len(sys.argv) < 3: + print "Usage: %s " % (sys.argv[0],) + print "eg. %s pt_BR.json pt.json" % (sys.argv[0],) + print + print "Adds any translations to that exist in but not " + sys.exit(1) + +srcpath = sys.argv[1] +dstpath = sys.argv[2] +tmppath = dstpath + ".tmp" + +with open(srcpath) as f: + src = json.load(f) + +with open(dstpath) as f: + dst = json.load(f) + +toAdd = {} +for k,v in src.iteritems(): + if k not in dst: + print "Adding %s" % (k,) + toAdd[k] = v + +# don't just json.dumps as we'll probably re-order all the keys (and they're +# not in any given order so we can't just sort_keys). Append them to the end. +with open(dstpath) as ifp: + with open(tmppath, 'w') as ofp: + for line in ifp: + strippedline = line.strip() + if strippedline in ('{', '}'): + ofp.write(line) + elif strippedline.endswith(','): + ofp.write(line) + else: + ofp.write(' '+strippedline) + ofp.write(",\n") + toAddStr = json.dumps(toAdd, indent=4, separators=(',', ': '), ensure_ascii=False, encoding="utf8")[1:-1] + ofp.write(toAddStr.encode('utf8')) + +os.rename(tmppath, dstpath) diff --git a/src/i18n/strings/pt.json b/src/i18n/strings/pt.json index 2552455932..356aab5e02 100644 --- a/src/i18n/strings/pt.json +++ b/src/i18n/strings/pt.json @@ -871,5 +871,95 @@ "Tagged as: ": "Marcado como: ", "You have disabled URL previews by default.": "Você desabilitou pré-visualizações de links por padrão.", "You have enabled URL previews by default.": "Você habilitou pré-visualizações de links por padrão.", - "You have entered an invalid contact. Try using their Matrix ID or email address.": "Você inseriu um contato inválido. Tente usar o ID Matrix ou endereço de e-mail da pessoa que está buscando." + "You have entered an invalid contact. Try using their Matrix ID or email address.": "Você inseriu um contato inválido. Tente usar o ID Matrix ou endereço de e-mail da pessoa que está buscando.", + + "You have been banned from %(roomName)s by %(userName)s.": "Você foi expulso(a) da sala %(roomName)s por %(userName)s.", + "Send anyway": "Enviar de qualquer maneira", + "This room": "Esta sala", + "Create new room": "Criar nova sala", + "Click on the button below to start chatting!": "Clique no botão abaixo para começar a conversar!", + "Disable markdown formatting": "Desabilitar formatação MarkDown", + "No display name": "Sem nome público de usuária(o)", + "This will be your account name on the homeserver, or you can pick a different server.": "Este será seu nome de conta no Servidor de Base , ou então você pode escolher um servidor diferente.", + "Uploading %(filename)s and %(count)s others.one": "Enviando o arquivo %(filename)s e %(count)s outros arquivos", + "Hide removed messages": "Ocultar mensagens removidas", + "You may wish to login with a different account, or add this email to this account.": "Você pode querer fazer login com uma conta diferente, ou adicionar este e-mail a esta conta.", + "Welcome page": "Página de boas vindas", + "Upload new:": "Enviar novo:", + "Private Chat": "Conversa privada", + "You must register to use this functionality": "Você deve se registrar para poder usar esta funcionalidade", + "And %(count)s more...": "E mais %(count)s...", + "Start chatting": "Iniciar a conversa", + "Public Chat": "Conversa pública", + "Uploading %(filename)s and %(count)s others.zero": "Enviando o arquivo %(filename)s", + "Room contains unknown devices": "Esta sala contém dispositivos desconhecidos", + "Admin tools": "Ferramentas de administração", + "You have been kicked from %(roomName)s by %(userName)s.": "Você foi removido(a) da sala %(roomName)s por %(userName)s.", + "Undecryptable": "Não é possível descriptografar", + "Incoming video call from %(name)s": "Chamada de vídeo de %(name)s recebida", + "Otherwise, click here to send a bug report.": "Caso contrário, clique aqui para enviar um relatório de erros.", + "To link to a room it must have an address.": "Para produzir um link para uma sala, ela necessita ter um endereço.", + "a room": "uma sala", + "Your home server does not support device management.": "O seu Servidor de Base não suporta o gerenciamento de dispositivos.", + "Searching known users": "Buscando pessoas conhecidas", + "Alias (optional)": "Apelido (opcional)", + "Active call (%(roomName)s)": "Chamada ativa (%(roomName)s)", + "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Não foi possível garantir que o endereço para o qual este convite foi enviado bate com alqum que está associado com sua conta.", + "Error: Problem communicating with the given homeserver.": "Erro: problema de comunicação com o Servidor de Base fornecido.", + "Failed to upload profile picture!": "Falha ao enviar a imagem de perfil!", + "This invitation was sent to an email address which is not associated with this account:": "Este convite foi enviado para um endereço de e-mail que não é associado a esta conta:", + "Show Text Formatting Toolbar": "Exibir barra de formatação de texto", + "Room directory": "Lista pública de salas", + "Failed to fetch avatar URL": "Falha ao obter a URL da imagem de perfil", + "Incoming call from %(name)s": "Chamada de %(name)s recebida", + "Last seen": "Último uso", + "Drop File Here": "Arraste o arquivo aqui", + "Start Chatting": "Iniciar a conversa", + "Would you like to accept or decline this invitation?": "Você gostaria de aceitar ou recusar este convite?", + "Seen by %(userName)s at %(dateTime)s": "Visto por %(userName)s em %(dateTime)s", + "Verified": "Verificado", + "%(roomName)s does not exist.": "%(roomName)s não existe.", + "Enable Notifications": "Habilitar notificações", + "Username not available": "Nome de usuária(o) indisponível", + "Encrypted by a verified device": "Criptografado por um dispositivo verificado", + "(~%(count)s results).other": "(~%(count)s resultados)", + "unknown caller": "a pessoa que está chamando é desconhecida", + "Start authentication": "Iniciar autenticação", + "(~%(count)s results).one": "(~%(count)s resultado)", + "New Password": "Nova senha", + "Username invalid: %(errMessage)s": "Nome de usuária(o) inválido: %(errMessage)s", + "Disable Notifications": "Desabilitar notificações", + "%(count)s new messages.one": "%(count)s nova mensagem", + "Device Name": "Nome do dispositivo", + "Incoming voice call from %(name)s": "Chamada de voz de %(name)s recebida", + "If you already have a Matrix account you can log in instead.": "Se você já tem uma conta Matrix, pode também fazer login.", + "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Não foi possível conectar ao Servidor de Base. Por favor, confira sua conectividade à internet, garanta que o certificado SSL do Servidor de Base é confiável, e que uma extensão do navegador não esteja bloqueando as requisições de rede.", + "Encrypted by an unverified device": "Criptografado por um dispositivo não verificado", + "Set": "Definir", + "Unencrypted message": "Mensagem não criptografada", + "Join as voice or video.": "Participar por voz ou por vídeo.", + "Uploading %(filename)s and %(count)s others.other": "Enviando o arquivo %(filename)s e %(count)s outros arquivos", + "Username available": "Nome de usuária(o) disponível", + "Close": "Fechar", + "Level:": "Nível:", + "%(count)s new messages.other": "%(count)s novas mensagens", + "Unverified": "Não verificado", + "Click here to join the discussion!": "Clique aqui para participar da conversa!", + "Decline": "Recusar", + "Custom": "Personalizado", + "Add": "Adicionar", + "%(user)s is a": "%(user)s é um(a)", + "Unnamed Room": "Sala sem nome", + "The phone number entered looks invalid": "O número de telefone inserido parece ser inválido", + "Rejoin": "Voltar a participar da sala", + "Create a new chat or reuse an existing one": "Criar uma nova conversa ou reutilizar alguma já existente", + "Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Reenviar todas ou cancelar todas agora. Você também pode selecionar mensagens individuais que queira reenviar ou cancelar.", + "Reason: %(reasonText)s": "Justificativa: %(reasonText)s", + "Home": "Início", + "Something went wrong!": "Algo deu errado!", + "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (nível de permissão %(powerLevelNumber)s)", + "Start chat": "Iniciar conversa pessoal", + "You already have existing direct chats with this user:": "Você já tem conversas pessoais com esta pessoa:", + "Accept": "Aceitar", + "%(roomName)s is not accessible at this time.": "%(roomName)s não está acessível neste momento." } From a6cdab81074c092abbe800b3af7d80e2d2265e9c Mon Sep 17 00:00:00 2001 From: Tom Tryfonidis Date: Tue, 13 Jun 2017 10:44:25 +0000 Subject: [PATCH 070/120] Translated using Weblate (Greek) Currently translated at 96.0% (868 of 904 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/el/ --- src/i18n/strings/el.json | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/i18n/strings/el.json b/src/i18n/strings/el.json index b4ec26f722..e757c05f81 100644 --- a/src/i18n/strings/el.json +++ b/src/i18n/strings/el.json @@ -34,7 +34,7 @@ "Account": "Λογαριασμός", "Add a topic": "Προσθήκη θέματος", "Add email address": "Προσθήκη διεύθυνσης ηλ. αλληλογραφίας", - "Add phone number": "Προσθήκη αριθμού τηλεφώνου", + "Add phone number": "Προσθήκη αριθμού", "Admin": "Διαχειριστής", "VoIP": "VoIP", "No Microphones detected": "Δεν εντοπίστηκε μικρόφωνο", @@ -180,7 +180,7 @@ "%(names)s and %(lastPerson)s are typing": "%(names)s και %(lastPerson)s γράφουν", "%(names)s and one other are typing": "%(names)s και ένας ακόμα γράφουν", "%(names)s and %(count)s others are typing": "%(names)s και %(count)s άλλοι γράφουν", - "Anyone who knows the room's link, including guests": "Οποιοσδήποτε γνωρίζει τον σύνδεσμο του δωματίου, συμπεριλαμβάνωντας τους επισκέπτες", + "Anyone who knows the room's link, including guests": "Οποιοσδήποτε γνωρίζει τον σύνδεσμο του δωματίου, συμπεριλαμβανομένων των επισκεπτών", "Blacklisted": "Στη μαύρη λίστα", "Can't load user settings": "Δεν είναι δυνατή η φόρτωση των ρυθμίσεων χρήστη", "Change Password": "Αλλαγή κωδικού πρόσβασης", @@ -188,8 +188,8 @@ "%(senderName)s changed their profile picture.": "Ο %(senderName)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\".", - "Clear Cache and Reload": "Καθάρισε την μνήμη και Ανανέωσε", - "Clear Cache": "Καθάρισε την μνήμη", + "Clear Cache and Reload": "Εκκαθάριση μνήμης και ανανέωση", + "Clear Cache": "Εκκαθάριση μνήμης", "Bans user with given id": "Αποκλεισμός χρήστη με το συγκεκριμένο αναγνωριστικό", "%(senderDisplayName)s removed the room name.": "Ο %(senderDisplayName)s διέγραψε το όνομα του δωματίου.", "Changes your display nickname": "Αλλάζει το ψευδώνυμο χρήστη", @@ -232,7 +232,7 @@ "Email address (optional)": "Ηλεκτρονική διεύθυνση (προαιρετικό)", "Email, name or matrix ID": "Ηλεκτρονική διεύθυνση, όνομα ή matrix ID", "Emoji": "Εικονίδια", - "enabled": "ενεργό", + "enabled": "ενεργή", "Encrypted messages will not be visible on clients that do not yet implement encryption": "Τα κρυπτογραφημένα μηνύματα δεν θα είναι ορατά σε εφαρμογές που δεν παρέχουν τη δυνατότητα κρυπτογράφησης", "Encrypted room": "Κρυπτογραφημένο δωμάτιο", "%(senderName)s ended the call.": "%(senderName)s τερμάτισε την κλήση.", @@ -275,7 +275,7 @@ "Incorrect username and/or password.": "Λανθασμένο όνομα χρήστη και/ή κωδικός.", "Incorrect verification code": "Λανθασμένος κωδικός επαλήθευσης", "Interface Language": "Γλώσσα διεπαφής", - "Invalid Email Address": "Μη έγκυρη διεύθυνση ηλ. αλληλογραφίας", + "Invalid Email Address": "Μη έγκυρη διεύθυνση ηλεκτρονικής αλληλογραφίας", "Invite new room members": "Προσκαλέστε νέα μέλη", "Invited": "Προσκλήθηκε", "Invites": "Προσκλήσεις", @@ -284,7 +284,7 @@ "Sign in with": "Συνδεθείτε με", "joined and left": "συνδέθηκε και έφυγε", "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.", "Kick": "Διώξε", @@ -297,12 +297,12 @@ "Level": "Επίπεδο", "List this room in %(domain)s's room directory?": "Να εμφανίζεται το δωμάτιο στο γενικό ευρετήριο του διακομιστή %(domain)s;", "Local addresses for this room:": "Τοπική διεύθυνση για το δωμάτιο:", - "Logged in as:": "Συνδέθηκες ως:", + "Logged in as:": "Συνδεθήκατε ως:", "Login as guest": "Σύνδεση ως επισκέπτης", "Logout": "Αποσύνδεση", "Low priority": "Χαμηλής προτεραιότητας", - "matrix-react-sdk version:": "έκδοση matrix-react-sdk:", - "Members only": "Μέλη μόνο", + "matrix-react-sdk version:": "Έκδοση matrix-react-sdk:", + "Members only": "Μόνο μέλη", "Message not sent due to unknown devices being present": "Το μήνυμα δεν στάλθηκε γιατί υπάρχουν άγνωστες συσκευές", "Mobile phone number": "Αριθμός κινητού τηλεφώνου", "Click here to fix": "Κάνε κλικ εδώ για διόρθωση", @@ -342,8 +342,8 @@ "Rooms": "Δωμάτια", "Save": "Αποθήκευση", "Search failed": "Η αναζήτηση απέτυχε", - "Send an encrypted message": "Στείλε ένα κρυπτογραφημένο μήνυμα", - "Send a message (unencrypted)": "Στείλε ένα μήνυμα (απλό)", + "Send an encrypted message": "Στείλτε ένα κρυπτογραφημένο μήνυμα", + "Send a message (unencrypted)": "Στείλτε ένα μήνυμα (μη κρυπτογραφημένο)", "sent an image": "έστειλε μια εικόνα", "sent a video": "έστειλε ένα βίντεο", "Server error": "Σφάλμα διακομιστή", @@ -472,7 +472,7 @@ "The file '%(fileName)s' failed to upload": "Απέτυχε η αποστολή του αρχείου '%(fileName)s'", "There was a problem logging in.": "Υπήρξε ένα πρόβλημα κατά την σύνδεση.", "This room has no local addresses": "Αυτό το δωμάτιο δεν έχει τοπικές διευθύνσεις", - "This doesn't appear to be a valid email address": "Δεν μοιάζει με μια έγκυρη διεύθυνση ηλ. αλληλογραφίας", + "This doesn't appear to be a valid email address": "Δεν μοιάζει με μια έγκυρη διεύθυνση ηλεκτρονικής αλληλογραφίας", "This phone number is already in use": "Αυτός ο αριθμός τηλεφώνου είναι ήδη σε χρήση", "This room": "Αυτό το δωμάτιο", "This room's internal ID is": "Το εσωτερικό αναγνωριστικό του δωματίου είναι", @@ -514,7 +514,7 @@ "Upload file": "Αποστολή αρχείου", "Upload new:": "Αποστολή νέου:", "Usage": "Χρήση", - "Use with caution": "Να χρησιμοποιείται με προσοχή", + "Use with caution": "Χρησιμοποιήστε τα με προσοχή", "User ID": "Αναγνωριστικό χρήστη", "User Interface": "Διεπαφή χρήστη", "%(user)s is a": "Ο %(user)s είναι", @@ -602,7 +602,7 @@ "Device name": "Όνομα συσκευής", "Device Name": "Όνομα συσκευής", "Device key": "Κλειδί συσκευής", - "Verify device": "Επαλήθευση συσκευής", + "Verify device": "Επιβεβαίωση συσκευής", "Unable to restore session": "Αδυναμία επαναφοράς συνεδρίας", "Continue anyway": "Συνέχεια οπωσδήποτε", "Unknown devices": "Άγνωστες συσκευές", @@ -628,7 +628,7 @@ "Error decrypting video": "Σφάλμα κατά την αποκρυπτογράφηση του βίντεο", "Add an Integration": "Προσθήκη ενσωμάτωσης", "URL Previews": "Προεπισκόπηση συνδέσμων", - "Enable URL previews for this room (affects only you)": "Ενεργοποίηση της προεπισκόπησης συνδέσμων γι' αυτό το δωμάτιο (επηρεάζει μόνο εσάς)", + "Enable URL previews for this room (affects only you)": "Ενεργοποίηση της προεπισκόπησης συνδέσμων για αυτό το δωμάτιο (επηρεάζει μόνο εσάς)", "Drop file here to upload": "Αποθέστε εδώ για αποστολή", "for %(amount)ss": "για %(amount)ss", "for %(amount)sm": "για %(amount)sm", @@ -680,7 +680,7 @@ "Never send encrypted messages to unverified devices from this device": "Να μη γίνει ποτέ αποστολή κρυπτογραφημένων μηνυμάτων σε ανεπιβεβαίωτες συσκευές από αυτή τη συσκευή", "Never send encrypted messages to unverified devices in this room": "Να μη γίνει ποτέ αποστολή κρυπτογραφημένων μηνυμάτων σε ανεπιβεβαίωτες συσκευές σε αυτό το δωμάτιο", "Never send encrypted messages to unverified devices in this room from this device": "Να μη γίνει ποτέ αποστολή κρυπτογραφημένων μηνυμάτων σε ανεπιβεβαίωτες συσκευές, σε αυτό το δωμάτιο, από αυτή τη συσκευή", - "New Composer & Autocomplete": "Νέος συνθέτης και αυτόματη συμπλήρωση", + "New Composer & Autocomplete": "Νέος επεξεργαστής κειμένου και αυτόματη συμπλήρωση", "not set": "δεν έχει οριστεί", "not specified": "μη καθορισμένο", "NOT verified": "ΧΩΡΙΣ επαλήθευση", @@ -785,7 +785,7 @@ "You are registering with %(SelectedTeamName)s": "Εγγραφείτε με %(SelectedTeamName)s", "Removed or unknown message type": "Αφαιρέθηκε ή άγνωστος τύπος μηνύματος", "Disable URL previews by default for participants in this room": "Απενεργοποίηση της προεπισκόπησης συνδέσμων για όλους τους συμμετέχοντες στο δωμάτιο", - "Disable URL previews for this room (affects only you)": "Ενεργοποίηση της προεπισκόπησης συνδέσμων για αυτό το δωμάτιο (επηρεάζει μόνο εσάς)", + "Disable URL previews for this room (affects only you)": "Απενεργοποίηση της προεπισκόπησης συνδέσμων για αυτό το δωμάτιο (επηρεάζει μόνο εσάς)", " (unsupported)": " (μη υποστηριζόμενο)", "$senderDisplayName changed the room avatar to ": "Ο $senderDisplayName άλλαξε την εικόνα του δωματίου σε ", "Missing Media Permissions, click here to request.": "Λείπουν τα δικαιώματα πολύμεσων, κάντε κλικ για να ζητήσετε.", From 4eb74193351c2639eea37f40b8216e55bfbc3d7c Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 13 Jun 2017 11:54:28 +0100 Subject: [PATCH 071/120] Don't put in spurious newline --- scripts/copy-i18n.py | 7 ++++--- src/i18n/strings/pt.json | 1 - 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/copy-i18n.py b/scripts/copy-i18n.py index c3b8d6072e..07b1271239 100755 --- a/scripts/copy-i18n.py +++ b/scripts/copy-i18n.py @@ -38,9 +38,10 @@ with open(dstpath) as ifp: elif strippedline.endswith(','): ofp.write(line) else: - ofp.write(' '+strippedline) - ofp.write(",\n") - toAddStr = json.dumps(toAdd, indent=4, separators=(',', ': '), ensure_ascii=False, encoding="utf8")[1:-1] + ofp.write(' '+strippedline+',') + toAddStr = json.dumps(toAdd, indent=4, separators=(',', ': '), ensure_ascii=False, encoding="utf8").strip("{}\n") + ofp.write("\n") ofp.write(toAddStr.encode('utf8')) + ofp.write("\n") os.rename(tmppath, dstpath) diff --git a/src/i18n/strings/pt.json b/src/i18n/strings/pt.json index 356aab5e02..a8dd8758d4 100644 --- a/src/i18n/strings/pt.json +++ b/src/i18n/strings/pt.json @@ -872,7 +872,6 @@ "You have disabled URL previews by default.": "Você desabilitou pré-visualizações de links por padrão.", "You have enabled URL previews by default.": "Você habilitou pré-visualizações de links por padrão.", "You have entered an invalid contact. Try using their Matrix ID or email address.": "Você inseriu um contato inválido. Tente usar o ID Matrix ou endereço de e-mail da pessoa que está buscando.", - "You have been banned from %(roomName)s by %(userName)s.": "Você foi expulso(a) da sala %(roomName)s por %(userName)s.", "Send anyway": "Enviar de qualquer maneira", "This room": "Esta sala", From 70fd9b0283d70d572ebad6346a1fc6a559cb2d79 Mon Sep 17 00:00:00 2001 From: Krombel Date: Tue, 13 Jun 2017 11:01:17 +0000 Subject: [PATCH 072/120] Translated using Weblate (German) Currently translated at 100.0% (904 of 904 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/de/ --- src/i18n/strings/de_DE.json | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 78a71e8de6..06d0408728 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -615,8 +615,8 @@ "%(actionVerb)s this person?": "Diese Person %(actionVerb)s?", "This room has no local addresses": "Dieser Raum hat keine lokale Adresse", "This room is private or inaccessible to guests. You may be able to join if you register": "Dieser Raum ist privat oder für Gäste nicht zugänglich. Du kannst jedoch eventuell beitreten, wenn du dich registrierst", - "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Versuchte einen spezifischen Punkt in der Raum-Chronik zu laden, aber du hast keine Berechtigung die angeforderte Nachricht anzuzeigen.", - "Tried to load a specific point in this room's timeline, but was unable to find it.": "Der Versuch, einen spezifischen Punkt im Chatverlauf zu laden, ist fehlgeschlagen. Der Punkt konnte nicht gefunden werden.", + "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Es wurde versucht, einen bestimmten Punkt im Chatverlauf dieses Raumes zu laden. Dir fehlt jedoch die Berechtigung, die betreffende Nachricht zu sehen.", + "Tried to load a specific point in this room's timeline, but was unable to find it.": "Es wurde versucht, einen bestimmten Punkt im Chatverlauf dieses Raumes zu laden, der Punkt konnte jedoch nicht gefunden werden.", "Turn Markdown off": "Markdown deaktiveren", "Turn Markdown on": "Markdown einschalten", "Unable to load device list": "Geräteliste konnte nicht geladen werden", @@ -885,8 +885,6 @@ "Failed to fetch avatar URL": "Abrufen der Avatar-URL fehlgeschlagen", "The phone number entered looks invalid": "Die eingegebene Telefonnummer scheint ungültig zu sein", "This room is private or inaccessible to guests. You may be able to join if you register.": "Dieser Raum ist privat oder für Gäste nicht betretbar. Du kannst evtl. beitreten wenn du dich registrierst.", - "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Es wurde versucht, einen bestimmten Punkt im Chatverlauf dieses Raumes zu laden. Dir fehlt jedoch die Berechtigung, die betreffende Nachricht zu sehen.", - "Tried to load a specific point in this room's timeline, but was unable to find it.": "Es wurde versucht, einen bestimmten Punkt im Chatverlauf dieses Raumes zu laden, der Punkt konnte jedoch nicht gefunden werden.", "Uploading %(filename)s and %(count)s others.zero": "%(filename)s wird hochgeladen", "Uploading %(filename)s and %(count)s others.one": "%(filename)s und %(count)s weitere Dateien werden hochgeladen", "Uploading %(filename)s and %(count)s others.other": "%(filename)s und %(count)s weitere Dateien werden hochgeladen", @@ -967,5 +965,12 @@ "Your home server does not support device management.": "Dein Heimserver unterstützt kein Geräte-Management.", "(~%(count)s results).one": "(~%(count)s Ergebnis)", "(~%(count)s results).other": "(~%(count)s Ergebnis)", - "Device Name": "Geräte-Name" + "Device Name": "Geräte-Name", + "(could not connect media)": "(Medienverbindung nicht herstellbar)", + "(no answer)": "(keine Antwort)", + "(unknown failure: %(reason)s)": "(unbekannter Fehler: %(reason)s)", + "Your browser does not support the required cryptography extensions": "Dein Browser unterstützt die benötigten Kryptografie-Erweiterungen nicht", + "Not a valid Riot keyfile": "Keine valide Riot-Schlüsseldatei", + "Authentication check failed: incorrect password?": "Authentifizierung fehlgeschlagen: Falsches Passwort?", + "Disable Peer-to-Peer for 1:1 calls": "Deaktiviere direkte Verbindung für 1-zu-1-Anrufe" } From ad7c83547120540b30f399f26690e3e31569e407 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 13 Jun 2017 12:18:48 +0100 Subject: [PATCH 073/120] width and height must be int otherwise synapse cries Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/views/messages/RoomAvatarEvent.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/views/messages/RoomAvatarEvent.js b/src/components/views/messages/RoomAvatarEvent.js index 525f7b81ee..ed790953dc 100644 --- a/src/components/views/messages/RoomAvatarEvent.js +++ b/src/components/views/messages/RoomAvatarEvent.js @@ -62,8 +62,8 @@ module.exports = React.createClass({ var url = ContentRepo.getHttpUriForMxc( MatrixClientPeg.get().getHomeserverUrl(), ev.getContent().url, - 14 * window.devicePixelRatio, - 14 * window.devicePixelRatio, + Math.ceil(14 * window.devicePixelRatio), + Math.ceil(14 * window.devicePixelRatio), 'crop' ); From 1ea9ed5d8c4c599e68edff0a24b21b9f0cc40328 Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Tue, 13 Jun 2017 09:45:07 +0100 Subject: [PATCH 074/120] remove RoomViewStore listener from MatrixChat on unmount ... to avoid spurious warnings from the tests. --- src/components/structures/MatrixChat.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index 1065fa9f9f..a2a2c30889 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -186,7 +186,7 @@ module.exports = React.createClass({ componentWillMount: function() { SdkConfig.put(this.props.config); - RoomViewStore.addListener(this._onRoomViewStoreUpdated); + this._roomViewStoreToken = RoomViewStore.addListener(this._onRoomViewStoreUpdated); this._onRoomViewStoreUpdated(); if (!UserSettingsStore.getLocalSetting('analyticsOptOut', false)) Analytics.enable(); @@ -295,6 +295,7 @@ module.exports = React.createClass({ UDEHandler.stopListening(); window.removeEventListener("focus", this.onFocus); window.removeEventListener('resize', this.handleResize); + this._roomViewStoreToken.remove(); }, componentDidUpdate: function() { From 939f6d07984cd51241357a5e61bf76bd46179fcf Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Tue, 13 Jun 2017 12:46:49 +0100 Subject: [PATCH 075/120] Factor createMatrixClient out from MatrixClientPeg ... so that it can be used elsewhere. --- src/MatrixClientPeg.js | 21 ++----------- src/utils/createMatrixClient.js | 55 +++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 19 deletions(-) create mode 100644 src/utils/createMatrixClient.js diff --git a/src/MatrixClientPeg.js b/src/MatrixClientPeg.js index 94e55a8d8a..47370e2142 100644 --- a/src/MatrixClientPeg.js +++ b/src/MatrixClientPeg.js @@ -16,12 +16,10 @@ limitations under the License. 'use strict'; -import Matrix from 'matrix-js-sdk'; import utils from 'matrix-js-sdk/lib/utils'; import EventTimeline from 'matrix-js-sdk/lib/models/event-timeline'; import EventTimelineSet from 'matrix-js-sdk/lib/models/event-timeline-set'; - -const localStorage = window.localStorage; +import createMatrixClient from './utils/createMatrixClient'; interface MatrixClientCreds { homeserverUrl: string, @@ -129,22 +127,7 @@ class MatrixClientPeg { timelineSupport: true, }; - if (localStorage) { - opts.sessionStore = new Matrix.WebStorageSessionStore(localStorage); - } - if (window.indexedDB && localStorage) { - // FIXME: bodge to remove old database. Remove this after a few weeks. - window.indexedDB.deleteDatabase("matrix-js-sdk:default"); - - opts.store = new Matrix.IndexedDBStore({ - indexedDB: window.indexedDB, - dbName: "riot-web-sync", - localStorage: localStorage, - workerScript: this.indexedDbWorkerScript, - }); - } - - this.matrixClient = Matrix.createClient(opts); + this.matrixClient = createMatrixClient(opts); // we're going to add eventlisteners for each matrix event tile, so the // potential number of event listeners is quite high. diff --git a/src/utils/createMatrixClient.js b/src/utils/createMatrixClient.js new file mode 100644 index 0000000000..5effd63f2a --- /dev/null +++ b/src/utils/createMatrixClient.js @@ -0,0 +1,55 @@ +/* +Copyright 2017 Vector Creations Ltd + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import Matrix from 'matrix-js-sdk'; + +const localStorage = window.localStorage; + +/** + * Create a new matrix client, with the persistent stores set up appropriately + * (using localstorage/indexeddb, etc) + * + * @param {Object} opts options to pass to Matrix.createClient. This will be + * extended with `sessionStore` and `store` members. + * + * @param {string} indexedDbWorkerScript Optional URL for a web worker script + * for IndexedDB store operations. If not given, indexeddb ops are done on + * the main thread. + * + * @returns {MatrixClient} the newly-created MatrixClient + */ +export default function createMatrixClient(opts, indexedDbWorkerScript) { + const storeOpts = {}; + + if (localStorage) { + storeOpts.sessionStore = new Matrix.WebStorageSessionStore(localStorage); + } + if (window.indexedDB && localStorage) { + // FIXME: bodge to remove old database. Remove this after a few weeks. + window.indexedDB.deleteDatabase("matrix-js-sdk:default"); + + storeOpts.store = new Matrix.IndexedDBStore({ + indexedDB: window.indexedDB, + dbName: "riot-web-sync", + localStorage: localStorage, + workerScript: indexedDbWorkerScript, + }); + } + + opts = Object.assign(storeOpts, opts); + + return Matrix.createClient(opts); +} From 68e1a7be7424d2d43caf71f5e5c05d52b9e7c07a Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Wed, 31 May 2017 17:28:46 +0100 Subject: [PATCH 076/120] Clear persistent storage on login and logout Make sure that we don't end up with sensitive data sitting around in the stores from a previous session. --- src/Lifecycle.js | 107 +++++++++++++++--------- src/components/structures/MatrixChat.js | 2 + 2 files changed, 71 insertions(+), 38 deletions(-) diff --git a/src/Lifecycle.js b/src/Lifecycle.js index 54014a0166..9b806ba8b7 100644 --- a/src/Lifecycle.js +++ b/src/Lifecycle.js @@ -19,6 +19,7 @@ import q from 'q'; import Matrix from 'matrix-js-sdk'; import MatrixClientPeg from './MatrixClientPeg'; +import createMatrixClient from './utils/createMatrixClient'; import Analytics from './Analytics'; import Notifier from './Notifier'; import UserActivity from './UserActivity'; @@ -48,7 +49,7 @@ import { _t } from './languageHandler'; * * 4. it attempts to auto-register as a guest user. * - * If any of steps 1-4 are successful, it will call {setLoggedIn}, which in + * If any of steps 1-4 are successful, it will call {_doSetLoggedIn}, which in * turn will raise on_logged_in and will_start_client events. * * @param {object} opts @@ -105,14 +106,13 @@ export function loadSession(opts) { fragmentQueryParams.guest_access_token ) { console.log("Using guest access credentials"); - setLoggedIn({ + return _doSetLoggedIn({ userId: fragmentQueryParams.guest_user_id, accessToken: fragmentQueryParams.guest_access_token, homeserverUrl: guestHsUrl, identityServerUrl: guestIsUrl, guest: true, - }); - return q(); + }, true); } return _restoreFromLocalStorage().then((success) => { @@ -141,14 +141,14 @@ function _loginWithToken(queryParams, defaultDeviceDisplayName) { }, ).then(function(data) { console.log("Logged in with token"); - setLoggedIn({ + return _doSetLoggedIn({ userId: data.user_id, deviceId: data.device_id, accessToken: data.access_token, homeserverUrl: queryParams.homeserver, identityServerUrl: queryParams.identityServer, guest: false, - }); + }, true); }, (err) => { console.error("Failed to log in with login token: " + err + " " + err.data); @@ -172,14 +172,14 @@ function _registerAsGuest(hsUrl, isUrl, defaultDeviceDisplayName) { }, }).then((creds) => { console.log("Registered as guest: %s", creds.user_id); - setLoggedIn({ + return _doSetLoggedIn({ userId: creds.user_id, deviceId: creds.device_id, accessToken: creds.access_token, homeserverUrl: hsUrl, identityServerUrl: isUrl, guest: true, - }); + }, true); }, (err) => { console.error("Failed to register as guest: " + err + " " + err.data); }); @@ -216,15 +216,14 @@ function _restoreFromLocalStorage() { if (accessToken && userId && hsUrl) { console.log("Restoring session for %s", userId); try { - setLoggedIn({ + return _doSetLoggedIn({ userId: userId, deviceId: deviceId, accessToken: accessToken, homeserverUrl: hsUrl, identityServerUrl: isUrl, guest: isGuest, - }); - return q(true); + }, false).then(() => true); } catch (e) { return _handleRestoreFailure(e); } @@ -245,7 +244,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, @@ -266,7 +265,7 @@ function _handleRestoreFailure(e) { return def.promise.then((success) => { if (success) { // user clicked continue. - _clearLocalStorage(); + _clearStorage(); return false; } @@ -281,13 +280,32 @@ export function initRtsClient(url) { } /** - * Transitions to a logged-in state using the given credentials + * Transitions to a logged-in state using the given credentials. + * + * Starts the matrix client and all other react-sdk services that + * listen for events while a session is logged in. + * + * Also stops the old MatrixClient and clears old credentials/etc out of + * storage before starting the new client. + * * @param {MatrixClientCreds} credentials The credentials to use */ export function setLoggedIn(credentials) { - credentials.guest = Boolean(credentials.guest); + stopMatrixClient(); + _doSetLoggedIn(credentials, true); +} - Analytics.setGuest(credentials.guest); +/** + * fires on_logging_in, optionally clears localstorage, persists new credentials + * to localstorage, starts the new client. + * + * @param {MatrixClientCreds} credentials + * @param {Boolean} clearStorage + * + * returns a Promise which resolves once the client has been started + */ +async function _doSetLoggedIn(credentials, clearStorage) { + credentials.guest = Boolean(credentials.guest); console.log( "setLoggedIn: mxid:", credentials.userId, @@ -295,12 +313,19 @@ export function setLoggedIn(credentials) { "guest:", credentials.guest, "hs:", credentials.homeserverUrl, ); + // This is dispatched to indicate that the user is still in the process of logging in // because `teamPromise` may take some time to resolve, breaking the assumption that // `setLoggedIn` takes an "instant" to complete, and dispatch `on_logged_in` a few ms // later than MatrixChat might assume. dis.dispatch({action: 'on_logging_in'}); + if (clearStorage) { + await _clearStorage(); + } + + Analytics.setGuest(credentials.guest); + // Resolves by default let teamPromise = Promise.resolve(null); @@ -349,9 +374,6 @@ export function setLoggedIn(credentials) { console.warn("No local storage available: can't persist session!"); } - // stop any running clients before we create a new one with these new credentials - stopMatrixClient(); - MatrixClientPeg.replaceUsingCreds(credentials); teamPromise.then((teamToken) => { @@ -400,7 +422,7 @@ export function logout() { * Starts the matrix client and all other react-sdk services that * listen for events while a session is logged in. */ -export function startMatrixClient() { +function startMatrixClient() { // dispatch this before starting the matrix client: it's used // to add listeners for the 'sync' event so otherwise we'd have // a race condition (and we need to dispatch synchronously for this @@ -416,34 +438,44 @@ export function startMatrixClient() { } /* - * Stops a running client and all related services, used after - * a session has been logged out / ended. + * Stops a running client and all related services, and clears persistent + * storage. Used after a session has been logged out. */ export function onLoggedOut() { - _clearLocalStorage(); stopMatrixClient(); + _clearStorage().done(); dis.dispatch({action: 'on_logged_out'}); } -function _clearLocalStorage() { +/** + * @returns {Promise} promise which resolves once the stores have been cleared + */ +function _clearStorage() { Analytics.logout(); - if (!window.localStorage) { - return; - } - const hsUrl = window.localStorage.getItem("mx_hs_url"); - const isUrl = window.localStorage.getItem("mx_is_url"); - window.localStorage.clear(); - // preserve our HS & IS URLs for convenience - // N.B. we cache them in hsUrl/isUrl and can't really inline them - // as getCurrentHsUrl() may call through to localStorage. - // NB. We do clear the device ID (as well as all the settings) - if (hsUrl) window.localStorage.setItem("mx_hs_url", hsUrl); - if (isUrl) window.localStorage.setItem("mx_is_url", isUrl); + if (window.localStorage) { + const hsUrl = window.localStorage.getItem("mx_hs_url"); + const isUrl = window.localStorage.getItem("mx_is_url"); + window.localStorage.clear(); + + // preserve our HS & IS URLs for convenience + // N.B. we cache them in hsUrl/isUrl and can't really inline them + // as getCurrentHsUrl() may call through to localStorage. + // NB. We do clear the device ID (as well as all the settings) + if (hsUrl) window.localStorage.setItem("mx_hs_url", hsUrl); + if (isUrl) window.localStorage.setItem("mx_is_url", isUrl); + } + + // create a temporary client to clear out the persistent stores. + const cli = createMatrixClient({ + // we'll never make any requests, so can pass a bogus HS URL + baseUrl: "", + }); + return cli.clearStores(); } /** - * Stop all the background processes related to the current client + * Stop all the background processes related to the current client. */ export function stopMatrixClient() { Notifier.stop(); @@ -454,7 +486,6 @@ export function stopMatrixClient() { if (cli) { cli.stopClient(); cli.removeAllListeners(); - cli.store.deleteAllData(); MatrixClientPeg.unset(); } } diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index 1065fa9f9f..71a82d0920 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -1228,6 +1228,8 @@ module.exports = React.createClass({ onReturnToGuestClick: function() { // reanimate our guest login if (this.state.guestCreds) { + // TODO: this is probably a bit broken - we don't want to be + // clearing storage when we reanimate the guest creds. Lifecycle.setLoggedIn(this.state.guestCreds); this.setState({guestCreds: null}); } From 35620311b338a1f66325ca686bad0809f71a2807 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Tue, 13 Jun 2017 10:15:29 +0100 Subject: [PATCH 077/120] Fix regressions with starting a 1-1. --- src/components/views/dialogs/ChatInviteDialog.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/components/views/dialogs/ChatInviteDialog.js b/src/components/views/dialogs/ChatInviteDialog.js index 2f635fd670..e331432228 100644 --- a/src/components/views/dialogs/ChatInviteDialog.js +++ b/src/components/views/dialogs/ChatInviteDialog.js @@ -24,6 +24,7 @@ import DMRoomMap from '../../../utils/DMRoomMap'; import Modal from '../../../Modal'; import AccessibleButton from '../elements/AccessibleButton'; import q from 'q'; +import dis from '../../../dispatcher'; const TRUNCATE_QUERY_LIST = 40; const QUERY_USER_DIRECTORY_DEBOUNCE_MS = 200; @@ -102,7 +103,7 @@ module.exports = React.createClass({ const ChatCreateOrReuseDialog = sdk.getComponent( "views.dialogs.ChatCreateOrReuseDialog", ); - Modal.createDialog(ChatCreateOrReuseDialog, { + const close = Modal.createDialog(ChatCreateOrReuseDialog, { userId: userId, onFinished: (success) => { this.props.onFinished(success); @@ -112,14 +113,16 @@ module.exports = React.createClass({ action: 'start_chat', user_id: userId, }); + close(true); }, onExistingRoomSelected: (roomId) => { dis.dispatch({ action: 'view_room', - user_id: roomId, + room_id: roomId, }); + close(true); }, - }); + }).close; } else { this._startChat(inviteList); } From 33f5d81d18790877e5524157ea5d2f3ed467c669 Mon Sep 17 00:00:00 2001 From: Luke Barnard Date: Tue, 13 Jun 2017 11:03:22 +0100 Subject: [PATCH 078/120] Only process user_directory response if it's for the current query --- src/components/views/dialogs/ChatInviteDialog.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/components/views/dialogs/ChatInviteDialog.js b/src/components/views/dialogs/ChatInviteDialog.js index e331432228..9a14cb91d3 100644 --- a/src/components/views/dialogs/ChatInviteDialog.js +++ b/src/components/views/dialogs/ChatInviteDialog.js @@ -241,6 +241,11 @@ module.exports = React.createClass({ MatrixClientPeg.get().searchUserDirectory({ term: query, }).then((resp) => { + // The query might have changed since we sent the request, so ignore + // responses for anything other than the latest query. + if (this.state.query !== query) { + return; + } this._processResults(resp.results, query); }).catch((err) => { console.error('Error whilst searching user directory: ', err); From 24f1bd14609ede66b814a97020124cae488a95a0 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 13 Jun 2017 10:37:45 +0100 Subject: [PATCH 079/120] Merge new translations Merge remote-tracking branch 'weblate/develop' into develop --- src/i18n/strings/el.json | 665 +++++++++++++++++++++++++++++++----- src/i18n/strings/en_US.json | 75 +++- src/i18n/strings/fr.json | 95 +++++- src/i18n/strings/nl.json | 59 +++- src/i18n/strings/sv.json | 9 +- 5 files changed, 795 insertions(+), 108 deletions(-) diff --git a/src/i18n/strings/el.json b/src/i18n/strings/el.json index a38dddb35b..c55fca9b0c 100644 --- a/src/i18n/strings/el.json +++ b/src/i18n/strings/el.json @@ -32,34 +32,34 @@ "%(targetName)s accepted an invitation.": "%(targetName)s δέχτηκε την πρόσκληση.", "%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s δέχτηκες την πρόσκληση για %(displayName)s.", "Account": "Λογαριασμός", - "Add a topic": "Πρόσθεσε μια περιγραφή", - "Add email address": "Πρόσθεσε ένα email", - "Add phone number": "Πρόσθεσε έναν αριθμό τηλεφώνου", + "Add a topic": "Προσθήκη θέματος", + "Add email address": "Προσθήκη διεύθυνσης ηλ. αλληλογραφίας", + "Add phone number": "Προσθήκη αριθμού τηλεφώνου", "Admin": "Διαχειριστής", "VoIP": "VoIP", "No Microphones detected": "Δεν εντοπίστηκε μικρόφωνο", "No Webcams detected": "Δεν εντοπίστηκε κάμερα", - "Default Device": "Προεπιλεγμένη Συσκευή", + "Default Device": "Προεπιλεγμένη συσκευή", "Microphone": "Μικρόφωνο", "Camera": "Κάμερα", "Advanced": "Προχωρημένα", "Algorithm": "Αλγόριθμος", - "Hide removed messages": "Κρύψε διαγραμμένα μηνύματα", + "Hide removed messages": "Απόκρυψη διαγραμμένων μηνυμάτων", "Authentication": "Πιστοποίηση", "and": "και", "An email has been sent to": "Ένα email στάλθηκε σε", - "A new password must be entered.": "Ο νέος κωδικός πρέπει να εισαχθεί.", - "%(senderName)s answered the call.": "Ο χρήστης %(senderName)s απάντησε.", - "An error has occurred.": "Ένα σφάλμα προέκυψε", + "A new password must be entered.": "Ο νέος κωδικός πρόσβασης πρέπει να εισαχθεί.", + "%(senderName)s answered the call.": "Ο χρήστης %(senderName)s απάντησε την κλήση.", + "An error has occurred.": "Παρουσιάστηκε ένα σφάλμα.", "Anyone": "Oποιοσδήποτε", - "Are you sure?": "Είσαι σίγουρος;", - "Are you sure you want to leave the room '%(roomName)s'?": "Είσαι σίγουρος οτι θές να φύγεις από το δωμάτιο '%(roomName)s';", - "Are you sure you want to reject the invitation?": "Είσαι σίγουρος οτι θες να απορρίψεις την πρόσκληση;", - "Are you sure you want to upload the following files?": "Είσαι σίγουρος οτι θές να ανεβάσεις τα ακόλουθα αρχεία;", + "Are you sure?": "Είστε σίγουροι;", + "Are you sure you want to leave the room '%(roomName)s'?": "Είστε σίγουροι ότι θέλετε να αποχωρήσετε από το δωμάτιο '%(roomName)s';", + "Are you sure you want to reject the invitation?": "Είστε σίγουροι ότι θέλετε να απορρίψετε την πρόσκληση;", + "Are you sure you want to upload the following files?": "Είστε σίγουροι ότι θέλετε να αποστείλετε τα ακόλουθα αρχεία;", "Attachment": "Επισύναψη", "%(senderName)s banned %(targetName)s.": "Ο χρήστης %(senderName)s έδιωξε τον χρήστη %(targetName)s.", "Autoplay GIFs and videos": "Αυτόματη αναπαραγωγή GIFs και βίντεο", - "Bug Report": "Αναφορά Σφάλματος", + "Bug Report": "Αναφορά σφάλματος", "anyone": "οποιοσδήποτε", "Anyone who knows the room's link, apart from guests": "Oποιοσδήποτε", "all room members, from the point they joined": "όλα τα μέλη του δωματίου, από τη στιγμή που συνδέθηκαν", @@ -106,7 +106,7 @@ "es-uy": "Ισπανικά (Ουρουγουάη)", "es-ve": "Ισπανικά (Βενεζουέλα)", "et": "Εσθονικά", - "eu": "Βασκική (βασκική)", + "eu": "Βασκική (Βασκική)", "fa": "Φάρσι", "fi": "Φινλανδικά", "fo": "Φαρόε", @@ -159,7 +159,7 @@ "ur": "Ουρντού", "ve": "Venda", "vi": "Βιετναμέζικα", - "xh": "Xhosa", + "xh": "Ξόσα", "zh-cn": "Κινέζικα (ΛΔΚ)", "zh-hk": "Κινέζικα (ΕΔΠ Χονγκ Κονγκ)", "zh-sg": "Κινέζικα (Σιγκαπούρη)", @@ -169,8 +169,8 @@ "lv": "Λετονικά", "A registered account is required for this action": "Ένας εγγεγραμμένος λογαριασμός απαιτείται για αυτή την ενέργεια", "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Ένα μήνυμα στάλθηκε στο +%(msisdn)s. Παρακαλώ γράψε τον κωδικό επαλήθευσης που περιέχει", - "Access Token:": "Κωδικός Πρόσβασης:", - "Always show message timestamps": "Δείχνε πάντα ένδειξη ώρας στα μηνύματα", + "Access Token:": "Κωδικός πρόσβασης:", + "Always show message timestamps": "Εμφάνιση πάντα της ένδειξης ώρας στα μηνύματα", "all room members": "όλα τα μέλη του δωματίου", "all room members, from the point they are invited": "όλα τα μέλη του δωματίου, από τη στιγμή που προσκλήθηκαν", "an address": "μία διεύθηνση", @@ -181,58 +181,58 @@ "%(names)s and %(lastPerson)s are typing": "%(names)s και %(lastPerson)s γράφουν", "%(names)s and one other are typing": "%(names)s και ένας ακόμα γράφουν", "%(names)s and %(count)s others are typing": "%(names)s και %(count)s άλλοι γράφουν", - "Anyone who knows the room's link, including guests": "Οποιοσδήποτε γνωρίζει τον σύνδεδμο του δωματίου, συμπεριλαμβάνωντας τους επισκέπτες", + "Anyone who knows the room's link, including guests": "Οποιοσδήποτε γνωρίζει τον σύνδεσμο του δωματίου, συμπεριλαμβάνωντας τους επισκέπτες", "Blacklisted": "Στη μαύρη λίστα", "Can't load user settings": "Δεν είναι δυνατή η φόρτωση των ρυθμίσεων χρήστη", - "Change Password": "Αλλαγή Κωδικού", - "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "ο χρήστης %(senderName)s άλλαξε το όνομά του από %(oldDisplayName)s σε %(displayName)s.", - "%(senderName)s changed their profile picture.": "ο χρήστης %(senderName)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\".", + "Change Password": "Αλλαγή κωδικού πρόσβασης", + "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "Ο %(senderName)s άλλαξε το όνομά του από %(oldDisplayName)s σε %(displayName)s.", + "%(senderName)s changed their profile picture.": "Ο %(senderName)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\".", "Clear Cache and Reload": "Καθάρισε την μνήμη και Ανανέωσε", "Clear Cache": "Καθάρισε την μνήμη", - "Bans user with given id": "Διώχνει τον χρήστη με το συγκεκριμένο id", - "%(senderDisplayName)s removed the room name.": "Ο χρήστης %(senderDisplayName)s διέγραψε το όνομα του δωματίου.", - "Changes your display nickname": "Αλλάζει το όνομα χρήστη", + "Bans user with given id": "Αποκλεισμός χρήστη με το συγκεκριμένο αναγνωριστικό", + "%(senderDisplayName)s removed the room name.": "Ο %(senderDisplayName)s διέγραψε το όνομα του δωματίου.", + "Changes your display nickname": "Αλλάζει το ψευδώνυμο χρήστη", "Click here": "Κάνε κλικ εδώ", "Drop here %(toAction)s": "Απόθεση εδώ %(toAction)s", "Conference call failed.": "Η κλήση συνδιάσκεψης απέτυχε.", "powered by Matrix": "βασισμένο στο πρωτόκολλο Matrix", - "Confirm password": "Επιβεβαίωση κωδικού", - "Confirm your new password": "Επιβεβαίωση του νέου κωδικού", + "Confirm password": "Επιβεβαίωση κωδικού πρόσβασης", + "Confirm your new password": "Επιβεβαίωση του νέου κωδικού πρόσβασης", "Continue": "Συνέχεια", "Create an account": "Δημιουργία λογαριασμού", - "Create Room": "Δημιουργία Δωματίου", + "Create Room": "Δημιουργία δωματίου", "Cryptography": "Κρυπτογραφία", - "Current password": "Τωρινός κωδικός", + "Current password": "Τωρινός κωδικός πρόσβασης", "Curve25519 identity key": "Κλειδί ταυτότητας Curve25519", "Custom level": "Προσαρμοσμένο επίπεδο", "/ddg is not a command": "/ddg δεν αναγνωρίζεται ως εντολή", - "Deactivate Account": "Απενεργοποίηση Λογαριασμού", + "Deactivate Account": "Απενεργοποίηση λογαριασμού", "Deactivate my account": "Απενεργοποίηση του λογαριασμού μου", "decline": "απόρριψη", - "Decrypt %(text)s": "Αποκρυπτογράφησε %(text)s", + "Decrypt %(text)s": "Αποκρυπτογράφηση %(text)s", "Decryption error": "Σφάλμα αποκρυπτογράφησης", "(default: %(userName)s)": "(προεπιλογή: %(userName)s)", "Delete": "Διαγραφή", "Default": "Προεπιλογή", "Device already verified!": "Η συσκευή έχει ήδη επαληθευτεί!", - "Device ID": "ID Συσκευής", - "Device ID:": "ID Συσκευής:", - "device id: ": "id συσκευής: ", - "Device key:": "Κλειδί Συσκευής:", + "Device ID": "Αναγνωριστικό συσκευής", + "Device ID:": "Αναγνωριστικό συσκευής:", + "device id: ": "αναγνωριστικό συσκευής: ", + "Device key:": "Κλειδί συσκευής:", "Devices": "Συσκευές", "Direct Chat": "Απευθείας συνομιλία", "Direct chats": "Απευθείας συνομιλίες", "disabled": "ανενεργό", - "Disinvite": "Ανακάλεσε πρόσκληση", + "Disinvite": "Ανάκληση πρόσκλησης", "Display name": "Όνομα χρήστη", - "Download %(text)s": "Κατέβασε %(text)s", + "Download %(text)s": "Λήψη %(text)s", "Ed25519 fingerprint": "Αποτύπωμα Ed25519", - "Email": "Ηλ. Αλληλογραφία", - "Email address": "Διεύθυνση email", - "Email address (optional)": "Διεύθυνση email (προαιρετικό)", - "Email, name or matrix ID": "Email, όνομα ή matrix ID", + "Email": "Ηλεκτρονική διεύθυνση", + "Email address": "Ηλεκτρονική διεύθυνση", + "Email address (optional)": "Ηλεκτρονική διεύθυνση (προαιρετικό)", + "Email, name or matrix ID": "Ηλεκτρονική διεύθυνση, όνομα ή matrix ID", "Emoji": "Εικονίδια", "enabled": "ενεργό", "Encrypted messages will not be visible on clients that do not yet implement encryption": "Τα κρυπτογραφημένα μηνύματα δεν θα είναι ορατά σε εφαρμογές που δεν παρέχουν τη δυνατότητα κρυπτογράφησης", @@ -240,10 +240,10 @@ "%(senderName)s ended the call.": "%(senderName)s τερμάτισε την κλήση.", "End-to-end encryption information": "Πληροφορίες σχετικά με τη κρυπτογράφηση από άκρο σε άκρο (End-to-end encryption)", "Error decrypting attachment": "Σφάλμα κατά την αποκρυπτογράφηση της επισύναψης", - "Event information": "Πληροφορίες μηνύματος", - "Existing Call": "Υπάρχουσα Κλήση", + "Event information": "Πληροφορίες συμβάντος", + "Existing Call": "Υπάρχουσα κλήση", "Export": "Εξαγωγή", - "Export E2E room keys": "Εξαγωγή κλειδιών κρυπτογραφίας για το δωμάτιο", + "Export E2E room keys": "Εξαγωγή κλειδιών κρυπτογράφησης για το δωμάτιο", "Failed to change password. Is your password correct?": "Δεν ήταν δυνατή η αλλαγή του κωδικού πρόσβασης. Είναι σωστός ο κωδικός πρόσβασης;", "Failed to delete device": "Δεν ήταν δυνατή η διαγραφή της συσκευής", "Failed to join room": "Δεν ήταν δυνατή η σύνδεση στο δωμάτιο", @@ -253,46 +253,46 @@ "Failed to reject invite": "Δεν ήταν δυνατή η απόρριψη της πρόσκλησης", "Failed to reject invitation": "Δεν ήταν δυνατή η απόρριψη της πρόσκλησης", "Failed to save settings": "Δεν ήταν δυνατή η αποθήκευση των ρυθμίσεων", - "Failed to send email": "Δεν ήταν δυνατή η απστολή email", + "Failed to send email": "Δεν ήταν δυνατή η αποστολή ηλ. αλληλογραφίας", "Failed to verify email address: make sure you clicked the link in the email": "Δεν ήταν δυνατή η επαλήθευση του email: βεβαιωθείτε οτι κάνατε κλικ στον σύνδεσμο που σας στάλθηκε", "Favourite": "Αγαπημένο", "favourite": "αγαπημένο", "Favourites": "Αγαπημένα", "Fill screen": "Γέμισε την οθόνη", - "Filter room members": "Φίλτραρε τα μέλη", - "Forget room": "Διέγραψε το δωμάτιο", - "Forgot your password?": "Ξέχασες τον κωδικό σου;", - "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.": "Για λόγους ασφαλείας, τα κλειδιά κρυπτογράφησης θα διαγράφονται από τον φυλλομετρητή κατά την αποσύνδεση σας. Εάν επιθυμείτε να αποκρυπτογραφήσετε τις συνομιλίες σας στο μέλλον, εξάγετε τα κλειδιά σας και κρατήστε τα ασφαλή.", + "Filter room members": "Φιλτράρισμα μελών", + "Forget room": "Αγνόηση δωματίου", + "Forgot your password?": "Ξεχάσατε τoν κωδικό πρόσβασης σας;", + "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.": "Για λόγους ασφαλείας, τα κλειδιά κρυπτογράφησης θα διαγράφονται από τον περιηγητή κατά την αποσύνδεση σας. Εάν επιθυμείτε να αποκρυπτογραφήσετε τις συνομιλίες σας στο μέλλον, εξάγετε τα κλειδιά σας και κρατήστε τα ασφαλή.", "Found a bug?": "Βρήκατε κάποιο πρόβλημα;", "Guest users can't upload files. Please register to upload.": "Οι επισκέπτες δεν μπορούν να ανεβάσουν αρχεία. Παρακαλώ εγγραφείτε πρώτα.", "had": "είχε", - "Hangup": "Κλείσε", + "Hangup": "Κλείσιμο", "Historical": "Ιστορικό", "Homeserver is": "Ο διακομιστής είναι", - "Identity Server is": "Διακομιστής Ταυτοποίησης", - "I have verified my email address": "Έχω επαληθεύσει το email μου", + "Identity Server is": "Ο διακομιστής ταυτοποίησης είναι", + "I have verified my email address": "Έχω επαληθεύσει την διεύθυνση ηλ. αλληλογραφίας", "Import": "Εισαγωγή", - "Import E2E room keys": "Εισαγωγή κλειδιών κρυπτογράφησης", + "Import E2E room keys": "Εισαγωγή κλειδιών E2E", "Incorrect username and/or password.": "Λανθασμένο όνομα χρήστη και/ή κωδικός.", "Incorrect verification code": "Λανθασμένος κωδικός επαλήθευσης", - "Interface Language": "Γλώσσα Διεπαφής", - "Invalid Email Address": "Μη έγκυρο email", - "Invite new room members": "Προσκάλεσε νέα μέλη", + "Interface Language": "Γλώσσα διεπαφής", + "Invalid Email Address": "Μη έγκυρη διεύθυνση ηλ. αλληλογραφίας", + "Invite new room members": "Προσκαλέστε νέα μέλη", "Invited": "Προσκλήθηκε", "Invites": "Προσκλήσεις", "is a": "είναι ένα", - "%(displayName)s is typing": "ο χρήστης %(displayName)s γράφει", - "Sign in with": "Συνδέσου με", - "joined and left": "μπήκε και βγήκε", - "joined": "μπήκε", + "%(displayName)s is typing": "Ο χρήστης %(displayName)s γράφει", + "Sign in with": "Συνδεθείτε με", + "joined and left": "συνδέθηκε και έφυγε", + "joined": "συνδέθηκε", "%(targetName)s joined the room.": "ο χρήστης %(targetName)s συνδέθηκε στο δωμάτιο.", - "Jump to first unread message.": "Πήγαινε στο πρώτο μη αναγνωσμένο μήνυμα.", - "%(senderName)s kicked %(targetName)s.": "Ο χρήστης %(senderName)s έδιωξε τον χρήστη %(targetName)s.", + "Jump to first unread message.": "Πηγαίνετε στο πρώτο μη αναγνωσμένο μήνυμα.", + "%(senderName)s kicked %(targetName)s.": "Ο %(senderName)s έδιωξε τον χρήστη %(targetName)s.", "Kick": "Διώξε", "Kicks user with given id": "Διώχνει χρήστες με το συγκεκριμένο id", "Labs": "Πειραματικά", - "Leave room": "Φύγε από το δωμάτιο", + "Leave room": "Αποχώρηση από το δωμάτιο", "left and rejoined": "έφυγε και ξανασυνδέθηκε", "left": "έφυγε", "%(targetName)s left the room.": "Ο χρήστης %(targetName)s έφυγε από το δωμάτιο.", @@ -300,7 +300,7 @@ "List this room in %(domain)s's room directory?": "Να εμφανίζεται το δωμάτιο στο γενικό ευρετήριο του διακομιστή %(domain)s;", "Local addresses for this room:": "Τοπική διεύθυνση για το δωμάτιο:", "Logged in as:": "Συνδέθηκες ως:", - "Login as guest": "Συνδέσου ως επισκέπτης", + "Login as guest": "Σύνδεση ως επισκέπτης", "Logout": "Αποσύνδεση", "Low priority": "Χαμηλής προτεραιότητας", "matrix-react-sdk version:": "έκδοση matrix-react-sdk:", @@ -313,34 +313,34 @@ "Conference calls are not supported in encrypted rooms": "Οι κλήσεις συνδιάσκεψης δεν είναι υποστηρίζονται σε κρυπτογραφημένα δωμάτια", "Conference calls are not supported in this client": "Οι κλήσεις συνδιάσκεψης δεν είναι υποστηρίζονται από την εφαρμογή", "Enable encryption": "Ενεργοποίηση κρυπτογραφίας", - "Enter Code": "Κωδικός", + "Enter Code": "Εισαγωγή κωδικού πρόσβασης", "Failed to send request.": "Δεν ήταν δυνατή η αποστολή αιτήματος.", - "Failed to upload file": "Δεν ήταν δυνατό το ανέβασμα αρχείου", + "Failed to upload file": "Δεν ήταν δυνατή η αποστολή του αρχείου", "Failure to create room": "Δεν ήταν δυνατή η δημιουργία δωματίου", - "Join Room": "Συνδέσου", + "Join Room": "Είσοδος σε δωμάτιο", "Moderator": "Συντονιστής", "my Matrix ID": "το Matrix ID μου", "Name": "Όνομα", "New address (e.g. #foo:%(localDomain)s)": "Νέα διεύθυνση (e.g. #όνομα:%(localDomain)s)", - "New password": "Νέος κωδικός", - "New passwords don't match": "Οι νέοι κωδικοί είναι διαφορετικοί", - "New passwords must match each other.": "Οι νέοι κωδικόι πρέπει να ταιριάζουν.", + "New password": "Νέος κωδικός πρόσβασης", + "New passwords don't match": "Οι νέοι κωδικοί πρόσβασης είναι διαφορετικοί", + "New passwords must match each other.": "Οι νέοι κωδικοί πρόσβασης πρέπει να ταιριάζουν.", "none": "κανένα", - "(not supported by this browser)": "(δεν υποστηρίζεται από τον browser)", + "(not supported by this browser)": "(δεν υποστηρίζεται από τον περιηγητή)", "": "<δεν υποστηρίζεται>", - "No more results": "Δεν υπάρχουν άλλα αποτελέσματα", + "No more results": "Δεν υπάρχουν αποτελέσματα", "No results": "Κανένα αποτέλεσμα", "OK": "Εντάξει", - "olm version:": "έκδοση olm:", - "Password": "Κωδικός", - "Password:": "Κωδικός:", - "Passwords can't be empty": "", + "olm version:": "Έκδοση olm:", + "Password": "Κωδικός πρόσβασης", + "Password:": "Κωδικός πρόσβασης:", + "Passwords can't be empty": "Οι κωδικοί πρόσβασης δεν γίνετε να είναι κενοί", "People": "Άτομα", "Phone": "Τηλέφωνο", "Register": "Εγγραφή", - "riot-web version:": "έκδοση riot-web:", - "Room Colour": "Χρώμα Δωματίου", - "Room name (optional)": "Όνομα Δωματίου (προαιρετικό)", + "riot-web version:": "Έκδοση riot-web:", + "Room Colour": "Χρώμα δωματίου", + "Room name (optional)": "Όνομα δωματίου (προαιρετικό)", "Rooms": "Δωμάτια", "Save": "Αποθήκευση", "Search failed": "Η αναζήτηση απέτυχε", @@ -349,15 +349,15 @@ "sent an image": "έστειλε μια εικόνα", "sent a video": "έστειλε ένα βίντεο", "Server error": "Σφάλμα διακομιστή", - "Signed Out": "Αποσυνδέθηκες", + "Signed Out": "Αποσυνδέθηκε", "Sign in": "Συνδέση", "Sign out": "Αποσύνδεση", "since they joined": "από τη στιγμή που συνδέθηκαν", "since they were invited": "από τη στιγμή που προσκλήθηκαν", "Someone": "Κάποιος", - "Start a chat": "Ξεκίνα μια συνομιλία", - "This email address is already in use": "Το email χρησιμοποιείται", - "This email address was not found": "Η διεύθηνση email δεν βρέθηκε", + "Start a chat": "Έναρξη συνομιλίας", + "This email address is already in use": "Η διεύθυνση ηλ. αλληλογραφίας χρησιμοποιείται ήδη", + "This email address was not found": "Δεν βρέθηκε η διεύθυνση ηλ. αλληλογραφίας", "Success": "Επιτυχία", "Start Chat": "Συνομιλία", "Cancel": "Ακύρωση", @@ -375,7 +375,7 @@ "italic": "πλάγια", "underline": "υπογράμμιση", "code": "κώδικας", - "quote": "αναφορά", + "quote": "παράθεση", "%(oneUser)sleft %(repeats)s times": "%(oneUser)s έφυγε %(repeats)s φορές", "%(severalUsers)sleft": "%(severalUsers)s έφυγαν", "%(oneUser)sleft": "%(oneUser)s έφυγε", @@ -387,5 +387,496 @@ "Create new room": "Δημιουργία νέου δωματίου", "Room directory": "Ευρετήριο", "Start chat": "Έναρξη συνομιλίας", - "Welcome page": "Αρχική σελίδα" + "Welcome page": "Αρχική σελίδα", + "a room": "ένα δωμάτιο", + "Accept": "Αποδοχή", + "Active call (%(roomName)s)": "Ενεργή κλήση (%(roomName)s)", + "Add": "Προσθήκη", + "Admin tools": "Εργαλεία διαχειριστή", + "And %(count)s more...": "Και %(count)s περισσότερα...", + "No media permissions": "Χωρίς δικαιώματα πολυμέσων", + "Alias (optional)": "Ψευδώνυμο (προαιρετικό)", + "Ban": "Αποκλεισμός", + "Banned users": "Αποκλεισμένοι χρήστες", + "Bulk Options": "Μαζικές επιλογές", + "Call Timeout": "Λήξη χρόνου κλήσης", + "Click here to join the discussion!": "Κλικ εδώ για να συμμετάσχετε στην συζήτηση!", + "Click to mute audio": "Κάντε κλικ για σίγαση του ήχου", + "Click to mute video": "Κάντε κλικ για σίγαση του βίντεο", + "click to reveal": "κάντε κλικ για εμφάνιση", + "Click to unmute video": "Κάντε κλικ για άρση σίγασης του βίντεο", + "Click to unmute audio": "Κάντε κλικ για άρση σίγασης του ήχου", + "%(count)s new messages.one": "%(count)s νέο μήνυμα", + "%(count)s new messages.other": "%(count)s νέα μηνύματα", + "Custom": "Προσαρμοσμένο", + "Decline": "Απόρριψη", + "Disable Notifications": "Απενεργοποίηση ειδοποιήσεων", + "Disable markdown formatting": "Απενεργοποίηση μορφοποίησης markdown", + "Drop File Here": "Αποθέστε εδώ το αρχείο", + "Enable Notifications": "Ενεργοποίηση ειδοποιήσεων", + "Encryption is enabled in this room": "Η κρυπτογράφηση είναι ενεργοποιημένη σε αυτό το δωμάτιο", + "Encryption is not enabled in this room": "Η κρυπτογράφηση είναι απενεργοποιημένη σε αυτό το δωμάτιο", + "Enter passphrase": "Εισαγωγή συνθηματικού", + "Failed to set avatar.": "Δεν ήταν δυνατό ο ορισμός της προσωπικής εικόνας.", + "Failed to set display name": "Δεν ήταν δυνατό ο ορισμός του ονόματος εμφάνισης", + "Failed to set up conference call": "Δεν ήταν δυνατή η ρύθμιση κλήσης συνδιάσκεψης", + "Failed to toggle moderator status": "Δεν ήταν δυνατή η εναλλαγή κατάστασης του συντονιστή", + "Failed to upload profile picture!": "Δεν ήταν δυνατή η αποστολή της εικόνας προφίλ!", + "Hide read receipts": "Απόκρυψη αποδείξεων ανάγνωσης", + "Home": "Αρχική", + "Last seen": "Τελευταία εμφάνιση", + "Level:": "Επίπεδο:", + "Manage Integrations": "Διαχείριση ενσωματώσεων", + "Markdown is disabled": "Το Markdown είναι απενεργοποιημένο", + "Markdown is enabled": "Το Markdown είναι ενεργοποιημένο", + "Missing room_id in request": "Λείπει το room_id στο αίτημα", + "Permissions": "Δικαιώματα", + "Power level must be positive integer.": "Το επίπεδο δύναμης πρέπει να είναι ένας θετικός ακέραιος.", + "Privacy warning": "Προειδοποίηση ιδιωτικότητας", + "Private Chat": "Προσωπική συνομιλία", + "Privileged Users": "Προνομιούχοι χρήστες", + "Profile": "Προφίλ", + "Public Chat": "Δημόσια συνομιλία", + "Reason": "Αιτία", + "Reason: %(reasonText)s": "Αιτία: %(reasonText)s", + "Revoke Moderator": "Ανάκληση συντονιστή", + "Registration required": "Απαιτείται εγγραφή", + "rejected": "απορρίφθηκε", + "%(targetName)s rejected the invitation.": "Ο %(targetName)s απέρριψε την πρόσκληση.", + "Reject invitation": "Απόρριψη πρόσκλησης", + "Remote addresses for this room:": "Απομακρυσμένες διευθύνσεις για το δωμάτιο:", + "Remove Contact Information?": "Αφαίρεση πληροφοριών επαφής;", + "Remove %(threePid)s?": "Αφαίρεση %(threePid)s;", + "Report it": "Αναφορά", + "restore": "επαναφορά", + "Results from DuckDuckGo": "Αποτελέσματα από DuckDuckGo", + "Return to app": "Επιστροφή στην εφαρμογή", + "Return to login screen": "Επιστροφή στην οθόνη σύνδεσης", + "Room %(roomId)s not visible": "Το δωμάτιο %(roomId)s δεν είναι ορατό", + "%(roomName)s does not exist.": "Το %(roomName)s δεν υπάρχει.", + "Searches DuckDuckGo for results": "Γίνεται αναζήτηση στο DuckDuckGo για αποτελέσματα", + "Searching known users": "Αναζήτηση γνωστών χρηστών", + "Seen by %(userName)s at %(dateTime)s": "Διαβάστηκε από %(userName)s στις %(dateTime)s", + "Send anyway": "Αποστολή ούτως ή άλλως", + "Send Invites": "Αποστολή προσκλήσεων", + "Send Reset Email": "Αποστολή μηνύματος επαναφοράς", + "%(senderDisplayName)s sent an image.": "Ο %(senderDisplayName)s έστειλε μια φωτογραφία.", + "Server may be unavailable or overloaded": "Ο διακομιστής μπορεί να είναι μη διαθέσιμος ή υπερφορτωμένος", + "Session ID": "Αναγνωριστικό συνεδρίας", + "%(senderName)s set a profile picture.": "Ο %(senderName)s όρισε τη φωτογραφία του προφίλ του.", + "Set": "Ορισμός", + "Start authentication": "Έναρξη πιστοποίησης", + "Submit": "Υποβολή", + "Tagged as: ": "Με ετικέτα:", + "The default role for new room members is": "Ο προεπιλεγμένος ρόλος για νέα μέλη είναι", + "The main address for this room is": "Η κύρια διεύθυνση για το δωμάτιο είναι", + "%(actionVerb)s this person?": "%(actionVerb)s αυτού του ατόμου;", + "The file '%(fileName)s' failed to upload": "Απέτυχε η αποστολή του αρχείου '%(fileName)s'", + "There was a problem logging in.": "Υπήρξε ένα πρόβλημα κατά την σύνδεση.", + "This room has no local addresses": "Αυτό το δωμάτιο δεν έχει τοπικές διευθύνσεις", + "This doesn't appear to be a valid email address": "Δεν μοιάζει με μια έγκυρη διεύθυνση ηλ. αλληλογραφίας", + "This phone number is already in use": "Αυτός ο αριθμός τηλεφώνου είναι ήδη σε χρήση", + "This room": "Αυτό το δωμάτιο", + "This room's internal ID is": "Το εσωτερικό αναγνωριστικό του δωματίου είναι", + "times": "φορές", + "To ban users": "Για αποκλεισμό χρηστών", + "to browse the directory": "για περιήγηση στο ευρετήριο", + "To configure the room": "Για ρύθμιση του δωματίου", + "To invite users into the room": "Για πρόσκληση χρηστών στο δωμάτιο", + "To remove other users' messages": "Για αφαίρεση μηνυμάτων άλλων χρηστών", + "to restore": "για επαναφορά", + "To send events of type": "Για αποστολή συμβάντων τύπου", + "To send messages": "Για αποστολή μηνυμάτων", + "Turn Markdown off": "Απενεργοποίηση Markdown", + "Turn Markdown on": "Ενεργοποίηση Markdown", + "Unable to add email address": "Αδυναμία προσθήκης διεύθυνσης ηλ. αλληλογραφίας", + "Unable to remove contact information": "Αδυναμία αφαίρεσης πληροφοριών επαφής", + "Unable to restore previous session": "Αδυναμία επαναφοράς της προηγούμενης συνεδρίας", + "Unable to verify email address.": "Αδυναμία επιβεβαίωσης διεύθυνσης ηλ. αλληλογραφίας.", + "Unban": "Άρση αποκλεισμού", + "%(senderName)s unbanned %(targetName)s.": "Ο χρήστης %(senderName)s έδιωξε τον χρήστη %(targetName)s.", + "Unable to enable Notifications": "Αδυναμία ενεργοποίησης των ειδοποιήσεων", + "Unable to load device list": "Αδυναμία φόρτωσης της λίστας συσκευών", + "Unencrypted room": "Μη κρυπτογραφημένο δωμάτιο", + "unencrypted": "μη κρυπτογραφημένο", + "Unencrypted message": "Μη κρυπτογραφημένο μήνυμα", + "unknown caller": "άγνωστος καλών", + "Unknown command": "Άγνωστη εντολή", + "unknown device": "άγνωστη συσκευή", + "Unknown room %(roomId)s": "Άγνωστο δωμάτιο %(roomId)s", + "unknown": "άγνωστο", + "Unmute": "Άρση σίγασης", + "Unnamed Room": "Ανώνυμο δωμάτιο", + "Unrecognised command:": "Μη αναγνωρίσιμη εντολή:", + "Unrecognised room alias:": "Μη αναγνωρίσιμο ψευδώνυμο:", + "Unverified": "Ανεπιβεβαίωτο", + "Upload avatar": "Αποστολή προσωπικής εικόνας", + "Upload Failed": "Απέτυχε η αποστολή", + "Upload Files": "Αποστολή αρχείων", + "Upload file": "Αποστολή αρχείου", + "Upload new:": "Αποστολή νέου:", + "Usage": "Χρήση", + "Use with caution": "Να χρησιμοποιείται με προσοχή", + "User ID": "Αναγνωριστικό χρήστη", + "User Interface": "Διεπαφή χρήστη", + "%(user)s is a": "Ο %(user)s είναι", + "User name": "Όνομα χρήστη", + "Username invalid: %(errMessage)s": "Μη έγκυρο όνομα χρήστη: %(errMessage)s", + "Users": "Χρήστες", + "User": "Χρήστης", + "Video call": "Βιντεοκλήση", + "Voice call": "Φωνητική κλήση", + "Warning!": "Προειδοποίηση!", + "Who would you like to communicate with?": "Με ποιον θα θέλατε να επικοινωνήσετε;", + "You are already in a call.": "Είστε ήδη σε μια κλήση.", + "You have no visible notifications": "Δεν έχετε ορατές ειδοποιήσεις", + "you must be a": "πρέπει να είστε", + "You must register to use this functionality": "Πρέπει να εγγραφείτε για να χρησιμοποιήσετε αυτή την λειτουργία", + "You need to be logged in.": "Πρέπει να είστε συνδεδεμένος.", + "You need to enter a user name.": "Πρέπει να εισάγετε ένα όνομα χρήστη.", + "Your password has been reset": "Ο κωδικός πρόσβασης σας έχει επαναφερθεί", + "Sun": "Κυρ", + "Mon": "Δευ", + "Tue": "Τρί", + "Wed": "Τετ", + "Thu": "Πέμ", + "Fri": "Παρ", + "Sat": "Σάβ", + "Jan": "Ιαν", + "Feb": "Φεβ", + "Mar": "Μάρ", + "Apr": "Απρ", + "May": "Μάι", + "Jun": "Ιούν", + "Jul": "Ιούλ", + "Aug": "Αύγ", + "Sep": "Σεπ", + "Oct": "Οκτ", + "Nov": "Νοέ", + "Dec": "Δεκ", + "%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(time)s", + "%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s", + "Set a display name:": "Ορισμός ονόματος εμφάνισης:", + "Set a Display Name": "Ορισμός ονόματος εμφάνισης", + "Upload an avatar:": "Αποστολή προσωπικής εικόνας:", + "This server does not support authentication with a phone number.": "Αυτός ο διακομιστής δεν υποστηρίζει πιστοποίηση με αριθμό τηλεφώνου.", + "Missing password.": "Λείπει ο κωδικός πρόσβασης.", + "Passwords don't match.": "Δεν ταιριάζουν οι κωδικοί πρόσβασης.", + "This doesn't look like a valid email address.": "Δεν μοιάζει με μια έγκυρη διεύθυνση ηλ. αλληλογραφίας.", + "An unknown error occurred.": "Προέκυψε ένα άγνωστο σφάλμα.", + "I already have an account": "Έχω ήδη λογαριασμό", + "An error occurred: %(error_string)s": "Προέκυψε ένα σφάλμα: %(error_string)s", + "Topic": "Θέμα", + "Make Moderator": "Ορισμός συντονιστή", + "Encrypt room": "Κρυπτογράφηση δωματίου", + "Room": "Δωμάτιο", + "Auto-complete": "Αυτόματη συμπλήρωση", + "(~%(count)s results).one": "(~%(count)s αποτέλεσμα)", + "(~%(count)s results).other": "(~%(count)s αποτελέσματα)", + "Active call": "Ενεργή κλήση", + "strike": "επιγράμμιση", + "bullet": "κουκκίδα", + "%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)s συνδέθηκαν %(repeats)s φορές", + "%(oneUser)sjoined %(repeats)s times": "%(oneUser)s συνδέθηκε %(repeats)s φορές", + "%(severalUsers)sjoined": "%(severalUsers)s συνδέθηκαν", + "%(oneUser)sjoined": "%(oneUser)s συνδέθηκε", + "were invited": "προσκλήθηκαν", + "was invited": "προσκλήθηκε", + "were banned": "αποκλείστηκαν", + "was banned": "αποκλείστηκε", + "were kicked": "διώχτηκαν", + "was kicked": "διώχτηκε", + "New Password": "Νέος κωδικός πρόσβασης", + "Start automatically after system login": "Αυτόματη έναρξη μετά τη σύνδεση", + "Options": "Επιλογές", + "Passphrases must match": "Δεν ταιριάζουν τα συνθηματικά", + "Passphrase must not be empty": "Το συνθηματικό δεν πρέπει να είναι κενό", + "Export room keys": "Εξαγωγή κλειδιών δωματίου", + "Confirm passphrase": "Επιβεβαίωση συνθηματικού", + "Import room keys": "Εισαγωγή κλειδιών δωματίου", + "File to import": "Αρχείο για εισαγωγή", + "Start new chat": "Έναρξη νέας συνομιλίας", + "Guest users can't invite users. Please register.": "Οι επισκέπτες δεν έχουν τη δυνατότητα να προσκαλέσουν άλλους χρήστες. Παρακαλούμε εγγραφείτε πρώτα.", + "Confirm Removal": "Επιβεβαίωση αφαίρεσης", + "Unknown error": "Άγνωστο σφάλμα", + "Incorrect password": "Λανθασμένος κωδικός πρόσβασης", + "To continue, please enter your password.": "Για να συνεχίσετε, παρακαλούμε πληκτρολογήστε τον κωδικό πρόσβασής σας.", + "Device name": "Όνομα συσκευής", + "Device Name": "Όνομα συσκευής", + "Device key": "Κλειδί συσκευής", + "Verify device": "Επαλήθευση συσκευής", + "Unable to restore session": "Αδυναμία επαναφοράς συνεδρίας", + "Continue anyway": "Συνέχεια οπωσδήποτε", + "Unknown devices": "Άγνωστες συσκευές", + "Unknown Address": "Άγνωστη διεύθυνση", + "Blacklist": "Μαύρη λίστα", + "Verify...": "Επαλήθευση...", + "ex. @bob:example.com": "π.χ @bob:example.com", + "Add User": "Προσθήκη χρήστη", + "Sign in with CAS": "Σύνδεση με CAS", + "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Μπορείτε να χρησιμοποιήσετε τις προσαρμοσμένες ρυθμίσεις για να εισέλθετε σε άλλους διακομιστές Matrix επιλέγοντας μια διαφορετική διεύθυνση για το διακομιστή.", + "Token incorrect": "Εσφαλμένο διακριτικό", + "A text message has been sent to": "Ένα μήνυμα στάλθηκε στο", + "Please enter the code it contains:": "Παρακαλούμε εισάγετε τον κωδικό που περιέχει:", + "Default server": "Προεπιλεγμένος διακομιστής", + "Custom server": "Προσαρμοσμένος διακομιστής", + "Home server URL": "Διεύθυνση διακομιστή", + "Identity server URL": "Διεύθυνση διακομιστή ταυτοποίησης", + "What does this mean?": "Τι σημαίνει αυτό;", + "Error decrypting audio": "Σφάλμα κατά την αποκρυπτογράφηση του ήχου", + "Error decrypting image": "Σφάλμα κατά την αποκρυπτογράφηση της εικόνας", + "Image '%(Body)s' cannot be displayed.": "Η εικόνα '%(Body)s' δεν μπορεί να εμφανιστεί.", + "This image cannot be displayed.": "Αυτή η εικόνα δεν μπορεί να εμφανιστεί.", + "Error decrypting video": "Σφάλμα κατά την αποκρυπτογράφηση του βίντεο", + "Add an Integration": "Προσθήκη ενσωμάτωσης", + "URL Previews": "Προεπισκόπηση συνδέσμων", + "Enable URL previews for this room (affects only you)": "Ενεργοποίηση της προεπισκόπησης συνδέσμων γι' αυτό το δωμάτιο (επηρεάζει μόνο εσάς)", + "Drop file here to upload": "Αποθέστε εδώ για αποστολή", + "for %(amount)ss": "για %(amount)ss", + "for %(amount)sm": "για %(amount)sm", + "for %(amount)sh": "για %(amount)sh", + "for %(amount)sd": "για %(amount)sd", + "Online": "Σε σύνδεση", + "Idle": "Αδρανής", + "Offline": "Εκτός σύνδεσης", + "Start chatting": "Έναρξη συνομιλίας", + "Start Chatting": "Έναρξη συνομιλίας", + "Click on the button below to start chatting!": "Κάντε κλικ στο κουμπί παρακάτω για να ξεκινήσετε μια συνομιλία!", + "%(senderDisplayName)s removed the room avatar.": "Ο %(senderDisplayName)s διέγραψε την προσωπική εικόνα του δωματίου.", + "%(senderDisplayName)s changed the avatar for %(roomName)s": "Ο %(senderDisplayName)s άλλαξε την προσωπική εικόνα του %(roomName)s", + "Username available": "Διαθέσιμο όνομα χρήστη", + "Username not available": "Μη διαθέσιμο όνομα χρήστη", + "Something went wrong!": "Κάτι πήγε στραβά!", + "Could not connect to the integration server": "Αδυναμία σύνδεσης στον διακομιστή ενσωμάτωσης", + "Create a new chat or reuse an existing one": "Δημιουργία νέας συνομιλίας ή επαναχρησιμοποίηση μιας υπάρχουσας", + "Don't send typing notifications": "Να μη γίνετε αποστολή ειδοποιήσεων πληκτρολόγησης", + "Encrypted by a verified device": "Κρυπτογραφημένο από μια επιβεβαιωμένη συσκευή", + "Encrypted by an unverified device": "Κρυπτογραφημένο από μια ανεπιβεβαίωτη συσκευή", + "Error: Problem communicating with the given homeserver.": "Σφάλμα: πρόβλημα κατά την επικοινωνία με τον ορισμένο διακομιστή.", + "Failed to ban user": "Δεν ήταν δυνατό ο αποκλεισμός του χρήστη", + "Failed to change power level": "Δεν ήταν δυνατή η αλλαγή του επιπέδου δύναμης", + "Failed to fetch avatar URL": "Δεν ήταν δυνατή η ανάκτηση της διεύθυνσης εικόνας", + "Failed to lookup current room": "Δεν ήταν δυνατή η εύρεση του τρέχοντος δωματίου", + "Failed to unban": "Δεν ήταν δυνατή η άρση του αποκλεισμού", + "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s από %(fromPowerLevel)s σε %(toPowerLevel)s", + "Guest access is disabled on this Home Server.": "Έχει απενεργοποιηθεί η πρόσβαση στους επισκέπτες σε αυτόν τον διακομιστή.", + "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 use labs features. Please register.": "Οι επισκέπτες δεν μπορούν να χρησιμοποιήσουν τα πειραματικά χαρακτηριστικά. Παρακαλούμε εγγραφείτε.", + "Guests cannot join this room even if explicitly invited.": "Οι επισκέπτες δεν μπορούν να συνδεθούν στο δωμάτιο ακόμη και αν έχουν καλεστεί.", + "Hide Text Formatting Toolbar": "Απόκρυψη εργαλειοθήκης μορφοποίησης κειμένου", + "Incoming call from %(name)s": "Εισερχόμενη κλήση από %(name)s", + "Incoming video call from %(name)s": "Εισερχόμενη βιντεοκλήση από %(name)s", + "Incoming voice call from %(name)s": "Εισερχόμενη φωνητική κλήση από %(name)s", + "Invalid alias format": "Μη έγκυρη μορφή ψευδώνυμου", + "Invalid address format": "Μη έγκυρη μορφή διεύθυνσης", + "Invalid file%(extra)s": "Μη έγκυρο αρχείο %(extra)s", + "%(senderName)s invited %(targetName)s.": "Ο %(senderName)s προσκάλεσε τον %(targetName)s.", + "Invites user with given id to current room": "Προσκαλεί τον χρήστη με το δοσμένο αναγνωριστικό στο τρέχον δωμάτιο", + "'%(alias)s' is not a valid format for an address": "Το '%(alias)s' δεν είναι μια έγκυρη μορφή διεύθυνσης", + "'%(alias)s' is not a valid format for an alias": "Το '%(alias)s' δεν είναι μια έγκυρη μορφή ψευδώνυμου", + "%(senderName)s made future room history visible to": "Ο %(senderName)s έκανε το μελλοντικό ιστορικό του δωματίου δημόσιο", + "Missing user_id in request": "Λείπει το user_id στο αίτημα", + "Mobile phone number (optional)": "Αριθμός κινητού τηλεφώνου (προαιρετικό)", + "Must be viewing a room": "Πρέπει να βλέπετε ένα δωμάτιο", + "Never send encrypted messages to unverified devices from this device": "Να μη γίνει ποτέ αποστολή κρυπτογραφημένων μηνυμάτων σε ανεπιβεβαίωτες συσκευές από αυτή τη συσκευή", + "Never send encrypted messages to unverified devices in this room": "Να μη γίνει ποτέ αποστολή κρυπτογραφημένων μηνυμάτων σε ανεπιβεβαίωτες συσκευές σε αυτό το δωμάτιο", + "Never send encrypted messages to unverified devices in this room from this device": "Να μη γίνει ποτέ αποστολή κρυπτογραφημένων μηνυμάτων σε ανεπιβεβαίωτες συσκευές, σε αυτό το δωμάτιο, από αυτή τη συσκευή", + "New Composer & Autocomplete": "Νέος συνθέτης και αυτόματη συμπλήρωση", + "not set": "δεν έχει οριστεί", + "not specified": "μη καθορισμένο", + "NOT verified": "ΧΩΡΙΣ επαλήθευση", + "No devices with registered encryption keys": "Καθόλου συσκευές με εγγεγραμένα κλειδιά κρυπτογράφησης", + "No display name": "Χωρίς όνομα", + "No users have specific privileges in this room": "Κανένας χρήστης δεν έχει συγκεκριμένα δικαιώματα σε αυτό το δωμάτιο", + "Once encryption is enabled for a room it cannot be turned off again (for now)": "Μόλις ενεργοποιηθεί η κρυπτογράφηση για ένα δωμάτιο, δεν μπορεί να απενεργοποιηθεί ξανά (για τώρα)", + "Once you've followed the link it contains, click below": "Μόλις ακολουθήσετε τον σύνδεσμο που περιέχει, κάντε κλικ παρακάτω", + "Only people who have been invited": "Μόνο άτομα που έχουν προσκληθεί", + "Otherwise, click here to send a bug report.": "Διαφορετικά, κάντε κλικ εδώ για να αποστείλετε μια αναφορά σφάλματος.", + "%(senderName)s placed a %(callType)s call.": "Ο %(senderName)s πραγματοποίησε μια %(callType)s κλήση.", + "Please check your email and click on the link it contains. Once this is done, click continue.": "Παρακαλούμε ελέγξτε την ηλεκτρονική σας αλληλογραφία και κάντε κλικ στον σύνδεσμο που περιέχει. Μόλις γίνει αυτό, κάντε κλίκ στο κουμπί συνέχεια.", + "Press": "Πατήστε", + "Refer a friend to Riot:": "Πείτε για το Riot σε έναν φίλο σας:", + "Rejoin": "Επανασύνδεση", + "%(senderName)s removed their profile picture.": "Ο %(senderName)s αφαίρεσε τη φωτογραφία του προφίλ του.", + "%(senderName)s requested a VoIP conference.": "Ο %(senderName)s αιτήθηκε μια συνδιάσκεψη VoIP.", + "Riot does not have permission to send you notifications - please check your browser settings": "Το Riot δεν έχει δικαιώματα για αποστολή ειδοποιήσεων - παρακαλούμε ελέγξτε τις ρυθμίσεις του περιηγητή σας", + "Riot was not given permission to send notifications - please try again": "Δεν δόθηκαν δικαιώματα στο Riot να αποστείλει ειδοποιήσεις - παρακαλούμε προσπαθήστε ξανά", + "Room contains unknown devices": "Το δωμάτιο περιέχει άγνωστες συσκευές", + "%(roomName)s is not accessible at this time.": "Το %(roomName)s δεν είναι προσβάσιμο αυτή τη στιγμή.", + "Scroll to bottom of page": "Μετάβαση στο τέλος της σελίδας", + "Scroll to unread messages": "Μεταβείτε στα μη αναγνωσμένα μηνύματα", + "Sender device information": "Πληροφορίες συσκευής αποστολέα", + "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.": "Ο διακομιστής μπορεί να είναι μη διαθέσιμος, υπερφορτωμένος, ή κάτι άλλο να πήγε στραβά.", + "Show panel": "Εμφάνιση καρτέλας", + "Show Text Formatting Toolbar": "Εμφάνιση της εργαλειοθήκης μορφοποίησης κειμένου", + "Some of your messages have not been sent.": "Μερικά από τα μηνύματα σας δεν έχουν αποσταλεί.", + "This room is not recognised.": "Αυτό το δωμάτιο δεν αναγνωρίζεται.", + "to favourite": "στα αγαπημένα", + "To kick users": "Για να διώξετε χρήστες", + "to make a room or": "για δημιουργία ενός δωματίου ή", + "to start a chat with someone": "για να ξεκινήσετε μια συνομιλία με κάποιον", + "Unable to capture screen": "Αδυναμία σύλληψης οθόνης", + "Unknown (user, device) pair:": "Άγνωστο ζεύγος (χρήστη, συσκευής):", + "Uploading %(filename)s and %(count)s others.zero": "Γίνεται αποστολή του %(filename)s", + "Uploading %(filename)s and %(count)s others.other": "Γίνεται αποστολή του %(filename)s και %(count)s υπολοίπων", + "uploaded a file": "ανέβασε ένα αρχείο", + "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (δύναμη %(powerLevelNumber)s)", + "Verification Pending": "Εκκρεμεί επιβεβαίωση", + "Verification": "Επιβεβαίωση", + "verified": "επαληθεύτηκε", + "Verified": "Επαληθεύτηκε", + "Verified key": "Επιβεβαιωμένο κλειδί", + "VoIP conference finished.": "Ολοκληρώθηκε η συνδιάσκεψη VoIP.", + "VoIP conference started.": "Ξεκίνησησε η συνδιάσκεψη VoIP.", + "VoIP is unsupported": "Δεν υποστηρίζεται το VoIP", + "(warning: cannot be disabled again!)": "(προειδοποίηση: δεν μπορεί να απενεργοποιηθεί ξανά)", + "WARNING: Device already verified, but keys do NOT MATCH!": "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Η συσκευή έχει επαληθευτεί, αλλά τα κλειδιά ΔΕΝ ΤΑΙΡΙΑΖΟΥΝ!", + "Who can access this room?": "Ποιος μπορεί να προσπελάσει αυτό το δωμάτιο;", + "Who can read history?": "Ποιος μπορεί να διαβάσει το ιστορικό;", + "Who would you like to add to this room?": "Ποιον θέλετε να προσθέσετε σε αυτό το δωμάτιο;", + "%(senderName)s withdrew %(targetName)s's invitation.": "Ο %(senderName)s ανακάλεσε την πρόσκληση του %(targetName)s.", + "You're not in any rooms yet! Press": "Δεν είστε ακόμη σε κάνενα δωμάτιο! Πατήστε", + "You cannot place a call with yourself.": "Δεν μπορείτε να καλέσετε τον ευατό σας.", + "You cannot place VoIP calls in this browser.": "Δεν μπορείτε να πραγματοποιήσετε κλήσεις VoIP με αυτόν τον περιηγητή.", + "You do not have permission to post to this room": "Δεν έχετε δικαιώματα για να δημοσιεύσετε σε αυτό το δωμάτιο", + "You have been banned from %(roomName)s by %(userName)s.": "Έχετε αποκλειστεί από το δωμάτιο %(roomName)s από τον %(userName)s.", + "You have been invited to join this room by %(inviterName)s": "Έχετε προσκληθεί να συνδεθείτε στο δωμάτιο από τον %(inviterName)s", + "You seem to be in a call, are you sure you want to quit?": "Φαίνεται ότι είστε σε μια κλήση, είστε βέβαιοι ότι θέλετε να αποχωρήσετε;", + "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s", + "This doesn't look like a valid phone number.": "Δεν μοιάζει με έναν έγκυρο αριθμό τηλεφώνου.", + "Make this room private": "Κάντε το δωμάτιο ιδιωτικό", + "There are no visible files in this room": "Δεν υπάρχουν ορατά αρχεία σε αυτό το δωμάτιο", + "Connectivity to the server has been lost.": "Χάθηκε η συνδεσιμότητα στον διακομιστή.", + "%(severalUsers)sleft %(repeats)s times": "%(severalUsers)s έφυγαν %(repeats)s φορές", + "%(severalUsers)srejected their invitations %(repeats)s times": "Οι %(severalUsers)s απέρριψαν τις προσκλήσεις τους %(repeats)s φορές", + "%(oneUser)srejected their invitation %(repeats)s times": "Ο %(oneUser)s απέρριψε την πρόσκληση του %(repeats)s φορές", + "%(severalUsers)srejected their invitations": "Οι %(severalUsers)s απέρριψαν τις προσκλήσεις τους", + "%(oneUser)srejected their invitation": "Ο %(oneUser)s απέρριψε την πρόσκληση", + "were invited %(repeats)s times": "προσκλήθηκαν %(repeats)s φορές", + "was invited %(repeats)s times": "προσκλήθηκε %(repeats)s φορές", + "were banned %(repeats)s times": "αποκλείστηκαν %(repeats)s φορές", + "was banned %(repeats)s times": "αποκλείστηκε %(repeats)s φορές", + "were kicked %(repeats)s times": "διώχθηκαν %(repeats)s φορές", + "was kicked %(repeats)s times": "διώχθηκε %(repeats)s φορές", + "%(severalUsers)schanged their name %(repeats)s times": "%(severalUsers)s άλλαξαν το όνομα τους %(repeats)s φορές", + "%(oneUser)schanged their name %(repeats)s times": "Ο %(oneUser)s άλλαξε το όνομα του %(repeats)s φορές", + "%(severalUsers)schanged their name": "Οι %(severalUsers)s άλλαξαν το όνομα τους", + "%(oneUser)schanged their name": "Ο %(oneUser)s άλλαξε το όνομα του", + "%(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 άλλαξε την προσωπική του εικόνα", + "Please select the destination room for this message": "Παρακαλούμε επιλέξτε ένα δωμάτιο προορισμού για αυτό το μήνυμα", + "Desktop specific": "Μόνο για επιφάνεια εργασίας", + "Analytics": "Αναλυτικά στοιχεία", + "Opt out of analytics": "Αποκλείστε τα αναλυτικά στοιχεία", + "Riot collects anonymous analytics to allow us to improve the application.": "Το Riot συλλέγει ανώνυμα δεδομένα επιτρέποντας μας να βελτιώσουμε την εφαρμογή.", + "Failed to invite": "Δεν ήταν δυνατή η πρόσκληση", + "Failed to invite user": "Δεν ήταν δυνατή η πρόσκληση του χρήστη", + "This action is irreversible.": "Αυτή η ενέργεια είναι μη αναστρέψιμη.", + "In future this verification process will be more sophisticated.": "Στο μέλλον η διαδικασία επαλήθευσης θα είναι πιο εξελιγμένη.", + "I verify that the keys match": "Επιβεβαιώνω πως ταιριάζουν τα κλειδιά", + "\"%(RoomName)s\" contains devices that you haven't seen before.": "Το \"%(RoomName)s\" περιέχει συσκευές που δεν έχετε ξαναδεί.", + "This Home Server would like to make sure you are not a robot": "Ο διακομιστής θέλει να σιγουρευτεί ότι δεν είσαστε ρομπότ", + "Please check your email to continue registration.": "Παρακαλούμε ελέγξτε την ηλεκτρονική σας αλληλογραφία για να συνεχίσετε με την εγγραφή.", + "If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Αν δεν ορίσετε μια διεύθυνση ηλεκτρονικής αλληλογραφίας, δεν θα θα μπορείτε να επαναφέρετε τον κωδικό πρόσβασης σας. Είστε σίγουροι;", + "You are registering with %(SelectedTeamName)s": "Εγγραφείτε με %(SelectedTeamName)s", + "Removed or unknown message type": "Αφαιρέθηκε ή άγνωστος τύπος μηνύματος", + "Disable URL previews by default for participants in this room": "Απενεργοποίηση της προεπισκόπησης συνδέσμων για όλους τους συμμετέχοντες στο δωμάτιο", + "Disable URL previews for this room (affects only you)": "Ενεργοποίηση της προεπισκόπησης συνδέσμων για αυτό το δωμάτιο (επηρεάζει μόνο εσάς)", + " (unsupported)": " (μη υποστηριζόμενο)", + "$senderDisplayName changed the room avatar to ": "Ο $senderDisplayName άλλαξε την εικόνα του δωματίου σε ", + "Missing Media Permissions, click here to request.": "Λείπουν τα δικαιώματα πολύμεσων, κάντε κλικ για να ζητήσετε.", + "You may need to manually permit Riot to access your microphone/webcam": "Μπορεί να χρειαστεί να ορίσετε χειροκίνητα την πρόσβαση του Riot στο μικρόφωνο/κάμερα", + "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Δεν είναι δυνατή η σύνδεση στον διακομιστή - παρακαλούμε ελέγξτε την συνδεσιμότητα, βεβαιωθείτε ότι το πιστοποιητικό SSL του διακομιστή είναι έμπιστο και ότι κάποιο πρόσθετο περιηγητή δεν αποτρέπει τα αιτήματα.", + "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 ή ενεργοποιήστε τα μη ασφαλή σενάρια εντολών.", + "%(senderName)s changed the power level of %(powerLevelDiffText)s.": "Ο %(senderName)s άλλαξε το επίπεδο δύναμης του %(powerLevelDiffText)s.", + "Changes to who can read history will only apply to future messages in this room": "Οι αλλαγές που αφορούν την ορατότητα του ιστορικού θα εφαρμοστούν μόνο στα μελλοντικά μηνύματα του δωματίου", + "Conference calling is in development and may not be reliable.": "Η κλήση συνδιάσκεψης είναι υπό ανάπτυξη και μπορεί να μην είναι αξιόπιστη.", + "Devices will not yet be able to decrypt history from before they joined the room": "Οι συσκευές δεν θα είναι σε θέση να αποκρυπτογραφήσουν το ιστορικό πριν από την είσοδο τους στο δωμάτιο", + "End-to-end encryption is in beta and may not be reliable": "Η κρυπτογράφηση από άκρο σε άκρο είναι σε δοκιμαστικό στάδιο και μπορεί να μην είναι αξιόπιστη", + "%(senderName)s removed their display name (%(oldDisplayName)s).": "Ο %(senderName)s αφαίρεσε το όνομα εμφάνισης του (%(oldDisplayName)s).", + "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "Ο %(senderName)s έστειλε μια πρόσκληση στον %(targetDisplayName)s για να συνδεθεί στο δωμάτιο.", + "%(senderName)s set their display name to %(displayName)s.": "Ο %(senderName)s όρισε το όνομα του σε %(displayName)s.", + "Sorry, this homeserver is using a login which is not recognised ": "Συγγνώμη, ο διακομιστής χρησιμοποιεί έναν τρόπο σύνδεσης που δεν αναγνωρίζεται", + "tag as %(tagName)s": "ετικέτα ως %(tagName)s", + "tag direct chat": "προσθήκη ετικέτας στην απευθείας συνομιλία", + "The phone number entered looks invalid": "Ο αριθμός που καταχωρίσατε δεν είναι έγκυρος", + "This action cannot be performed by a guest user. Please register to be able to do this.": "Αυτή η ενέργεια δεν μπορεί να εκτελεστεί από έναν επισκέπτη. Παρακαλούμε εγγραφείτε για να μπορέσετε να το κάνετε.", + "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 remote side failed to pick up": "Η απομακρυσμένη πλευρά απέτυχε να συλλέξει", + "This Home Server does not support login using email address.": "Ο διακομιστής δεν υποστηρίζει σύνδεση με διευθύνσεις ηλ. αλληλογραφίας.", + "This invitation was sent to an email address which is not associated with this account:": "Η πρόσκληση στάλθηκε σε μια διεύθυνση που δεν έχει συσχετιστεί με αυτόν τον λογαριασμό:", + "These are experimental features that may break in unexpected ways": "Αυτά είναι πειραματικά χαρακτηριστικά και μπορεί να καταρρεύσουν με απροσδόκητους τρόπους", + "The visibility of existing history will be unchanged": "Η ορατότητα του υπάρχοντος ιστορικού θα παραμείνει αμετάβλητη", + "This is a preview of this room. Room interactions have been disabled": "Αυτή είναι μια προεπισκόπηση του δωματίου. Οι αλληλεπιδράσεις δωματίου έχουν απενεργοποιηθεί", + "This room is not accessible by remote Matrix servers": "Αυτό το δωμάτιο δεν είναι προσβάσιμο από απομακρυσμένους διακομιστές Matrix", + "to demote": "για υποβίβαση", + "To reset your password, enter the email address linked to your account": "Για να επαναφέρετε τον κωδικό πρόσβασης σας, πληκτρολογήστε τη διεύθυνση ηλ. αλληλογραφίας όπου είναι συνδεδεμένη με τον λογαριασμό σας", + "to tag as %(tagName)s": "για να οριστεί ετικέτα ως %(tagName)s", + "to tag direct chat": "για να οριστεί ετικέτα σε απευθείας συνομιλία", + "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "Ο %(senderName)s ενεργοποίησε την από άκρο σε άκρο κρυπτογράφηση (algorithm %(algorithm)s).", + "Undecryptable": "Μη αποκρυπτογραφημένο", + "Uploading %(filename)s and %(count)s others.one": "Γίνεται αποστολή του %(filename)s και %(count)s υπολοίπα", + "Would you like to accept or decline this invitation?": "Θα θέλατε να δεχθείτε ή να απορρίψετε την πρόσκληση;", + "You already have existing direct chats with this user:": "Έχετε ήδη απευθείας συνομιλίες με τον χρήστη:", + "You are trying to access %(roomName)s.": "Προσπαθείτε να έχετε πρόσβαση στο %(roomName)s.", + "You have been kicked from %(roomName)s by %(userName)s.": "Έχετε διωχθεί από το δωμάτιο %(roomName)s από τον %(userName)s.", + "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Έχετε αποσυνδεθεί από όλες τις συσκευές και δεν θα λαμβάνετε πλέον ειδοποιήσεις push. Για να ενεργοποιήσετε τις ειδοποιήσεις, συνδεθείτε ξανά σε κάθε συσκευή", + "You have disabled URL previews by default.": "Έχετε απενεργοποιημένη από προεπιλογή την προεπισκόπηση συνδέσμων.", + "You have enabled URL previews by default.": "Έχετε ενεργοποιημένη από προεπιλογή την προεπισκόπηση συνδέσμων.", + "You have entered an invalid contact. Try using their Matrix ID or email address.": "Έχετε πληκτρολογήσει μια άκυρη επαφή. Χρησιμοποιήστε το Matrix ID ή την ηλεκτρονική διεύθυνση αλληλογραφίας τους.", + "You may wish to login with a different account, or add this email to this account.": "Μπορεί να θέλετε να συνδεθείτε με διαφορετικό λογαριασμό, ή να προσθέσετε αυτή τη διεύθυνση ηλεκτρονικής αλληλογραφίας σε αυτόν τον λογαριασμό.", + "You need to be able to invite users to do that.": "Για να το κάνετε αυτό πρέπει να έχετε τη δυνατότητα να προσκαλέσετε χρήστες.", + "You seem to be uploading files, are you sure you want to quit?": "Φαίνεται ότι αποστέλετε αρχεία, είστε βέβαιοι ότι θέλετε να αποχωρήσετε;", + "You should not yet trust it to secure data": "Δεν πρέπει να το εμπιστεύεστε για να ασφαλίσετε δεδομένα", + "Your home server does not support device management.": "Ο διακομιστής δεν υποστηρίζει διαχείριση συσκευών.", + "Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Ο κωδικός πρόσβασης είναι πολύ μικρός (ελ. %(MIN_PASSWORD_LENGTH)s).", + "User names may only contain letters, numbers, dots, hyphens and underscores.": "Τα ονόματα μπορεί να περιέχουν μόνο γράμματα, αριθμούς, τελείες, πάνω και κάτω παύλα.", + "Share message history with new users": "Διαμοιρασμός ιστορικού μηνυμάτων με τους νέους χρήστες", + "numbullet": "απαρίθμηση", + "%(severalUsers)sleft and rejoined %(repeats)s times": "%(severalUsers)s έφυγαν και ξανασυνδέθηκαν %(repeats)s φορές", + "%(oneUser)sleft and rejoined %(repeats)s times": "%(severalUsers)s έφυγε και ξανασυνδέθηκε %(repeats)s φορές", + "%(severalUsers)sleft and rejoined": "%(severalUsers)s έφυγαν και ξανασυνδέθηκαν", + "%(oneUser)sleft and rejoined": "%(severalUsers)s έφυγε και ξανασυνδέθηκε", + "%(severalUsers)shad their invitations withdrawn %(repeats)s times": "Οι %(severalUsers)s απέσυραν τις προσκλήσεις τους %(repeats)s φορές", + "%(oneUser)shad their invitation withdrawn %(repeats)s times": "Ο %(severalUsers)s απέσυρε την πρόσκληση του %(repeats)s φορές", + "%(severalUsers)shad their invitations withdrawn": "Οι %(severalUsers)s απέσυραν τις προσκλήσεις τους", + "%(oneUser)shad their invitation withdrawn": "Ο %(severalUsers)s απέσυρε την πρόσκληση του", + "You must join the room to see its files": "Πρέπει να συνδεθείτε στο δωμάτιο για να δείτε τα αρχεία του", + "Reject all %(invitedRooms)s invites": "Απόρριψη όλων των προσκλήσεων %(invitedRooms)s", + "Failed to invite the following users to the %(roomName)s room:": "Δεν ήταν δυνατή η πρόσκληση των χρηστών στο δωμάτιο %(roomName)s:", + "changing room on a RoomView is not supported": "Δεν υποστηρίζεται η αλλαγή δωματίου σε RoomView", + "demote": "υποβίβαση", + "Deops user with given id": "Deop χρήστη με το συγκεκριμένο αναγνωριστικό", + "Disable inline URL previews by default": "Απενεργοποίηση προεπισκόπησης συνδέσμων από προεπιλογή", + "Drop here to tag %(section)s": "Απόθεση εδώ για ορισμό ετικέτας στο %(section)s", + "Join as voice or video.": "Συμμετάσχετε με φωνή ή βίντεο.", + "Joins room with given alias": "Συνδέεστε στο δωμάτιο με δοσμένο ψευδώνυμο", + "Setting a user name will create a fresh account": "Ορίζοντας ένα όνομα χρήστη θα δημιουργήσει ένα νέο λογαριασμό", + "Show timestamps in 12 hour format (e.g. 2:30pm)": "Εμφάνιση χρονικών σημάνσεων σε 12ωρη μορφή ώρας (π.χ. 2:30 μ.μ.)", + "since the point in time of selecting this option": "από το χρονικό σημείο επιλογής αυτής της ρύθμισης", + "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Το κλειδί υπογραφής που δώσατε αντιστοιχεί στο κλειδί υπογραφής που λάβατε από τη συσκευή %(userId)s %(deviceId)s. Η συσκευή έχει επισημανθεί ως επιβεβαιωμένη.", + "To link to a room it must have an address.": "Για να συνδεθείτε σε ένα δωμάτιο πρέπει να έχετε μια διεύθυνση.", + "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.": "Πρέπει να συνδεθείτε ξανά για να δημιουργήσετε τα κλειδιά κρυπτογράφησης από άκρο σε άκρο για αυτήν τη συσκευή και να υποβάλετε το δημόσιο κλειδί στον διακομιστή σας. Αυτό θα χρειαστεί να γίνει μόνο μια φορά.", + "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Η διεύθυνση ηλεκτρονικής αλληλογραφίας σας δεν φαίνεται να συσχετίζεται με Matrix ID σε αυτόν τον διακομιστή.", + "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Ο κωδικός πρόσβασής σας άλλαξε επιτυχώς. Δεν θα λάβετε ειδοποιήσεις push σε άλλες συσκευές μέχρι να συνδεθείτε ξανά σε αυτές", + "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "Δεν θα μπορέσετε να αναιρέσετε αυτήν την αλλαγή καθώς προωθείτε τον χρήστη να έχει το ίδιο επίπεδο δύναμης με τον εαυτό σας.", + "Sent messages will be stored until your connection has returned.": "Τα απεσταλμένα μηνύματα θα αποθηκευτούν μέχρι να αακτηθεί η σύνδεσή σας.", + "Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Αποστολή ξανά όλων ή ακύρωση όλων τώρα. Μπορείτε επίσης να επιλέξετε μεμονωμένα μηνύματα για να τα στείλετε ξανά ή να ακυρώσετε.", + "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.": "Είστε βέβαιοι ότι θέλετε να καταργήσετε (διαγράψετε) αυτό το συμβάν; Σημειώστε ότι αν διαγράψετε το όνομα δωματίου ή αλλάξετε το θέμα, θα μπορούσε να αναιρέσει την αλλαγή.", + "This allows you to use this app with an existing Matrix account on a different home server.": "Αυτό σας επιτρέπει να χρησιμοποιήσετε την εφαρμογή με έναν υπάρχον λογαριασμό Matrix σε έναν διαφορετικό διακομιστή.", + "You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Μπορείτε επίσης να ορίσετε έναν προσαρμοσμένο διακομιστή ταυτοποίησης, αλλά αυτό συνήθως θα αποτρέψει την αλληλεπίδραση με τους χρήστες που βασίζονται στην ηλεκτρονική διεύθυνση αλληλογραφίας.", + "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "Η προεπισκόπηση συνδέσμων είναι %(globalDisableUrlPreview)s από προεπιλογή για τους συμμετέχοντες του δωματίου.", + "Ongoing conference call%(supportedText)s. %(joinText)s": "Κλήση συνδιάσκεψης σε εξέλιξη %(supportedText)s. %(joinText)s", + "This will be your account name on the homeserver, or you can pick a different server.": "Αυτό θα είναι το όνομα του λογαριασμού σας στον διακομιστή , ή μπορείτε να επιλέξετε διαφορετικό διακομιστή.", + "If you already have a Matrix account you can log in instead.": "Αν έχετε ήδη λογαριασμό Matrix μπορείτε να συνδεθείτε.", + "Failed to load timeline position": "Δεν ήταν δυνατή η φόρτωση της θέσης του χρονολόγιου", + "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question.": "Προσπαθήσατε να φορτώσετε ένα συγκεκριμένο σημείο στο χρονολόγιο του δωματίου, αλλά δεν έχετε δικαίωμα να δείτε το εν λόγω μήνυμα.", + "Tried to load a specific point in this room's timeline, but was unable to find it.": "Προσπαθήσατε να φορτώσετε ένα συγκεκριμένο σημείο στο χρονολόγιο του δωματίου, αλλά δεν καταφέρατε να το βρείτε." } diff --git a/src/i18n/strings/en_US.json b/src/i18n/strings/en_US.json index d857ff06cb..8c8d0ed6d0 100644 --- a/src/i18n/strings/en_US.json +++ b/src/i18n/strings/en_US.json @@ -841,5 +841,78 @@ "Decline": "Decline", "Disable markdown formatting": "Disable markdown formatting", "Disable Notifications": "Disable Notifications", - "Enable Notifications": "Enable Notifications" + "Enable Notifications": "Enable Notifications", + "Create new room": "Create new room", + "Room directory": "Room directory", + "Start chat": "Start chat", + "Welcome page": "Welcome page", + "Create a new chat or reuse an existing one": "Create a new chat or reuse an existing one", + "Drop File Here": "Drop File Here", + "Encrypted by a verified device": "Encrypted by a verified device", + "Encrypted by an unverified device": "Encrypted by an unverified device", + "Encryption is enabled in this room": "Encryption is enabled in this room", + "Encryption is not enabled in this room": "Encryption is not enabled in this room", + "Error: Problem communicating with the given homeserver.": "Error: Problem communicating with the given homeserver.", + "Failed to fetch avatar URL": "Failed to fetch avatar URL", + "Failed to upload profile picture!": "Failed to upload profile picture!", + "Home": "Home", + "Incoming call from %(name)s": "Incoming call from %(name)s", + "Incoming video call from %(name)s": "Incoming video call from %(name)s", + "Incoming voice call from %(name)s": "Incoming voice call from %(name)s", + "Join as voice or video.": "Join as voice or video.", + "Last seen": "Last seen", + "Level:": "Level:", + "No display name": "No display name", + "Otherwise, click here to send a bug report.": "Otherwise, click here to send a bug report.", + "Private Chat": "Private Chat", + "Public Chat": "Public Chat", + "Reason: %(reasonText)s": "Reason: %(reasonText)s", + "Rejoin": "Rejoin", + "Room contains unknown devices": "Room contains unknown devices", + "%(roomName)s does not exist.": "%(roomName)s does not exist.", + "%(roomName)s is not accessible at this time.": "%(roomName)s is not accessible at this time.", + "Searching known users": "Searching known users", + "Seen by %(userName)s at %(dateTime)s": "Seen by %(userName)s at %(dateTime)s", + "Send anyway": "Send anyway", + "Set": "Set", + "Show Text Formatting Toolbar": "Show Text Formatting Toolbar", + "Start authentication": "Start authentication", + "The phone number entered looks invalid": "The phone number entered looks invalid", + "This invitation was sent to an email address which is not associated with this account:": "This invitation was sent to an email address which is not associated with this account:", + "This room": "This room", + "To link to a room it must have an address.": "To link to a room it must have an address.", + "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Unable to ascertain that the address this invite was sent to matches one associated with your account.", + "Undecryptable": "Undecryptable", + "Unencrypted message": "Unencrypted message", + "unknown caller": "unknown caller", + "Unnamed Room": "Unnamed Room", + "Unverified": "Unverified", + "Uploading %(filename)s and %(count)s others.zero": "Uploading %(filename)s", + "Uploading %(filename)s and %(count)s others.one": "Uploading %(filename)s and %(count)s other", + "Uploading %(filename)s and %(count)s others.other": "Uploading %(filename)s and %(count)s others", + "Upload new:": "Upload new:", + "%(user)s is a": "%(user)s is a", + "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (power %(powerLevelNumber)s)", + "Username invalid: %(errMessage)s": "Username invalid: %(errMessage)s", + "Verified": "Verified", + "Would you like to accept or decline this invitation?": "Would you like to accept or decline this invitation?", + "You already have existing direct chats with this user:": "You already have existing direct chats with this user:", + "You have been banned from %(roomName)s by %(userName)s.": "You have been banned from %(roomName)s by %(userName)s.", + "You have been kicked from %(roomName)s by %(userName)s.": "You have been kicked from %(roomName)s by %(userName)s.", + "You may wish to login with a different account, or add this email to this account.": "You may wish to login with a different account, or add this email to this account.", + "You must register to use this functionality": "You must register to use this functionality", + "Your home server does not support device management.": "Your home server does not support device management.", + "Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Resend all or cancel all now. You can also select individual messages to resend or cancel.", + "(~%(count)s results).one": "(~%(count)s result)", + "(~%(count)s results).other": "(~%(count)s results)", + "New Password": "New Password", + "Device Name": "Device Name", + "Start chatting": "Start chatting", + "Start Chatting": "Start Chatting", + "Click on the button below to start chatting!": "Click on the button below to start chatting!", + "Username available": "Username available", + "Username not available": "Username not available", + "Something went wrong!": "Something went wrong!", + "This will be your account name on the homeserver, or you can pick a different server.": "This will be your account name on the homeserver, or you can pick a different server.", + "If you already have a Matrix account you can log in instead.": "If you already have a Matrix account you can log in instead." } diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 4b074b63ea..9f867e2013 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -129,7 +129,7 @@ "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 to tag %(section)s": "Déposer ici pour marque comme %(section)s", + "Drop here to tag %(section)s": "Déposer ici pour marquer comme %(section)s", "Ed25519 fingerprint": "Empreinte Ed25519", "Email Address": "Adresse e-mail", "Email, name or matrix ID": "E-mail, nom ou identifiant Matrix", @@ -282,7 +282,7 @@ "Email": "E-mail", "Failed to unban": "Échec de l'amnistie", "Failed to upload file": "Échec du téléchargement", - "Failed to verify email address: make sure you clicked the link in the email": "Échec de la vérification de l’adresse e-mail: vérifiez que vous avez bien cliqué sur le lien dans l’e-mail", + "Failed to verify email address: make sure you clicked the link in the email": "Échec de la vérification de l’adresse e-mail : vérifiez que vous avez bien cliqué sur le lien dans l’e-mail", "Failure to create room": "Échec de la création du salon", "favourite": "favoris", "Favourites": "Favoris", @@ -290,7 +290,7 @@ "Filter room members": "Filtrer les membres par nom", "Forget room": "Oublier le salon", "Forgot your password?": "Mot de passe perdu ?", - "For security, this session has been signed out. Please sign in again.": "Par sécurité, la session a expiré. Merci de vous authentifer à nouveau.", + "For security, this session has been signed out. Please sign in again.": "Par sécurité, la session a expiré. Merci de vous authentifier à nouveau.", "Found a bug?": "Trouvé un problème ?", "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s à %(toPowerLevel)s", "Guest users can't create new rooms. Please register to create room and start a chat.": "Les visiteurs ne peuvent créer de nouveaux salons. Merci de vous enregistrer pour commencer une discussion.", @@ -298,7 +298,7 @@ "had": "avait", "Hangup": "Raccrocher", "Hide read receipts": "Cacher les accusés de réception", - "Hide Text Formatting Toolbar": "Cacher la barre de formattage de texte", + "Hide Text Formatting Toolbar": "Cacher la barre de formatage de texte", "Historical": "Historique", "Homeserver is": "Le homeserver est", "Identity Server is": "Le serveur d'identité est", @@ -325,8 +325,8 @@ "%(targetName)s joined the room.": "%(targetName)s a joint le salon.", "Joins room with given alias": "Joint le salon avec l'alias défini", "%(senderName)s kicked %(targetName)s.": "%(senderName)s a expulsé %(targetName)s.", - "Kick": "Expluser", - "Kicks user with given id": "Expulse l'utilisateur and l'ID donné", + "Kick": "Expulser", + "Kicks user with given id": "Expulse l'utilisateur avec l'ID donné", "Labs": "Laboratoire", "Leave room": "Quitter le salon", "left and rejoined": "a quitté et rejoint", @@ -453,7 +453,7 @@ "Show timestamps in 12 hour format (e.g. 2:30pm)": "Afficher l’heure au format am/pm (par ex. 2:30pm)", "Signed Out": "Déconnecté", "Sign in": "S'identifier", - "Sign out": "Se Déconnecter", + "Sign out": "Se déconnecter", "since the point in time of selecting this option": "depuis le moment où cette option a été sélectionnée", "since they joined": "depuis qu’ils ont rejoint le salon", "since they were invited": "depuis qu’ils ont été invités", @@ -498,7 +498,7 @@ "To link to a room it must have": "Pour avoir un lien vers un salon, il doit avoir", "to make a room or": "pour créer un salon ou", "To remove other users' messages": "Pour supprimer les messages des autres utilisateurs", - "To reset your password, enter the email address linked to your account": "Pour réinitialiser votre mot de passe, merci d’entrer l’adresse email liée à votre compte", + "To reset your password, enter the email address linked to your account": "Pour réinitialiser votre mot de passe, merci d’entrer l’adresse e-mail liée à votre compte", "to restore": "pour restaurer", "To send events of type": "Pour envoyer des évènements du type", "To send messages": "Pour envoyer des messages", @@ -527,7 +527,7 @@ "Unknown room %(roomId)s": "Salon inconnu %(roomId)s", "unknown": "inconnu", "Unmute": "Activer le son", - "uploaded a file": "télécharger un fichier", + "uploaded a file": "téléchargé un fichier", "Upload avatar": "Télécharger une photo de profil", "Upload Failed": "Erreur lors du téléchargement", "Upload Files": "Télécharger les fichiers", @@ -547,7 +547,7 @@ "VoIP conference finished.": "Conférence audio terminée.", "VoIP conference started.": "Conférence audio démarrée.", "VoIP is unsupported": "Appels voix non supportés", - "(warning: cannot be disabled again!)": "(attention: ne peut être désactivé !)", + "(warning: cannot be disabled again!)": "(attention : ne peut être désactivé !)", "Warning!": "Attention !", "Who can access this room?": "Qui peut accéder au salon ?", "Who can read history?": "Qui peut lire l'historique ?", @@ -562,13 +562,13 @@ "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", + "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 notifications, identifiez vous à nouveau sur tous les appareils", "You have no visible notifications": "Vous n'avez pas de notifications visibles", "you must be a": "vous devez être un", "You need to be able to invite users to do that.": "Vous devez être capable d’inviter des utilisateurs pour faire ça.", "You need to be logged in.": "Vous devez être connecté.", "You need to 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.", + "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 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", @@ -647,7 +647,7 @@ "%(oneUser)sleft and rejoined %(repeats)s times": "%(oneUser)sa quitté et à nouveau joint le salon %(repeats)s fois", "%(severalUsers)sleft and rejoined": "%(severalUsers)sont quitté et à nouveau joint le salon", "%(oneUser)sleft and rejoined": "%(oneUser)sa quitté et à nouveau joint le salon", - "%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)sotn rejeté leurs invitations %(repeats)s fois", + "%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)sont rejeté leurs invitations %(repeats)s fois", "%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)sa rejeté son invitation %(repeats)s fois", "%(severalUsers)srejected their invitations": "%(severalUsers)sont rejeté leurs invitations", "%(oneUser)srejected their invitation": "%(oneUser)sa rejeté son invitation", @@ -699,7 +699,7 @@ "Failed to invite user": "Echec lors de l'invitation de l'utilisateur", "Failed to invite the following users to the %(roomName)s room:": "Echec lors de l’invitation des utilisateurs suivants dans le salon %(roomName)s :", "Confirm Removal": "Confirmer la suppression", - "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é.", + "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 à 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.", @@ -831,7 +831,7 @@ "%(count)s new messages.one": "%(count)s nouveau message", "%(count)s new messages.other": "%(count)s nouveaux messages", "Disable markdown formatting": "Désactiver le formattage markdown", - "Error: Problem communicating with the given homeserver.": "Erreur: Problème de communication avec le homeserveur.", + "Error: Problem communicating with the given homeserver.": "Erreur : Problème de communication avec le homeserveur.", "Failed to fetch avatar URL": "Échec lors de la récupération de l’URL de l’avatar", "The phone number entered looks invalid": "Le numéro de téléphone entré semble être invalide", "This room is private or inaccessible to guests. You may be able to join if you register.": "Ce salon est privé ou interdits aux visiteurs. Vous pourrez peut-être le joindre si vous vous enregistrez.", @@ -854,5 +854,68 @@ "Username not available": "Nom d'utilisateur indisponible", "Something went wrong!": "Quelque chose s’est mal passé !", "This will be your account name on the homeserver, or you can pick a different server.": "Cela sera le nom de votre compte sur le serveur , ou vous pouvez sélectionner un autre serveur.", - "If you already have a Matrix account you can log in instead.": "Si vous avez déjà un compte Matrix vous pouvez vous identifier à la place." + "If you already have a Matrix account you can log in instead.": "Si vous avez déjà un compte Matrix vous pouvez vous identifier à la place.", + "a room": "un salon", + "Accept": "Accepter", + "Active call (%(roomName)s)": "Appel en cours (%(roomName)s)", + "Admin tools": "Outils d'administration", + "Alias (optional)": "Alias (optionnel)", + "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Impossible de se connecter au homeserver - veuillez vérifier votre connexion, assurez vous que vous faite confiance au certificat SSL de votre homeserver, et qu'aucune extension de navigateur ne bloque de requêtes.", + "Click here to join the discussion!": "Cliquer ici pour joindre la discussion !", + "Close": "Fermer", + "Custom": "Personnaliser", + "Decline": "Décliner", + "Disable Notifications": "Désactiver les Notifications", + "Drop File Here": "Déposer le Fichier Ici", + "Enable Notifications": "Activer les Notifications", + "Failed to upload profile picture!": "Échec du téléchargement de la photo de profil !", + "Incoming call from %(name)s": "Appel entrant de %(name)s", + "Incoming video call from %(name)s": "Appel vidéo entrant de %(name)s", + "Incoming voice call from %(name)s": "Appel audio entrant de %(name)s", + "No display name": "Pas de nom d'affichage", + "Otherwise, click here to send a bug report.": "Sinon, cliquer ici pour envoyer un rapport d'erreur.", + "Private Chat": "Conversation Privée", + "Public Chat": "Conversation Publique", + "Reason: %(reasonText)s": "Raison: %(reasonText)s", + "Rejoin": "Rejoindre", + "Room contains unknown devices": "Le salon contient des appareils inconnus", + "%(roomName)s does not exist.": "%(roomName)s n'existe pas.", + "%(roomName)s is not accessible at this time.": "%(roomName)s n'est pas accessible pour le moment.", + "Seen by %(userName)s at %(dateTime)s": "Vu par %(userName)s à %(dateTime)s", + "Send anyway": "Envoyer quand même", + "Show Text Formatting Toolbar": "Afficher la barre de formatage de texte", + "Start authentication": "Démarrer une authentification", + "This invitation was sent to an email address which is not associated with this account:": "Cette invitation a été envoyée à une adresse e-mail qui n'est pas associée avec ce compte :", + "This room": "Ce salon", + "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Impossible de vérifier que l'adresse à qui cette invitation a été envoyée correspond à celle associée à votre compte.", + "Undecryptable": "Indécryptable", + "Unencrypted message": "Message non-encrypté", + "unknown caller": "appelant inconnu", + "Unnamed Room": "Salon sans nom", + "Unverified": "Non verifié", + "%(user)s is a": "%(user)s est un(e)", + "Username invalid: %(errMessage)s": "Nom d'utilisateur invalide : %(errMessage)s", + "Verified": "Verifié", + "Would you like to accept or decline this invitation?": "Souhaitez-vous accepter ou refuser cette invitation ?", + "You have been banned from %(roomName)s by %(userName)s.": "Vous avez été bannis de %(roomName)s par %(userName)s.", + "You have been kicked from %(roomName)s by %(userName)s.": "Vous avez été expulsé de %(roomName)s by %(userName)s.", + "You may wish to login with a different account, or add this email to this account.": "Vous souhaiteriez peut-être vous identifier avec un autre compte, ou ajouter cette e-mail à votre compte.", + "Your home server does not support device management.": "Votre home server ne supporte pas la gestion d'appareils.", + "(~%(count)s results).one": "(~%(count)s résultat)", + "(~%(count)s results).other": "(~%(count)s résultats)", + "Device Name": "Nom de l'appareil", + "Encrypted by a verified device": "Encrypté par un appareil verifié", + "Encrypted by an unverified device": "Encrypté par un appareil non verifié", + "Encryption is enabled in this room": "L'encryption est activée sur ce salon", + "Encryption is not enabled in this room": "L'encryption n'est pas activée sur ce salon", + "Home": "Accueil", + "To link to a room it must have an address.": "Pour ajouter un lien à un salon celui-ci doit avoir une adresse.", + "Upload new:": "Télécharger un nouveau :", + "And %(count)s more...": "Et %(count)s autres...", + "Join as voice or video.": "Joindre avec audio ou vidéo.", + "Last seen": "Dernier vu", + "Level:": "Niveau :", + "Searching known users": "En recherche d'utilisateurs connus", + "Set": "Définit", + "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (pouvoir %(powerLevelNumber)s)" } diff --git a/src/i18n/strings/nl.json b/src/i18n/strings/nl.json index 226706c884..c3c3ac2cfa 100644 --- a/src/i18n/strings/nl.json +++ b/src/i18n/strings/nl.json @@ -1,7 +1,7 @@ { "af": "Afrikaans", "ar-ae": "Arabisch (U.A.E.)", - "Direct Chat": "Privé gesprek", + "Direct Chat": "Privégesprek", "ar-bh": "Arabisch (Bahrain)", "ar-dz": "Arabisch (Algerije)", "ar-eg": "Arabisch (Egypte)", @@ -60,7 +60,7 @@ "es-ve": "Spaans (Venezuela)", "et": "Estlands", "eu": "Baskisch (Bask)", - "fa": "Farsi", + "fa": "Perzisch (Farsi)", "fi": "Fins", "fo": "Faeroesisch", "fr-be": "Frans (België)", @@ -199,5 +199,58 @@ "Confirm your new password": "Bevestig je nieuwe wachtwoord", "Continue": "Doorgaan", "Could not connect to the integration server": "Mislukt om te verbinden met de integratie server", - "Cancel": "Annuleer" + "Cancel": "Annuleren", + "a room": "een ruimte", + "Accept": "Accepteren", + "Active call (%(roomName)s)": "Actief gesprek (%(roomName)s)", + "Add": "Toevoegen", + "Add a topic": "Een onderwerp toevoegen", + "Admin tools": "Beheerhulpmiddelen", + "And %(count)s more...": "Nog %(count)s andere...", + "VoIP": "VoiP", + "Missing Media Permissions, click here to request.": "Ontbrekende mediatoestemmingen, klik hier om aan te vragen.", + "No Microphones detected": "Geen microfoons gevonden", + "No Webcams detected": "Geen webcams gevonden", + "No media permissions": "Geen mediatoestemmingen", + "You may need to manually permit Riot to access your microphone/webcam": "U moet Riot wellicht handmatig toestemming geven om uw microfoon/webcam te gebruiken", + "Default Device": "Standaardapparaat", + "Microphone": "Microfoon", + "Camera": "Camera", + "Hide removed messages": "Verwijderde berichten verbergen", + "Alias (optional)": "Alias (optioneel)", + "Anyone": "Iedereen", + "Are you sure you want to leave the room '%(roomName)s'?": "Weet u zeker dat u de ruimte '%(roomName)s' wil verlaten?", + "Are you sure you want to upload the following files?": "Weet u zeker dat u de volgende bestanden wil uploaden?", + "Click here to join the discussion!": "Klik hier om mee te doen aan de discussie!", + "Close": "Sluiten", + "%(count)s new messages.one": "%(count)s nieuw bericht", + "Create new room": "Een nieuwe kamer maken", + "Custom Server Options": "Aangepaste serverinstellingen", + "Dismiss": "Afwijzen", + "Drop here %(toAction)s": "%(toAction)s hier naartoe verplaatsen", + "Error": "Fout", + "Failed to forget room %(errCode)s": "Kamer vergeten mislukt %(errCode)s", + "Failed to join the room": "Kamer binnengaan mislukt", + "Favourite": "Favoriet", + "Mute": "Dempen", + "Notifications": "Meldingen", + "Operation failed": "Actie mislukt", + "Please Register": "Registreer alstublieft", + "powered by Matrix": "mogelijk gemaakt door Matrix", + "Remove": "Verwijderen", + "Room directory": "Kamerlijst", + "Settings": "Instellingen", + "Start chat": "Gesprek starten", + "unknown error code": "onbekende foutcode", + "Sunday": "Zondag", + "Monday": "Maandag", + "Tuesday": "Dinsdag", + "Wednesday": "Woensdag", + "Thursday": "Donderdag", + "Friday": "Vrijdag", + "Saturday": "Zaterdag", + "Welcome page": "Welkomstpagina", + "Search": "Zoeken", + "OK": "OK", + "Failed to change password. Is your password correct?": "Wachtwoord wijzigen mislukt. Is uw wachtwoord juist?" } diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json index af5e27acc2..a3da858f07 100644 --- a/src/i18n/strings/sv.json +++ b/src/i18n/strings/sv.json @@ -291,5 +291,12 @@ "Failed to upload file": "Det gick inte att ladda upp filen", "Failed to verify email address: make sure you clicked the link in the email": "Det gick inte att bekräfta epostadressen, klicka på länken i epostmeddelandet", "Favourite": "Favorit", - "favourite": "favorit" + "favourite": "favorit", + "a room": "ett rum", + "Accept": "Godkänn", + "Access Token:": "Åtkomsttoken:", + "Active call (%(roomName)s)": "Aktiv samtal (%(roomName)s)", + "Add": "Lägg till", + "Admin tools": "Admin verktyg", + "And %(count)s more...": "Och %(count) till..." } From aab87233c37ab70cb027ff5353a3c4451e2ed48a Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 13 Jun 2017 11:39:37 +0100 Subject: [PATCH 080/120] Add script to copy translations between files So we can fill in missing translations from different dialects Use it to fill in missing strings in pt from pt_BR --- scripts/copy-i18n.py | 46 ++++++++++++++++++++ src/i18n/strings/pt.json | 92 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 137 insertions(+), 1 deletion(-) create mode 100755 scripts/copy-i18n.py diff --git a/scripts/copy-i18n.py b/scripts/copy-i18n.py new file mode 100755 index 0000000000..c3b8d6072e --- /dev/null +++ b/scripts/copy-i18n.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python + +import json +import sys +import os + +if len(sys.argv) < 3: + print "Usage: %s " % (sys.argv[0],) + print "eg. %s pt_BR.json pt.json" % (sys.argv[0],) + print + print "Adds any translations to that exist in but not " + sys.exit(1) + +srcpath = sys.argv[1] +dstpath = sys.argv[2] +tmppath = dstpath + ".tmp" + +with open(srcpath) as f: + src = json.load(f) + +with open(dstpath) as f: + dst = json.load(f) + +toAdd = {} +for k,v in src.iteritems(): + if k not in dst: + print "Adding %s" % (k,) + toAdd[k] = v + +# don't just json.dumps as we'll probably re-order all the keys (and they're +# not in any given order so we can't just sort_keys). Append them to the end. +with open(dstpath) as ifp: + with open(tmppath, 'w') as ofp: + for line in ifp: + strippedline = line.strip() + if strippedline in ('{', '}'): + ofp.write(line) + elif strippedline.endswith(','): + ofp.write(line) + else: + ofp.write(' '+strippedline) + ofp.write(",\n") + toAddStr = json.dumps(toAdd, indent=4, separators=(',', ': '), ensure_ascii=False, encoding="utf8")[1:-1] + ofp.write(toAddStr.encode('utf8')) + +os.rename(tmppath, dstpath) diff --git a/src/i18n/strings/pt.json b/src/i18n/strings/pt.json index d366fb7e66..e3893fc667 100644 --- a/src/i18n/strings/pt.json +++ b/src/i18n/strings/pt.json @@ -875,5 +875,95 @@ "Tagged as: ": "Marcado como: ", "You have disabled URL previews by default.": "Você desabilitou pré-visualizações de links por padrão.", "You have enabled URL previews by default.": "Você habilitou pré-visualizações de links por padrão.", - "You have entered an invalid contact. Try using their Matrix ID or email address.": "Você inseriu um contato inválido. Tente usar o ID Matrix ou endereço de e-mail da pessoa que está buscando." + "You have entered an invalid contact. Try using their Matrix ID or email address.": "Você inseriu um contato inválido. Tente usar o ID Matrix ou endereço de e-mail da pessoa que está buscando.", + + "You have been banned from %(roomName)s by %(userName)s.": "Você foi expulso(a) da sala %(roomName)s por %(userName)s.", + "Send anyway": "Enviar de qualquer maneira", + "This room": "Esta sala", + "Create new room": "Criar nova sala", + "Click on the button below to start chatting!": "Clique no botão abaixo para começar a conversar!", + "Disable markdown formatting": "Desabilitar formatação MarkDown", + "No display name": "Sem nome público de usuária(o)", + "This will be your account name on the homeserver, or you can pick a different server.": "Este será seu nome de conta no Servidor de Base , ou então você pode escolher um servidor diferente.", + "Uploading %(filename)s and %(count)s others.one": "Enviando o arquivo %(filename)s e %(count)s outros arquivos", + "Hide removed messages": "Ocultar mensagens removidas", + "You may wish to login with a different account, or add this email to this account.": "Você pode querer fazer login com uma conta diferente, ou adicionar este e-mail a esta conta.", + "Welcome page": "Página de boas vindas", + "Upload new:": "Enviar novo:", + "Private Chat": "Conversa privada", + "You must register to use this functionality": "Você deve se registrar para poder usar esta funcionalidade", + "And %(count)s more...": "E mais %(count)s...", + "Start chatting": "Iniciar a conversa", + "Public Chat": "Conversa pública", + "Uploading %(filename)s and %(count)s others.zero": "Enviando o arquivo %(filename)s", + "Room contains unknown devices": "Esta sala contém dispositivos desconhecidos", + "Admin tools": "Ferramentas de administração", + "You have been kicked from %(roomName)s by %(userName)s.": "Você foi removido(a) da sala %(roomName)s por %(userName)s.", + "Undecryptable": "Não é possível descriptografar", + "Incoming video call from %(name)s": "Chamada de vídeo de %(name)s recebida", + "Otherwise, click here to send a bug report.": "Caso contrário, clique aqui para enviar um relatório de erros.", + "To link to a room it must have an address.": "Para produzir um link para uma sala, ela necessita ter um endereço.", + "a room": "uma sala", + "Your home server does not support device management.": "O seu Servidor de Base não suporta o gerenciamento de dispositivos.", + "Searching known users": "Buscando pessoas conhecidas", + "Alias (optional)": "Apelido (opcional)", + "Active call (%(roomName)s)": "Chamada ativa (%(roomName)s)", + "Unable to ascertain that the address this invite was sent to matches one associated with your account.": "Não foi possível garantir que o endereço para o qual este convite foi enviado bate com alqum que está associado com sua conta.", + "Error: Problem communicating with the given homeserver.": "Erro: problema de comunicação com o Servidor de Base fornecido.", + "Failed to upload profile picture!": "Falha ao enviar a imagem de perfil!", + "This invitation was sent to an email address which is not associated with this account:": "Este convite foi enviado para um endereço de e-mail que não é associado a esta conta:", + "Show Text Formatting Toolbar": "Exibir barra de formatação de texto", + "Room directory": "Lista pública de salas", + "Failed to fetch avatar URL": "Falha ao obter a URL da imagem de perfil", + "Incoming call from %(name)s": "Chamada de %(name)s recebida", + "Last seen": "Último uso", + "Drop File Here": "Arraste o arquivo aqui", + "Start Chatting": "Iniciar a conversa", + "Would you like to accept or decline this invitation?": "Você gostaria de aceitar ou recusar este convite?", + "Seen by %(userName)s at %(dateTime)s": "Visto por %(userName)s em %(dateTime)s", + "Verified": "Verificado", + "%(roomName)s does not exist.": "%(roomName)s não existe.", + "Enable Notifications": "Habilitar notificações", + "Username not available": "Nome de usuária(o) indisponível", + "Encrypted by a verified device": "Criptografado por um dispositivo verificado", + "(~%(count)s results).other": "(~%(count)s resultados)", + "unknown caller": "a pessoa que está chamando é desconhecida", + "Start authentication": "Iniciar autenticação", + "(~%(count)s results).one": "(~%(count)s resultado)", + "New Password": "Nova senha", + "Username invalid: %(errMessage)s": "Nome de usuária(o) inválido: %(errMessage)s", + "Disable Notifications": "Desabilitar notificações", + "%(count)s new messages.one": "%(count)s nova mensagem", + "Device Name": "Nome do dispositivo", + "Incoming voice call from %(name)s": "Chamada de voz de %(name)s recebida", + "If you already have a Matrix account you can log in instead.": "Se você já tem uma conta Matrix, pode também fazer login.", + "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.": "Não foi possível conectar ao Servidor de Base. Por favor, confira sua conectividade à internet, garanta que o certificado SSL do Servidor de Base é confiável, e que uma extensão do navegador não esteja bloqueando as requisições de rede.", + "Encrypted by an unverified device": "Criptografado por um dispositivo não verificado", + "Set": "Definir", + "Unencrypted message": "Mensagem não criptografada", + "Join as voice or video.": "Participar por voz ou por vídeo.", + "Uploading %(filename)s and %(count)s others.other": "Enviando o arquivo %(filename)s e %(count)s outros arquivos", + "Username available": "Nome de usuária(o) disponível", + "Close": "Fechar", + "Level:": "Nível:", + "%(count)s new messages.other": "%(count)s novas mensagens", + "Unverified": "Não verificado", + "Click here to join the discussion!": "Clique aqui para participar da conversa!", + "Decline": "Recusar", + "Custom": "Personalizado", + "Add": "Adicionar", + "%(user)s is a": "%(user)s é um(a)", + "Unnamed Room": "Sala sem nome", + "The phone number entered looks invalid": "O número de telefone inserido parece ser inválido", + "Rejoin": "Voltar a participar da sala", + "Create a new chat or reuse an existing one": "Criar uma nova conversa ou reutilizar alguma já existente", + "Resend all or cancel all now. You can also select individual messages to resend or cancel.": "Reenviar todas ou cancelar todas agora. Você também pode selecionar mensagens individuais que queira reenviar ou cancelar.", + "Reason: %(reasonText)s": "Justificativa: %(reasonText)s", + "Home": "Início", + "Something went wrong!": "Algo deu errado!", + "%(userName)s (power %(powerLevelNumber)s)": "%(userName)s (nível de permissão %(powerLevelNumber)s)", + "Start chat": "Iniciar conversa pessoal", + "You already have existing direct chats with this user:": "Você já tem conversas pessoais com esta pessoa:", + "Accept": "Aceitar", + "%(roomName)s is not accessible at this time.": "%(roomName)s não está acessível neste momento." } From 431b482d18fb8afdc1363319c59352c72d98499c Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 13 Jun 2017 11:54:28 +0100 Subject: [PATCH 081/120] Don't put in spurious newline --- scripts/copy-i18n.py | 7 ++++--- src/i18n/strings/pt.json | 1 - 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/copy-i18n.py b/scripts/copy-i18n.py index c3b8d6072e..07b1271239 100755 --- a/scripts/copy-i18n.py +++ b/scripts/copy-i18n.py @@ -38,9 +38,10 @@ with open(dstpath) as ifp: elif strippedline.endswith(','): ofp.write(line) else: - ofp.write(' '+strippedline) - ofp.write(",\n") - toAddStr = json.dumps(toAdd, indent=4, separators=(',', ': '), ensure_ascii=False, encoding="utf8")[1:-1] + ofp.write(' '+strippedline+',') + toAddStr = json.dumps(toAdd, indent=4, separators=(',', ': '), ensure_ascii=False, encoding="utf8").strip("{}\n") + ofp.write("\n") ofp.write(toAddStr.encode('utf8')) + ofp.write("\n") os.rename(tmppath, dstpath) diff --git a/src/i18n/strings/pt.json b/src/i18n/strings/pt.json index e3893fc667..9f538eb34a 100644 --- a/src/i18n/strings/pt.json +++ b/src/i18n/strings/pt.json @@ -876,7 +876,6 @@ "You have disabled URL previews by default.": "Você desabilitou pré-visualizações de links por padrão.", "You have enabled URL previews by default.": "Você habilitou pré-visualizações de links por padrão.", "You have entered an invalid contact. Try using their Matrix ID or email address.": "Você inseriu um contato inválido. Tente usar o ID Matrix ou endereço de e-mail da pessoa que está buscando.", - "You have been banned from %(roomName)s by %(userName)s.": "Você foi expulso(a) da sala %(roomName)s por %(userName)s.", "Send anyway": "Enviar de qualquer maneira", "This room": "Esta sala", From 918efe591248f51c97ffc89ecf07a5831628ef6d Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 13 Jun 2017 12:18:48 +0100 Subject: [PATCH 082/120] width and height must be int otherwise synapse cries Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/views/messages/RoomAvatarEvent.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/views/messages/RoomAvatarEvent.js b/src/components/views/messages/RoomAvatarEvent.js index 525f7b81ee..ed790953dc 100644 --- a/src/components/views/messages/RoomAvatarEvent.js +++ b/src/components/views/messages/RoomAvatarEvent.js @@ -62,8 +62,8 @@ module.exports = React.createClass({ var url = ContentRepo.getHttpUriForMxc( MatrixClientPeg.get().getHomeserverUrl(), ev.getContent().url, - 14 * window.devicePixelRatio, - 14 * window.devicePixelRatio, + Math.ceil(14 * window.devicePixelRatio), + Math.ceil(14 * window.devicePixelRatio), 'crop' ); From 5fd45233fb443b6750b31334435ff873c9a58259 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 13 Jun 2017 17:35:09 +0100 Subject: [PATCH 083/120] DM guessing: prefer oldest joined member In the DM guessing code, prefer the oldest joined member if there's anyone in the rom other than us. Otherwise, fall back to the old behaviour. Fixes https://github.com/vector-im/riot-web/issues/4288 --- src/Rooms.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Rooms.js b/src/Rooms.js index 16b5ab9ee2..3ac7c68533 100644 --- a/src/Rooms.js +++ b/src/Rooms.js @@ -144,7 +144,18 @@ export function guessDMRoomTarget(room, me) { let oldestTs; let oldestUser; - // Pick the user who's been here longest (and isn't us) + // Pick the joined user who's been here longest (and isn't us), + for (const user of room.getJoinedMembers()) { + if (user.userId == me.userId) continue; + + if (oldestTs === undefined || user.events.member.getTs() < oldestTs) { + oldestUser = user; + oldestTs = user.events.member.getTs(); + } + } + if (oldestUser) return oldestUser; + + // if there are no joined members other than us, use the oldest member for (const user of room.currentState.getMembers()) { if (user.userId == me.userId) continue; From f4aadafed95df9c17d9efd093066152354a895a7 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 13 Jun 2017 17:39:20 +0100 Subject: [PATCH 084/120] remove mx_filterFlipColor from verified e2e icon so its not purple :/ Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/views/rooms/RoomSettings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/views/rooms/RoomSettings.js b/src/components/views/rooms/RoomSettings.js index 9a3236cdb9..171af4764b 100644 --- a/src/components/views/rooms/RoomSettings.js +++ b/src/components/views/rooms/RoomSettings.js @@ -594,7 +594,7 @@ module.exports = React.createClass({