From 197a2145b6e25c613fa5c8a1305a9244d22adc05 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Thu, 9 Apr 2020 03:00:58 +0000 Subject: [PATCH 001/162] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (2282 of 2282 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 46d32a2af5..668e3ed158 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -2344,5 +2344,14 @@ "Liberate your communication": "讓您的通訊自由", "Send a Direct Message": "傳送直接訊息", "Explore Public Rooms": "探索公開聊天室", - "Create a Group Chat": "建立群組聊天" + "Create a Group Chat": "建立群組聊天", + "%(name)s is requesting verification": "%(name)s 正在要求驗證", + "well formed": "結構良好", + "unexpected type": "預料之外的類型", + "Confirm your account deactivation by using Single Sign On to prove your identity.": "透過使用單一登入系統來證您的身份以確認刪除您的帳號。", + "Are you sure you want to deactivate your account? This is irreversible.": "您確定您想要停用您的帳號嗎?此為不可逆的操作。", + "Confirm account deactivation": "確認停用帳號", + "Server did not require any authentication": "伺服器不需要任何驗證", + "Server did not return valid authentication information.": "伺服器沒有回傳有效的驗證資訊。", + "There was a problem communicating with the server. Please try again.": "與伺服器通訊時發生問題。請再試一次。" } From 75a665ec2ed319cd31ac78b604a1a221e97637cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Thu, 9 Apr 2020 06:49:35 +0000 Subject: [PATCH 002/162] Translated using Weblate (French) Currently translated at 100.0% (2282 of 2282 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 | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index c4343432d2..ea885c6202 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -2345,5 +2345,14 @@ "Liberate your communication": "Libérez votre communication", "Send a Direct Message": "Envoyez un message direct", "Explore Public Rooms": "Explorez les salons publics", - "Create a Group Chat": "Créez une discussion de groupe" + "Create a Group Chat": "Créez une discussion de groupe", + "%(name)s is requesting verification": "%(name)s demande une vérification", + "well formed": "bien formée", + "unexpected type": "type inattendu", + "Confirm your account deactivation by using Single Sign On to prove your identity.": "Confirmez la désactivation de votre compte en utilisant l’authentification unique pour prouver votre identité.", + "Are you sure you want to deactivate your account? This is irreversible.": "Voulez-vous vraiment désactiver votre compte ? Ceci est irréversible.", + "Confirm account deactivation": "Confirmez la désactivation de votre compte", + "Server did not require any authentication": "Le serveur n’a pas demandé d’authentification", + "Server did not return valid authentication information.": "Le serveur n’a pas renvoyé des informations d’authentification valides.", + "There was a problem communicating with the server. Please try again.": "Un problème est survenu en essayant de communiquer avec le serveur. Veuillez réessayer." } From 0cd8d067426cd42535504cedaff870ad0299f846 Mon Sep 17 00:00:00 2001 From: Osoitz Date: Thu, 9 Apr 2020 17:51:21 +0000 Subject: [PATCH 003/162] Translated using Weblate (Basque) Currently translated at 100.0% (2284 of 2284 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/eu/ --- src/i18n/strings/eu.json | 53 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 4 deletions(-) diff --git a/src/i18n/strings/eu.json b/src/i18n/strings/eu.json index 1283a7a379..1edea6c518 100644 --- a/src/i18n/strings/eu.json +++ b/src/i18n/strings/eu.json @@ -1236,8 +1236,8 @@ "%(senderDisplayName)s has prevented guests from joining the room.": "%(senderDisplayName)s bisitariak gelara elkartzea eragotzi du.", "%(senderDisplayName)s changed guest access to %(rule)s": "%(senderDisplayName)s erabiltzaileak bisitarien araua aldatu du: %(rule)s", "Secure messages with this user are end-to-end encrypted and not able to be read by third parties.": "Erabiltzaile honekin dauzkazun mezu seguruak muturretik muturrera zifratuta daude eta ezin ditu beste inork irakurri.", - "Verify this user by confirming the following emoji appear on their screen.": "Baieztatu erabiltzaile hau beheko emojiak bere pantailan agertzen direla egiaztatuz.", - "Verify this user by confirming the following number appears on their screen.": "Baieztatu erabiltzaile hau honako zenbakia bere pantailan agertzen dela egiaztatuz.", + "Verify this user by confirming the following emoji appear on their screen.": "Egiaztatu erabiltzaile hau beheko emojiak bere pantailan agertzen direla baieztatuz.", + "Verify this user by confirming the following number appears on their screen.": "Egiaztatu erabiltzaile hau honako zenbakia bere pantailan agertzen dela baieztatuz.", "Unable to find a supported verification method.": "Ezin izan da onartutako egiaztaketa metodorik aurkitu.", "Thumbs up": "Ederto", "Hourglass": "Harea-erlojua", @@ -2234,7 +2234,7 @@ "Signature upload success": "Sinaduren igoera ongi burutu da", "Signature upload failed": "Sinaduren igoerak huts egin du", "Confirm by comparing the following with the User Settings in your other session:": "Berretsi honako hau zure beste saioaren erabiltzaile-ezarpenetan agertzen denarekin alderatuz:", - "Confirm this user's session by comparing the following with their User Settings:": "Baieztatu erabiltzaile saio hau, honako hau bestearen erabiltzaile-ezarpenekin alderatuz:", + "Confirm this user's session by comparing the following with their User Settings:": "Egiaztatu erabiltzailearen saio hau, honako hau bestearen erabiltzaile-ezarpenekin alderatuz:", "If they don't match, the security of your communication may be compromised.": "Ez badatoz bat, komunikazioaren segurtasuna konprometitua egon daiteke.", "Navigation": "Nabigazioa", "Calls": "Deiak", @@ -2296,5 +2296,50 @@ "Session backup key:": "Saioaren babes-kopia gakoa:", "Sends a message as html, without interpreting it as markdown": "Bidali mezua html gisa, markdown balitz aztertu gabe", "Sign in with SSO": "Hasi saioa SSO-rekin", - "Cancel replying to a message": "Utzi mezua erantzuteari" + "Cancel replying to a message": "Utzi mezua erantzuteari", + "Use Single Sign On to continue": "Erabili Single sign-on jarraitzeko", + "Confirm adding this email address by using Single Sign On to prove your identity.": "Baieztatu e-mail hau gehitzea Single sign-on bidez zure identitatea frogatuz.", + "Single Sign On": "Single sign-on", + "Confirm adding email": "Baieztatu e-maila gehitzea", + "Click the button below to confirm adding this email address.": "Sakatu beheko botoia e-mail helbide hau gehitzea berresteko.", + "Confirm adding this phone number by using Single Sign On to prove your identity.": "Baieztatu telefono zenbaki hau gehitzea Single sign-on bidez zure identitatea frogatuz.", + "Confirm adding phone number": "Berretsi telefono zenbakia gehitzea", + "Click the button below to confirm adding this phone number.": "Sakatu beheko botoia telefono zenbaki hau gehitzea berresteko.", + "%(name)s is requesting verification": "%(name)s egiaztaketa eskatzen ari da", + "Confirm the emoji below are displayed on both sessions, in the same order:": "Baieztatu beheko emojiak bi saioetan ikusten direla, ordena berean:", + "Verify this session by confirming the following number appears on its screen.": "Egiaztatu saio hau honako zenbakia bere pantailan agertzen dela baieztatuz.", + "Waiting for your other session, %(deviceName)s (%(deviceId)s), to verify…": "Beste saioaren zain, %(deviceName)s (%(deviceId)s), egiaztatzeko…", + "From %(deviceName)s (%(deviceId)s)": "%(deviceName)s (%(deviceId)s) gailutik", + "well formed": "ongi osatua", + "unexpected type": "ustekabeko mota", + "Confirm deleting these sessions by using Single Sign On to prove your identity.|other": "Berretsi saio hauek ezabatzea Single sign-on bidez zure identitatea frogatuz.", + "Confirm deleting these sessions by using Single Sign On to prove your identity.|one": "Berretsi saio hau ezabatzea Single sign-on bidez zure identitatea frogatuz.", + "Confirm deleting these sessions": "Berretsi saio hauek ezabatzea", + "Click the button below to confirm deleting these sessions.|other": "Sakatu beheko botoia saio hauek ezabatzea berresteko.", + "Click the button below to confirm deleting these sessions.|one": "Sakatu beheko botoia saio hau ezabatzea berresteko.", + "Delete sessions": "Ezabatu saioak", + "Waiting for you to accept on your other session…": "Zu beste saioa onartu bitartean zain…", + "Almost there! Is your other session showing the same shield?": "Ia amaitu duzu! Zure beste saioak ezkutu bera erakusten du?", + "Almost there! Is %(displayName)s showing the same shield?": "Ia amaitu duzu! %(displayName)s gailuak ezkutu bera erakusten du?", + "You've successfully verified %(deviceName)s (%(deviceId)s)!": "Ongi egiaztatu duzu %(deviceName)s (%(deviceId)s)!", + "Start verification again from the notification.": "Hasi egiaztaketa berriro jakinarazpenetik.", + "Start verification again from their profile.": "Hasi egiaztaketa berriro bere profiletik.", + "Verification timed out.": "Egiaztaketarako denbora-muga agortu da.", + "You cancelled verification on your other session.": "Egiaztaketa ezeztatu duzu zure beste saioan.", + "%(displayName)s cancelled verification.": "%(displayName)s-k egiaztaketa ezeztatu du.", + "You cancelled verification.": "Egiaztaketa ezeztatu duzu.", + "Enable end-to-end encryption": "Gaitu muturretik-muturrera zifratzea", + "You can’t disable this later. Bridges & most bots won’t work yet.": "Ezin duzu hau gero desgaitu: Zubiak eta bot gehienak ez dabiltza oraindik.", + "Confirm your account deactivation by using Single Sign On to prove your identity.": "Berretsi zure kontua desgaitzea Single sign-on bidez zure identitatea frogatuz.", + "Are you sure you want to deactivate your account? This is irreversible.": "Ziur kontua desaktibatu nahi duzula? Ez dago gero atzera egiterik.", + "Confirm account deactivation": "Baieztatu kontua desaktibatzea", + "Server did not require any authentication": "Zerbitzariak ez du autentifikaziorik eskatu", + "Server did not return valid authentication information.": "Zerbitzariak ez du baliozko autentifikazio informaziorik itzuli.", + "There was a problem communicating with the server. Please try again.": "Arazo bat egon da zerbitzariarekin komunikatzeko. Saiatu berriro.", + "Welcome to %(appName)s": "Ongi etorri %(appName)s-era", + "Liberate your communication": "Askatu zure komunikazioa", + "Send a Direct Message": "Bidali mezu zuzena", + "Explore Public Rooms": "Arakatu gela publikoak", + "Create a Group Chat": "Sortu talde-txata", + "Self-verification request": "Auto-egiaztaketa eskaria" } From 474e46fcca32aed60efcd88cd56622960b2e95d3 Mon Sep 17 00:00:00 2001 From: Tuomas Hietala Date: Thu, 9 Apr 2020 16:51:44 +0000 Subject: [PATCH 004/162] Translated using Weblate (Finnish) Currently translated at 91.7% (2094 of 2284 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fi/ --- src/i18n/strings/fi.json | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fi.json b/src/i18n/strings/fi.json index 797acf90a6..11d4a33545 100644 --- a/src/i18n/strings/fi.json +++ b/src/i18n/strings/fi.json @@ -2106,5 +2106,39 @@ "Esc": "Esc", "Enter": "Enter", "Space": "Välilyönti", - "End": "End" + "End": "End", + "Use Single Sign On to continue": "Jatka kertakirjautumista käyttäen", + "Confirm adding this email address by using Single Sign On to prove your identity.": "Vahvista tämän sähköpostiosoitteen lisääminen todistamalla henkilöllisyytesi kertakirjautumista käyttäen.", + "Single Sign On": "Kertakirjautuminen", + "Confirm adding email": "Vahvista sähköpostin lisääminen", + "Confirm adding this phone number by using Single Sign On to prove your identity.": "Vahvista tämän puhelinnumeron lisääminen todistamalla henkilöllisyytesi kertakirjautumista käyttäen.", + "Confirm adding phone number": "Vahvista puhelinnumeron lisääminen", + "From %(deviceName)s (%(deviceId)s)": "Laitteelta %(deviceName)s (%(deviceId)s)", + "cached locally": "paikallisessa välimuistissa", + "not found locally": "ei paikallisessa välimuistissa", + "exists": "on olemassa", + "Confirm deleting these sessions by using Single Sign On to prove your identity.|other": "Vahvista näiden istuntojen poistaminen todistamalla henkilöllisyytesi kertakirjautumista käyttäen.", + "Confirm deleting these sessions by using Single Sign On to prove your identity.|one": "Vahvista tämän istunnon poistaminen todistamalla henkilöllisyytesi kertakirjautumista käyttäen.", + "Confirm deleting these sessions": "Vahvista näiden istuntojen poistaminen", + "Delete sessions": "Poista istunnot", + "You can use /help to list available commands. Did you mean to send this as a message?": "/help näyttää luettelon käytettävissä olevista komennoista. Oliko tarkoituksesi lähettää se viestinä?", + "Hint: Begin your message with // to start it with a slash.": "Vinkki: // aloittaa viestin kauttaviivalla.", + "Published Addresses": "Julkaistut osoitteet", + "Published addresses can be used by anyone on any server to join your room. To publish an address, it needs to be set as a local address first.": "Kuka tahansa millä tahansa palvelimella voi käyttää julkaistuja osoitteita liittyäksesi huoneeseesi. Osoitteen julkaisemiseksi se on ensin asetettava paikalliseksi osoitteeksi.", + "Other published addresses:": "Muut julkaistut osoitteet:", + "No other published addresses yet, add one below": "Toistaiseksi ei muita julkaistuja osoitteita, lisää alle", + "New published address (e.g. #alias:server)": "Uusi julkaistu osoite (esim. #alias:palvelin)", + "Ask %(displayName)s to scan your code:": "Pyydä käyttäjää %(displayName)s lukemaan koodisi:", + "Matrix rooms": "Matrix-huoneet", + "The internet connection either session is using": "Jomman kumman istunnon käyttämä internet-yhteys", + "Sign in with SSO": "Kirjaudu kertakirjautumista käyttäen", + "Welcome to %(appName)s": "Tervetuloa %(appName)s-sovellukseen", + "Liberate your communication": "Vapauta viestintäsi", + "Send a Direct Message": "Lähetä yksityisviesti", + "Explore Public Rooms": "Selaa julkisia huoneita", + "Create a Group Chat": "Luo ryhmäkeskustelu", + "Secure your encryption keys with a passphrase. For maximum security this should be different to your account password:": "Suojaa salausavaimesi salalauseella. Parhaan turvallisuuden takaamiseksi sen tulisi olla eri kuin käyttäjätilisi salasana:", + "Super": "Super", + "Cancel replying to a message": "Peruuta viestiin vastaaminen", + "Jump to room search": "Siirry huonehakuun" } From 6b69e932864eaefd4aa34713b2bf9643070fde9c Mon Sep 17 00:00:00 2001 From: MorbidMind Date: Thu, 9 Apr 2020 21:27:27 +0000 Subject: [PATCH 005/162] Translated using Weblate (Polish) Currently translated at 64.4% (1470 of 2284 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/pl/ --- src/i18n/strings/pl.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/pl.json b/src/i18n/strings/pl.json index d71013d999..6b5526c1d9 100644 --- a/src/i18n/strings/pl.json +++ b/src/i18n/strings/pl.json @@ -1179,7 +1179,7 @@ "%(names)s and %(count)s others are typing …|one": "%(names)s i jedna osoba pisze…", "Cannot reach homeserver": "Błąd połączenia z serwerem domowym", "Ensure you have a stable internet connection, or get in touch with the server admin": "Upewnij się, że posiadasz stabilne połączenie internetowe lub skontaktuj się z administratorem serwera", - "Your Riot is misconfigured": "Twój Riot jest źle skonfigurowany", + "Your Riot is misconfigured": " Twój Riot jest źle skonfigurowany", "Unexpected error resolving homeserver configuration": "Nieoczekiwany błąd przy ustalaniu konfiguracji serwera domowego", "Unexpected error resolving identity server configuration": "Nieoczekiwany błąd przy ustalaniu konfiguracji serwera tożsamości", "User %(userId)s is already in the room": "Użytkownik %(userId)s jest już w pokoju", From 4289413a3cf53c23926b7eb7494f4b5207ee944a Mon Sep 17 00:00:00 2001 From: Karol Kosek Date: Thu, 9 Apr 2020 22:24:02 +0000 Subject: [PATCH 006/162] Translated using Weblate (Polish) Currently translated at 64.4% (1470 of 2284 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/pl/ --- src/i18n/strings/pl.json | 84 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 83 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/pl.json b/src/i18n/strings/pl.json index 6b5526c1d9..629d30bdac 100644 --- a/src/i18n/strings/pl.json +++ b/src/i18n/strings/pl.json @@ -1413,5 +1413,87 @@ "Esc": "Esc", "Enter": "Enter", "Space": "Spacja", - "End": "End" + "End": "End", + "Confirm": "Potwierdź", + "Sign In or Create Account": "Zaloguj się lub utwórz konto", + "Use your account or create a new one to continue.": "Użyj konta lub utwórz nowe, aby kontynuować.", + "No sessions with registered encryption keys": "Brak sesji z zarejestrowanymi kluczami szyfrującymi", + "No": "Nie", + "Yes": "Tak", + "React": "Zareaguj", + "Edited at %(date)s. Click to view edits.": "Edytowano w %(date)s. Kliknij, aby zobaczyć zmiany.", + "Frequently Used": "Często używane", + "Smileys & People": "Buźki i osoby", + "Animals & Nature": "Zwierzęta i natura", + "Food & Drink": "Żywność i napoje", + "Activities": "Aktywności", + "Travel & Places": "Podróże i miejsca", + "Objects": "Przedmioty", + "Symbols": "Symbole", + "Flags": "Flagi", + "Looks good": "Wygląda dobrze", + "All rooms": "Wszystkie pokoje", + "Your server": "Twój serwer", + "Are you sure you want to remove %(serverName)s": "Czy na pewno chcesz usunąć %(serverName)s", + "Remove server": "Usuń serwer", + "Matrix": "Matrix", + "Add a new server": "Dodaj nowy serwer", + "Enter the name of a new server you want to explore.": "Wpisz nazwę nowego serwera, którego chcesz przeglądać.", + "Server name": "Nazwa serwera", + "Add a new server...": "Dodaj nowy serwer…", + "Please enter a name for the room": "Proszę podać nazwę pokoju", + "Set a room alias to easily share your room with other people.": "Ustaw alias pokoju, aby łatwo udostępniać swój pokój innym osobom.", + "This room is private, and can only be joined by invitation.": "Ten pokój jest prywatny i można do niego dołączyć tylko za zaproszeniem.", + "Enable end-to-end encryption": "Włącz szyfrowanie end-to-end", + "Create a public room": "Utwórz publiczny pokój", + "Create a private room": "Utwórz prywatny pokój", + "Topic (optional)": "Temat (opcjonalnie)", + "Make this room public": "Upublicznij ten pokój.", + "Hide advanced": "Ukryj zaawansowane", + "Show advanced": "Pokaż zaawansowane", + "Recent Conversations": "Najnowsze rozmowy", + "Suggestions": "Propozycje", + "Start a conversation with someone using their name, username (like ) or email address.": "Rozpocznij rozmowę z kimś, kto używa swojej nazwy, nazwy użytkownika (jak ) lub adresu e-mail.", + "Your password": "Twoje hasło", + "Upload files (%(current)s of %(total)s)": "Prześlij pliki (%(current)s z %(total)s)", + "Upload files": "Prześlij pliki", + "Upload all": "Prześlij wszystko", + "Cancel All": "Anuluj wszystko", + "Resend edit": "Wyślij ponownie edycję", + "Share Permalink": "Udostępnij odnośnik bezpośredni", + "Report Content": "Zgłoś treść", + "Notification settings": "Ustawienia powiadomień", + "Clear status": "Wyczyść status", + "Update status": "Zaktualizuj status", + "Set status": "Ustaw status", + "Set a new status...": "Ustaw nowy status…", + "Hide": "Ukryj", + "Take picture": "Zrób zdjęcie", + "Remove for everyone": "Usuń dla wszystkich", + "Remove for me": "Usuń dla mnie", + "User Status": "Status użytkownika", + "Server Name": "Nazwa serwera", + "The username field must not be blank.": "Pole nazwy użytkownika nie może być puste.", + "Username": "Nazwa użytkownika", + "Not sure of your password? Set a new one": "Nie jesteś pewien swojego hasła? Ustaw nowe", + "Enter password": "Wprowadź hasło", + "Password is allowed, but unsafe": "Hasło jest dozwolone, ale niebezpieczne", + "Nice, strong password!": "Ładne, silne hasło!", + "Enter phone number (required on this homeserver)": "Wprowadź numer telefonu (wymagane na tym serwerze domowym)", + "Enter username": "Wprowadź nazwę użytkownika", + "Homeserver URL": "Adres URL serwera domowego", + "Other servers": "Inne serwery", + "Sign in to your Matrix account on ": "Zaloguj się do swojego konta Matrix na ", + "Explore rooms": "Przeglądaj pokoje", + "Your profile": "Twój profil", + "Your Matrix account on %(serverName)s": "Twoje konto Matrix na %(serverName)s", + "Your Matrix account on ": "Twoje konto Matrix na ", + "A verification email will be sent to your inbox to confirm setting your new password.": "E-mail weryfikacyjny zostanie wysłany do skrzynki odbiorczej w celu potwierdzenia ustawienia nowego hasła.", + "Set a new password": "Ustaw nowe hasło", + "Go Back": "Wróć", + "Forgotten your password?": "Nie pamiętasz hasła?", + "Restore": "Przywróć", + "Copy": "Kopiuj", + "Success!": "Sukces!", + "Disable": "Wyłącz" } From 3d7ff5caeff49c051c3674220ea47a0f5aaa9160 Mon Sep 17 00:00:00 2001 From: rkfg Date: Thu, 9 Apr 2020 21:24:51 +0000 Subject: [PATCH 007/162] Translated using Weblate (Russian) Currently translated at 87.0% (1986 of 2284 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 | 102 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 97 insertions(+), 5 deletions(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 5e98b25ace..a19510917f 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -1193,7 +1193,7 @@ "Unable to find a supported verification method.": "Невозможно определить поддерживаемый метод верификации.", "Scissors": "Ножницы", "Secure messages with this user are end-to-end encrypted and not able to be read by third parties.": "Защищённые сообщения с этим пользователем зашифрованы сквозным шифрованием и недоступны третьим лицам.", - "We've sent you an email to verify your address. Please follow the instructions there and then click the button below.": "Мы отправили вам сообщение для подтверждения адреса электронной почты. Пожалуйста выполните указания данные в сообщении и нажмите кнопку внизу.", + "We've sent you an email to verify your address. Please follow the instructions there and then click the button below.": "Мы отправили вам сообщение для подтверждения адреса электронной почты. Пожалуйста, следуйте указаниям в сообщении, после чего нажмите кнопку ниже.", "Are you sure? You will lose your encrypted messages if your keys are not backed up properly.": "Вы уверены? Зашифрованные сообщения будут безвозвратно утеряны при отсутствии соответствующего резервного копирования ваших ключей.", "Encrypted messages are secured with end-to-end encryption. Only you and the recipient(s) have the keys to read these messages.": "Зашифрованные сообщения защищены сквозным шифрованием. Только вы и ваш собеседник имеете ключи для их расшифровки и чтения.", "Unable to load key backup status": "Не удалось получить статус резервного копирования для ключей шифрования", @@ -1202,11 +1202,11 @@ "Start using Key Backup": "Использовать резервную копию ключей шифрования", "Profile picture": "Аватар", "Accept all %(invitedRooms)s invites": "Принять все приглашения (%(invitedRooms)s)", - "Missing media permissions, click the button below to request.": "Отсутствует доступ к источнику медиа. Нажмите кнопку ниже чтобы запросить.", + "Missing media permissions, click the button below to request.": "Отсутствуют разрешения для доступа к камере/микрофону. Нажмите кнопку ниже, чтобы запросить их.", "Request media permissions": "Запросить доступ к медиа носителю", "Change room name": "Изменить название комнаты", "For help with using Riot, click here.": "Для получения помощи по использованию Riot, нажмите здесь.", - "For help with using Riot, click here or start a chat with our bot using the button below.": "Для получения помощи по использованию Riot, нажмите здесь или начните чат с нашим ботом, используюя кнопку ниже.", + "For help with using Riot, click here or start a chat with our bot using the button below.": "Для получения помощи по использованию Riot, нажмите здесь или начните чат с нашим ботом с помощью кнопки ниже.", "Bug reporting": "Сообщить об ошибке", "Open Devtools": "Открыть инструменты разработчика", "Change room avatar": "Изменить аватар комнаты", @@ -1728,7 +1728,7 @@ "Manage integrations": "Управление интеграциями", "Integration Managers receive configuration data, and can modify widgets, send room invites, and set power levels on your behalf.": "Менеджеры интеграции получают данные конфигурации и могут изменять виджеты, отправлять приглашения в комнаты и устанавливать уровни доступа от вашего имени.", "Sessions": "Сессии", - "Direct Messages": "Прямые сообщения", + "Direct Messages": "Диалоги", "%(count)s sessions|other": "%(count)s сессий", "Hide sessions": "Скрытые сессии", "Enable 'Manage Integrations' in Settings to do this.": "Включите «Управление интеграциями» в настройках, чтобы сделать это.", @@ -1934,5 +1934,97 @@ "Cancel autocomplete": "Отменить автодополнение", "Esc": "", "Enter": "Enter", - "Delete %(count)s sessions|one": "Удалить %(count)s сессий" + "Delete %(count)s sessions|one": "Удалить %(count)s сессий", + "Use Single Sign On to continue": "Воспользуйтесь единой точкой входа для продолжения", + "Confirm adding this email address by using Single Sign On to prove your identity.": "Подтвердите добавление этого почтового адреса с помощью единой точки входа.", + "Single Sign On": "Единая точка входа", + "Confirm adding email": "Подтвердите добавление почтового адреса", + "Click the button below to confirm adding this email address.": "Нажмите кнопку ниже для подтверждения этого почтового адреса.", + "Confirm adding this phone number by using Single Sign On to prove your identity.": "Подтвердите добавление этого номера телефона с помощью единой точки входа.", + "Confirm adding phone number": "Подтвердите добавление номера телефона", + "Click the button below to confirm adding this phone number.": "Нажмите кнопку ниже для добавления этого номера телефона.", + "%(name)s is requesting verification": "%(name)s запрашивает проверку", + "Confirm the emoji below are displayed on both sessions, in the same order:": "Убедитесь, что смайлики ниже отображаются в обеих сессиях в том же порядке:", + "Verify this session by confirming the following number appears on its screen.": "Подтвердите эту сессию, убедившись, что следующее число отображается на экране.", + "Waiting for your other session, %(deviceName)s (%(deviceId)s), to verify…": "Ожидание других ваших сессий, %(deviceName)s %(deviceId)s, для подтверждения…", + "From %(deviceName)s (%(deviceId)s)": "От %(deviceName)s (%(deviceId)s)", + "Your account has a cross-signing identity in secret storage, but it is not yet trusted by this session.": "У вашего аккаунта есть кросс-подпись в хранилище секретов, но она пока не является доверенной в этой сессии.", + "Bootstrap cross-signing and secret storage": "Инициализировать кросс-подпись и хранилище секретов", + "well formed": "корректный", + "unexpected type": "непредвиденный тип", + "Self signing private key:": "Самоподписанный приватный ключ:", + "Confirm deleting these sessions by using Single Sign On to prove your identity.|other": "Подтвердите удаление этих сессий с помощью единой точки входа.", + "Confirm deleting these sessions by using Single Sign On to prove your identity.|one": "Подтвердите удаление этой сессии с помощью единой точки входа.", + "Confirm deleting these sessions": "Подтвердите удаление этих сессий", + "Click the button below to confirm deleting these sessions.|other": "Нажмите кнопку ниже для удаления этих сессий.", + "Click the button below to confirm deleting these sessions.|one": "Нажмите кнопку ниже для удаления этой сессии.", + "Delete sessions": "Удалить сессии", + "rooms.": "комнаты.", + "Manage": "Управление", + "Custom theme URL": "Ссылка на стороннюю тему", + "⚠ These settings are meant for advanced users.": "⚠ Эти настройки рассчитаны для опытных пользователей.", + "Personal ban list": "Личный список игнора", + "eg: @bot:* or example.org": "например: @bot:* или example.org", + "Session ID:": "ID сессии:", + "Session key:": "Ключ сессии:", + "Message search": "Поиск по сообщениям", + "Cross-signing": "Кросс-подпись", + "Bridges": "Мосты", + "This user has not verified all of their sessions.": "Этот пользователь не подтвердил все свои сессии.", + "You have not verified this user.": "Вы не подтвердили этого пользователя.", + "You have verified this user. This user has verified all of their sessions.": "Вы подтвердили этого пользователя. Пользователь подтвердил все свои сессии.", + "Someone is using an unknown session": "Кто-то использует неизвестную сессию", + "This room is end-to-end encrypted": "Эта комната зашифрована сквозным шифрованием", + "Everyone in this room is verified": "Все в этой комнате подтверждены", + "Some sessions for this user are not trusted": "К некоторым сессиям этого пользователя нет доверия", + "All sessions for this user are trusted": "Все сессии этого пользователя доверенные", + "Some sessions in this encrypted room are not trusted": "К некоторым сессиям в этой зашифрованной комнате нет доверия", + "All sessions in this encrypted room are trusted": "Все сессии в этой зашифрованной комнате доверенные", + "Mod": "Модератор", + "This message cannot be decrypted": "Не удалось расшифровать это сообщение", + "Encrypted by an unverified session": "Зашифровано неподтверждённой сессией", + "Unencrypted": "Не зашифровано", + "Encrypted by a deleted session": "Зашифровано удалённой сессией", + "Invite only": "Только по приглашениям", + "Scroll to most recent messages": "Перейти к последним сообщениям", + "Close preview": "Закрыть предпросмотр", + "Send a reply…": "Отправить ответ…", + "Send a message…": "Отправить сообщение…", + " wants to chat": " хочет поговорить", + "Start chatting": "Начать беседу", + "Reject & Ignore user": "Отклонить и заигнорить пользователя", + "Unknown Command": "Неизвестная команда", + "Unrecognised command: %(commandText)s": "Нераспознанная команда: %(commandText)s", + "Send as message": "Отправить как сообщение", + "Failed to connect to integration manager": "Не удалось подключиться к менеджеру интеграций", + "Mark all as read": "Отметить всё как прочитанное", + "You don't have permission to delete the alias.": "У вас нет прав для удаления этого псевдонима.", + "Local address": "Локальный адрес", + "Published Addresses": "Публичные адреса", + "Published addresses can be used by anyone on any server to join your room. To publish an address, it needs to be set as a local address first.": "Публичные адреса позволяют кому угодно зайти в вашу комнату с любого сервера. Чтобы опубликовать адрес, сначала задайте его в качестве локального адреса.", + "Other published addresses:": "Прочие публичные адреса:", + "No other published addresses yet, add one below": "Пока нет других публичных адресов, добавьте их ниже", + "New published address (e.g. #alias:server)": "Новый публичный адрес (напр. #alias:server)", + "Local Addresses": "Локальные адреса", + "Waiting for you to accept on your other session…": "Ожидание принятия в другой вашей сессии…", + "Waiting for %(displayName)s to accept…": "Ожидание принятия от %(displayName)s…", + "Accepting…": "Принятие…", + "Start Verification": "Начать проверку", + "Messages in this room are end-to-end encrypted.": "Сообщения в этой комнате зашифрованы сквозным шифрованием.", + "Verify User": "Подтвердить пользователя", + "Your messages are not secure": "Ваши сообщения не защищены", + "Your homeserver": "Ваш домашний сервер", + "The homeserver the user you’re verifying is connected to": "Домашний сервер пользователя, которого вы подтверждаете", + "Trusted": "Доверенный", + "Not trusted": "Не доверенный", + "%(count)s verified sessions|other": "%(count)s подтверждённых сессий", + "%(count)s verified sessions|one": "1 подтверждённая сессия", + "Hide verified sessions": "Скрыть подтверждённые сессии", + "%(count)s sessions|one": "%(count)s сессия", + "Direct message": "Начать диалог", + "Verification timed out.": "Таймаут подтверждения.", + "You cancelled verification on your other session.": "Вы отменили подтверждение в другой вашей сессии.", + "You cancelled verification.": "Вы отменили подтверждение.", + "Verification cancelled": "Подтверждение отменено", + "Encryption enabled": "Шифрование включено" } From fb837fb962142ca9cb06c706702c0729e28ea985 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Fri, 10 Apr 2020 01:37:22 +0000 Subject: [PATCH 008/162] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (2285 of 2285 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 668e3ed158..a731e62af2 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -2353,5 +2353,9 @@ "Confirm account deactivation": "確認停用帳號", "Server did not require any authentication": "伺服器不需要任何驗證", "Server did not return valid authentication information.": "伺服器沒有回傳有效的驗證資訊。", - "There was a problem communicating with the server. Please try again.": "與伺服器通訊時發生問題。請再試一次。" + "There was a problem communicating with the server. Please try again.": "與伺服器通訊時發生問題。請再試一次。", + "Delete sessions|other": "刪除工作階段", + "Delete sessions|one": "刪除工作階段", + "Enable end-to-end encryption": "啟用端到端加密", + "You can’t disable this later. Bridges & most bots won’t work yet.": "您無法在稍後停用此功能。橋接與大多數機器人也尚無法運作。" } From 60bf43b6dc17f4f3e26eaca3e0967aaeab8f71e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Fri, 10 Apr 2020 07:01:03 +0000 Subject: [PATCH 009/162] Translated using Weblate (French) Currently translated at 100.0% (2285 of 2285 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index ea885c6202..677c48a2dc 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -2354,5 +2354,9 @@ "Confirm account deactivation": "Confirmez la désactivation de votre compte", "Server did not require any authentication": "Le serveur n’a pas demandé d’authentification", "Server did not return valid authentication information.": "Le serveur n’a pas renvoyé des informations d’authentification valides.", - "There was a problem communicating with the server. Please try again.": "Un problème est survenu en essayant de communiquer avec le serveur. Veuillez réessayer." + "There was a problem communicating with the server. Please try again.": "Un problème est survenu en essayant de communiquer avec le serveur. Veuillez réessayer.", + "Delete sessions|other": "Supprimer les sessions", + "Delete sessions|one": "Supprimer la session", + "Enable end-to-end encryption": "Activer le chiffrement de bout en bout", + "You can’t disable this later. Bridges & most bots won’t work yet.": "Vous ne pourrez pas le désactiver plus tard. Les passerelles et la plupart des bots ne fonctionneront pas pour le moment." } From b7fdaf31f6e6c96e830c3b99822920a4dc6176b8 Mon Sep 17 00:00:00 2001 From: Szimszon Date: Fri, 10 Apr 2020 13:09:48 +0000 Subject: [PATCH 010/162] Translated using Weblate (Hungarian) Currently translated at 99.6% (2275 of 2285 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 | 41 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 68cad86807..f74e9d48fd 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -2301,5 +2301,44 @@ "Enter": "Enter", "Space": "Szóköz", "End": "End", - "Session backup key:": "Munkamenet másolat kulcs:" + "Session backup key:": "Munkamenet másolat kulcs:", + "Use Single Sign On to continue": "A folytatáshoz használd az egyszeri bejelentkezést (SSO)", + "Single Sign On": "Egyszeri bejelentkezés", + "%(name)s is requesting verification": "%(name)s ellenőrzést kér", + "Sends a message as html, without interpreting it as markdown": "Az üzenet elküldése html szövegként anélkül, hogy „markdown” formázás lenne", + "Confirm the emoji below are displayed on both sessions, in the same order:": "Erősítsd meg, hogy az alábbi emodzsik mindkét munkamenetben azonos sorrendben jelentek meg:", + "Verify this session by confirming the following number appears on its screen.": "Ellenőrizd ezt a munkamenetet azzal, hogy megerősíted, hogy az alábbi szám jelent meg a kijelzőjén.", + "Waiting for your other session, %(deviceName)s (%(deviceId)s), to verify…": "Az ellenőrzéshez a másik munkamenetedre várakozunk, %(deviceName)s (%(deviceId)s)…", + "From %(deviceName)s (%(deviceId)s)": "Innen: %(deviceName)s (%(deviceId)s)", + "well formed": "helyes formátum", + "unexpected type": "váratlan típus", + "Confirm deleting these sessions": "Megerősíted ennek a munkamenetnek a törlését", + "Click the button below to confirm deleting these sessions.|other": "Ezeknek a munkamenetek törlésének a megerősítéséhez kattints a gombra lent.", + "Click the button below to confirm deleting these sessions.|one": "Ennek a munkamenet törlésének a megerősítéséhez kattints a gombra lent.", + "Delete sessions|other": "Munkamenetek törlése", + "Delete sessions|one": "Munkamenet törlése", + "Waiting for you to accept on your other session…": "Az elfogadást várjuk a másik munkamenetedből…", + "Almost there! Is your other session showing the same shield?": "Majdnem kész! A másik munkameneted is ugyanazt a pajzsot mutatja?", + "Almost there! Is %(displayName)s showing the same shield?": "Majdnem kész! %(displayName)s is ugyanazt a pajzsot mutatja?", + "You've successfully verified %(deviceName)s (%(deviceId)s)!": "Sikeresen ellenőrizted: %(deviceName)s (%(deviceId)s)!", + "Start verification again from the notification.": "Ellenőrzés újrakezdése az értesítésből.", + "Start verification again from their profile.": "Ellenőrzés újraindítása a profiljából.", + "Verification timed out.": "Az ellenőrzés időtúllépés miatt megszakadt.", + "You cancelled verification on your other session.": "Az ellenőrzést megszakítottad a másik munkamenetedben.", + "%(displayName)s cancelled verification.": "%(displayName)s megszakította az ellenőrzést.", + "You cancelled verification.": "Megszakítottad az ellenőrzést.", + "Enable end-to-end encryption": "Végpontok közötti titkosítás engedélyezése", + "You can’t disable this later. Bridges & most bots won’t work yet.": "Ezt később nem lehet kikapcsolni. A hidak és a legtöbb bot nem fog működni egyenlőre.", + "Confirm account deactivation": "Fiók felfüggesztésének megerősítése", + "Server did not require any authentication": "A szerver nem követelt meg semmilyen azonosítást", + "Server did not return valid authentication information.": "A szerver semmilyen érvényes azonosítási információt sem küldött vissza.", + "There was a problem communicating with the server. Please try again.": "A szerverrel való kommunikációval probléma történt. Kérlek próbáld újra.", + "Sign in with SSO": "Belépés SSO-val", + "Welcome to %(appName)s": "Üdv itt: %(appName)s", + "Liberate your communication": "Szabadítsd fel a kommunikációdat", + "Send a Direct Message": "Közvetlen üzenet küldése", + "Explore Public Rooms": "Nyilvános szobák felderítése", + "Create a Group Chat": "Készíts Csoportos Beszélgetést", + "Self-verification request": "Ön ellenőrzés kérése", + "Cancel replying to a message": "Üzenet válasz megszakítása" } From f406d4d7da1c7c736b53c3849a6045975a0a29f5 Mon Sep 17 00:00:00 2001 From: Karol Kosek Date: Thu, 9 Apr 2020 22:43:53 +0000 Subject: [PATCH 011/162] Translated using Weblate (Polish) Currently translated at 64.9% (1482 of 2285 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/pl/ --- src/i18n/strings/pl.json | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/pl.json b/src/i18n/strings/pl.json index 629d30bdac..183bce6007 100644 --- a/src/i18n/strings/pl.json +++ b/src/i18n/strings/pl.json @@ -1495,5 +1495,17 @@ "Restore": "Przywróć", "Copy": "Kopiuj", "Success!": "Sukces!", - "Disable": "Wyłącz" + "Disable": "Wyłącz", + "Verify": "Weryfikuj", + "Manage integrations": "Zarządzaj integracjami", + "%(count)s verified sessions|other": "%(count)s zweryfikowanych sesji", + "%(count)s verified sessions|one": "1 zweryfikowana sesja", + "Hide verified sessions": "Ukryj zweryfikowane sesje", + "%(count)s sessions|other": "%(count)s sesji", + "%(count)s sessions|one": "%(count)s sesja", + "Hide sessions": "Ukryj sesje", + "Direct message": "Wiadomość bezpośrednia", + "Security": "Bezpieczeństwo", + "Integrations are disabled": "Integracje są wyłączone", + "Enable 'Manage Integrations' in Settings to do this.": "Włącz „Zarządzaj integracjami” w ustawieniach, aby to zrobić." } From c74d41b1053b9d032be9f9c025a372050c312dda Mon Sep 17 00:00:00 2001 From: rkfg Date: Fri, 10 Apr 2020 08:32:42 +0000 Subject: [PATCH 012/162] Translated using Weblate (Russian) Currently translated at 87.5% (1999 of 2285 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 | 112 ++++++++++++++++++++++----------------- 1 file changed, 63 insertions(+), 49 deletions(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index a19510917f..51b3da7f44 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -1,5 +1,5 @@ { - "Account": "Аккаунт", + "Account": "Учётная запись", "Admin": "Администратор", "Advanced": "Подробности", "Algorithm": "Алгоритм", @@ -19,7 +19,7 @@ "Create Room": "Создать комнату", "Cryptography": "Криптография", "Curve25519 identity key": "Ключ идентификации Curve25519", - "Deactivate Account": "Деактивировать аккаунт", + "Deactivate Account": "Деактивировать учётную запись", "Decryption error": "Ошибка расшифровки", "Default": "По умолчанию", "Deops user with given id": "Снимает полномочия оператора с пользователя с заданным ID", @@ -245,7 +245,7 @@ "Success": "Успех", "This email address is already in use": "Этот email уже используется", "This email address was not found": "Этот адрес электронной почты не найден", - "The email address linked to your account must be entered.": "Необходимо ввести адрес электронной почты, связанный с вашей учётной записью.", + "The email address linked to your account must be entered.": "Введите адрес электронной почты, связанный с вашей учётной записью.", "The remote side failed to pick up": "Собеседник не ответил на ваш звонок", "This room has no local addresses": "У этой комнаты нет адресов на вашем сервере", "This room is not recognised.": "Эта комната не опознана.", @@ -383,7 +383,7 @@ "Username available": "Имя пользователя доступно", "Username not available": "Имя пользователя недоступно", "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.": "Если у вас уже есть учётная запись Matrix, вы можете войти.", "Home": "Начало", "Accept": "Принять", @@ -722,7 +722,7 @@ "Fetching third party location failed": "Не удалось извлечь местоположение третьей стороны", "A new version of Riot is available.": "Доступна новая версия Riot.", "I understand the risks and wish to continue": "Я понимаю риски и желаю продолжить", - "Send Account Data": "Отправить данные аккаунта", + "Send Account Data": "Отправка данных учётной записи", "All notifications are currently disabled for all targets.": "Все оповещения для всех устройств отключены.", "Uploading report": "Отправка отчета", "Sunday": "Воскресенье", @@ -741,7 +741,7 @@ "Advanced notification settings": "Дополнительные параметры уведомлений", "Failed to send logs: ": "Не удалось отправить журналы: ", "delete the alias.": "удалить псевдоним.", - "To return to your account in future you need to set a password": "Чтобы вы могли вернуться в свою учётную запись в будущем, вам необходимо задать пароль", + "To return to your account in future you need to set a password": "Чтобы вы могли использовать свою учётную запись позже, вам необходимо задать пароль", "Forget": "Забыть", "You cannot delete this image. (%(code)s)": "Вы не можете удалить это изображение. (%(code)s)", "Cancel Sending": "Отменить отправку", @@ -781,7 +781,7 @@ "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot использует многие передовые возможности браузера, некоторые из которых недоступны или являются экспериментальным в вашем текущем браузере.", "Developer Tools": "Инструменты разработчика", "Preparing to send logs": "Подготовка к отправке журналов", - "Explore Account Data": "Просмотр данных аккаунта", + "Explore Account Data": "Просмотр данных учётной записи", "All messages (noisy)": "Все сообщения (со звуком)", "Saturday": "Суббота", "Remember, you can always set an email address in user settings if you change your mind.": "Помните, что вы всегда сможете задать email в настройках пользователя, если передумаете.", @@ -833,7 +833,7 @@ "Riot does not know how to join a room on this network": "Riot не знает, как присоединиться к комнате, принадлежащей к этой сети", "Mentions only": "Только при упоминаниях", "Wednesday": "Среда", - "You can now return to your account after signing out, and sign in on other devices.": "Теперь вы сможете вернуться к своей учётной записи после выхода из системы и войти на других устройствах.", + "You can now return to your account after signing out, and sign in on other devices.": "Теперь вы сможете вернуться к своей учётной записи после выхода и войти на других устройствах.", "Enable email notifications": "Включить уведомления на email", "Event Type": "Тип мероприятия", "Download this file": "Скачать файл", @@ -859,7 +859,7 @@ "Clear Storage and Sign Out": "Очистить хранилище и выйти", "Refresh": "Обновить", "We encountered an error trying to restore your previous session.": "Произошла ошибка при попытке восстановить предыдущий сеанс.", - "Clearing your browser's storage may fix the problem, but will sign you out and cause any encrypted chat history to become unreadable.": "Очистка хранилища вашего браузера может устранить проблему, но при этом ваша сессия будет завершена и зашифрованная история чата станет нечитаемой.", + "Clearing your browser's storage may fix the problem, but will sign you out and cause any encrypted chat history to become unreadable.": "Очистка хранилища вашего браузера может устранить проблему, но при этом ваша сессия будет завершена, и зашифрованная история чата станет нечитаемой.", "Unable to load event that was replied to, it either does not exist or you do not have permission to view it.": "Не удается загрузить событие, на которое был дан ответ. Либо оно не существует, либо у вас нет разрешения на его просмотр.", "Enable widget screenshots on supported widgets": "Включить скриншоты виджетов для поддерживаемых виджетов", "Collapse Reply Thread": "Ответить с цитированием", @@ -869,10 +869,10 @@ "To continue using the %(homeserverDomain)s homeserver you must review and agree to our terms and conditions.": "Для продолжения использования сервера %(homeserverDomain)s вы должны ознакомиться и принять условия и положения.", "Review terms and conditions": "Просмотр условий и положений", "e.g. %(exampleValue)s": "напр. %(exampleValue)s", - "This will make your account permanently unusable. You will not be able to log in, and no one will be able to re-register the same user ID. This will cause your account to leave all rooms it is participating in, and it will remove your account details from your identity server. This action is irreversible.": "Это навсегда сделает вашу учётную запись невозможной для использования. Вы не сможете войти в систему, и никто не сможет перерегистрировать тот же идентификатор пользователя. Это приведёт к тому, что ваша учётная запись выйдет из всех комнат, в которые она входит, и будут удалены данные вашей учётной записи с сервера идентификации. Это действие необратимо.", + "This will make your account permanently unusable. You will not be able to log in, and no one will be able to re-register the same user ID. This will cause your account to leave all rooms it is participating in, and it will remove your account details from your identity server. This action is irreversible.": "Ваша учётная запись будет заблокирована. Вы не сможете войти в систему, и никто не сможет в дальнейшем заререгистрироваться под этим именем пользователя. В результате ваша учётная запись выйдет из всех комнат, в которых она находится, а с сервера идентификации будут удалены все связанные с ней данные. Это действие необратимо.", "Deactivating your account does not by default cause us to forget messages you have sent. If you would like us to forget your messages, please tick the box below.": "По умолчанию деактивация вашей учётной записи не приведёт к удалению всех ваших сообщений. Если вы хотите, чтобы мы удалили ваши сообщения, поставьте отметку в поле ниже.", "Message visibility in Matrix is similar to email. Our forgetting your messages means that messages you have sent will not be shared with any new or unregistered users, but registered users who already have access to these messages will still have access to their copy.": "Видимость сообщений в Matrix похожа на электронную почту. Удаление ваших сообщений означает, что отправленные вами сообщения не будут видны новым или незарегистрированным пользователям, но зарегистрированные пользователи, у которых уже есть доступ к этим сообщениям, по-прежнему будут иметь доступ к своей копии.", - "Please forget all messages I have sent when my account is deactivated (Warning: this will cause future users to see an incomplete view of conversations)": "Пожалуйста, удалите все сообщения, которые я отправил, после деактивации учётной записи. (Внимание: будущие пользователи увидят неполный вид разговоров)", + "Please forget all messages I have sent when my account is deactivated (Warning: this will cause future users to see an incomplete view of conversations)": "Удалить все мои сообщения после деактивации учётной записи. (Внимание: разговоры с другими пользователями будут выглядеть неполными)", "To continue, please enter your password:": "Чтобы продолжить, введите пароль:", "Please help improve Riot.im by sending anonymous usage data. This will use a cookie (please see our Cookie Policy).": "Пожалуйста, помогите улучшить Riot.im, отправляя анонимные данные использования. При этом будут использоваться cookie (ознакомьтесь с нашейПолитикой cookie).", "Please help improve Riot.im by sending anonymous usage data. This will use a cookie.": "Пожалуйста, помогите улучшить Riot.im, отправляя анонимные данные использования. При этом будут использоваться cookie.", @@ -1014,7 +1014,7 @@ "Phone numbers": "Телефонные номера", "Language and region": "Язык и регион", "Theme": "Тема", - "Account management": "Управление аккаунтом", + "Account management": "Управление учётной записью", "Deactivating your account is a permanent action - be careful!": "Деактивация вашей учётной записи — это необратимое действие. Будьте осторожны!", "Chat with Riot Bot": "Чат с ботом Riot", "Help & About": "Помощь & О программе", @@ -1259,7 +1259,7 @@ "Modify widgets": "Изменить виджеты", "Invite users": "Пригласить пользователей", "Kick users": "Выгнать пользователей", - "Ban users": "Запрет пользователей", + "Ban users": "Блокировка пользователей", "Send %(eventType)s events": "Отправить %(eventType)s события", "Select the roles required to change various parts of the room": "Выберите роли, которые смогут менять различные параметры комнаты", "Once enabled, encryption for a room cannot be disabled. Messages sent in an encrypted room cannot be seen by the server, only by the participants of the room. Enabling encryption may prevent many bots and bridges from working correctly. Learn more about encryption.": "После включения шифрования в комнате оно не может быть отключено. Сообщения, отправленные в шифрованной комнате, смогут прочитать только участники комнаты, но не сервер. Включенное шифрование может помешать корректной работе многим ботам и мостам. Подробнее о шифровании.", @@ -1274,8 +1274,8 @@ "Loading …": "Загрузка…", "Rejecting invite …": "Отказ от приглашения …", "Join the conversation with an account": "Присоединиться к разговору с учётной записью", - "Sign Up": "Подписаться", - "Sign In": "Войти в систему", + "Sign Up": "Зарегистрироваться", + "Sign In": "Войти", "You were kicked from %(roomName)s by %(memberName)s": "Вы были выгнаны %(memberName)s из %(roomName)s", "Reason: %(reason)s": "Причина: %(reason)s", "Forget this room": "Забудь эту комнату", @@ -1329,7 +1329,7 @@ "If there is additional context that would help in analysing the issue, such as what you were doing at the time, room IDs, user IDs, etc., please include those things here.": "Если есть дополнительный контекст, который может помочь в анализе проблемы, такой как то, что вы делали в то время, ID комнат, ID пользователей и т. д., пожалуйста, включите эти данные.", "Unable to load commit detail: %(msg)s": "Невозможно загрузить детали: %(msg)s", "To avoid losing your chat history, you must export your room keys before logging out. You will need to go back to the newer version of Riot to do this": "Чтобы не потерять историю чата, вы должны экспортировать ключи от комнаты перед выходом из системы. Для этого вам нужно будет вернуться к более новой версии Riot", - "You've previously used a newer version of Riot on %(host)s. To use this version again with end to end encryption, you will need to sign out and back in again. ": "Ранее вы использовали более новую версию Riot на %(host)s. Чтобы снова использовать эту версию с сквозным шифрованием, вам нужно выйти и снова войти. ", + "You've previously used a newer version of Riot on %(host)s. To use this version again with end to end encryption, you will need to sign out and back in again. ": "В прошлый раз вы использовали более новую версию Riot на сервере %(host)s. Чтобы снова использовать эту версию со сквозным шифрованием, вам нужно выйти и снова войти. ", "Waiting for partner to accept...": "Ожидание подтверждения партнера...", "Nothing appearing? Not all clients support interactive verification yet. .": "Ничего не появляется? Еще не все клиенты поддерживают интерактивную проверку. .", "Waiting for %(userId)s to confirm...": "Ожидание подтверждения от %(userId)s...", @@ -1348,7 +1348,7 @@ "Low bandwidth mode": "Режим низкой пропускной способности", "To help us prevent this in future, please send us logs.": "Чтобы помочь нам предотвратить это в будущем, пожалуйста, отправьте нам логи.", "Missing session data": "Отсутствуют данные сессии", - "Some session data, including encrypted message keys, is missing. Sign out and sign in to fix this, restoring keys from backup.": "Некоторые данные сессии, включая зашифрованные ключи сообщений, отсутствуют. Выйдите и войдите, чтобы исправить ситуацию, восстанавливая ключи из резервной копии.", + "Some session data, including encrypted message keys, is missing. Sign out and sign in to fix this, restoring keys from backup.": "Отсутствуют некоторые данные сессии, в том числе ключи шифрования сообщений. Выйдите и войдите, чтобы восстановить ключи из резервной копии.", "Your browser likely removed this data when running low on disk space.": "Вероятно, ваш браузер удалил эти данные, когда на дисковом пространстве оставалось мало места.", "Upload files (%(current)s of %(total)s)": "Загрузка файлов %(current)s от %(total)s", "Upload files": "Загрузка файлов", @@ -1384,15 +1384,15 @@ "Set a new status...": "Установка нового статуса...", "Hide": "Скрыть", "This homeserver would like to make sure you are not a robot.": "Этот сервер хотел бы убедиться, что вы не робот.", - "You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use this app with an existing Matrix account on a different homeserver.": "Пользовательские параметры сервера можно использовать для входа на другие серверы Matrix, указав другой URL-адрес сервера. Это позволяет использовать это приложение с существующей учётной записью Matrix на другом домашнем сервере.", + "You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use this app with an existing Matrix account on a different homeserver.": "Пользовательские серверные параметры можно использовать для входа на другой сервер Matrix по его адресу. Таким образом, вы сможете использовать это приложение с существующим аккаунтом Matrix на другом домашнем сервере.", "Please review and accept all of the homeserver's policies": "Пожалуйста, просмотрите и примите все правила сервера", "Please review and accept the policies of this homeserver:": "Пожалуйста, просмотрите и примите политику этого сервера:", "Unable to validate homeserver/identity server": "Невозможно проверить сервер/сервер идентификации", "Enter the location of your Modular homeserver. It may use your own domain name or be a subdomain of modular.im.": "Введите местоположение вашего Modula homeserver. Он может использовать ваше собственное доменное имя или быть поддоменом modular.im.", - "Sign in to your Matrix account on %(serverName)s": "Войдите в свою учётную запись Matrix на %(serverName)s", - "Sign in to your Matrix account on ": "Войдите в свою учётную запись Matrix с помощью ", + "Sign in to your Matrix account on %(serverName)s": "Вход в учётную запись Matrix на сервере %(serverName)s", + "Sign in to your Matrix account on ": "Вход в учётную запись Matrix на сервере ", "Change": "Изменить", - "Use an email address to recover your account": "Используйте email, чтобы восстановить свой аккаунт", + "Use an email address to recover your account": "Используйте почтовый адрес, чтобы восстановить доступ к учётной записи", "Enter email address (required on this homeserver)": "Введите адрес электронной почты (требуется для этого сервера)", "Doesn't look like a valid email address": "Не похоже на действительный адрес электронной почты", "Enter password": "Введите пароль", @@ -1406,7 +1406,7 @@ "Enter username": "Введите имя пользователя", "Some characters not allowed": "Некоторые символы не разрешены", "Create your Matrix account on %(serverName)s": "Создайте свою учётную запись Matrix на %(serverName)s", - "Create your Matrix account on ": "Создайте свою учётную запись Matrix на ", + "Create your Matrix account on ": "Создайте учётную запись Matrix на ", "Join millions for free on the largest public server": "Присоединяйтесь бесплатно к миллионам на крупнейшем общедоступном сервере", "Premium hosting for organisations Learn more": "Премиум-хостинг для организаций Подробнее", "Find other public servers or use a custom server": "Найти другие общедоступные серверы или использовать пользовательский сервер", @@ -1424,8 +1424,8 @@ "Guest": "Гость", "Your profile": "Ваш профиль", "Could not load user profile": "Не удалось загрузить профиль пользователя", - "Your Matrix account on %(serverName)s": "Ваша учётная запись Matrix на %(serverName)s", - "Your Matrix account on ": "Ваша учётная запись Matrix на ", + "Your Matrix account on %(serverName)s": "Ваша учётная запись Matrix на сервере %(serverName)s", + "Your Matrix account on ": "Ваша учётная запись Matrix на сервере ", "A verification email will be sent to your inbox to confirm setting your new password.": "Письмо с подтверждением будет отправлено на ваш почтовый ящик, чтобы подтвердить установку нового пароля.", "Sign in instead": "Войдите, вместо этого", "Your password has been reset.": "Ваш пароль был сброшен.", @@ -1441,7 +1441,7 @@ "General failure": "Общая ошибка", "This homeserver does not support login using email address.": "Этот сервер не поддерживает вход с использованием адреса электронной почты.", "Failed to perform homeserver discovery": "Не удалось выполнить обнаружение сервера", - "Sign in with single sign-on": "Войдите в систему с единой регистрацией", + "Sign in with single sign-on": "Войти в систему с помощью единой точки входа", "Create account": "Создать учётную запись", "Registration has been disabled on this homeserver.": "Регистрация на этом сервере отключена.", "Unable to query for supported registration methods.": "Невозможно запросить поддерживаемые методы регистрации.", @@ -1472,8 +1472,8 @@ "Unable to create key backup": "Невозможно создать резервную копию ключа", "Retry": "Попробуйте снова", "Without setting up Secure Message Recovery, you'll lose your secure message history when you log out.": "Без настройки безопасного восстановления сообщений при выходе из системы вы потеряете историю защищенных сообщений.", - "If you didn't set the new recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "Если вы не установили новый метод восстановления, злоумышленник может попытаться получить доступ к вашей учётной записи. Измените пароль учётной записи и сразу установите новый способ восстановления в настройках.", - "If you didn't remove the recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "Если вы не удалили метод восстановления, злоумышленник может попытаться получить доступ к вашей учётной записи. Измените пароль учётной записи и сразу установите новый способ восстановления в настройках.", + "If you didn't set the new recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "Если вы не задали новый способ восстановления, злоумышленник может получить доступ к вашей учётной записи. Смените пароль учётной записи и сразу же задайте новый способ восстановления в настройках.", + "If you didn't remove the recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "Если вы не убрали метод восстановления, злоумышленник может получить доступ к вашей учётной записи. Смените пароль учётной записи и сразу задайте новый способ восстановления в настройках.", "Cannot reach homeserver": "Не удаётся связаться с сервером", "Ensure you have a stable internet connection, or get in touch with the server admin": "Убедитесь, что у вас есть стабильное подключение к интернету, или свяжитесь с администратором сервера", "Your Riot is misconfigured": "Ваш Riot неправильно настроен", @@ -1484,8 +1484,8 @@ "You can register, but some features will be unavailable until the identity server is back online. If you keep seeing this warning, check your configuration or contact a server admin.": "Вы можете зарегистрироваться, но некоторые возможности не будет доступны, пока сервер идентификации не станет доступным. Если вы продолжаете видеть это предупреждение, проверьте вашу конфигурацию или свяжитесь с администратором сервера.", "You can reset your password, but some features will be unavailable until the identity server is back online. If you keep seeing this warning, check your configuration or contact a server admin.": "Вы можете сбросить пароль, но некоторые возможности не будет доступны, пока сервер идентификации не станет доступным. Если вы продолжаете видеть это предупреждение, проверьте вашу конфигурацию или свяжитесь с администратором сервера.", "You can log in, but some features will be unavailable until the identity server is back online. If you keep seeing this warning, check your configuration or contact a server admin.": "Вы можете войти в систему, но некоторые возможности не будет доступны, пока сервер идентификации не станет доступным. Если вы продолжаете видеть это предупреждение, проверьте вашу конфигурацию или свяжитесь с администратором сервера.", - "Log in to your new account.": "Войти в вашу новую учётную запись.", - "You can now close this window or log in to your new account.": "Вы можете закрыть это окно или войти в вашу новую учётную запись.", + "Log in to your new account.": "Войти в новую учётную запись.", + "You can now close this window or log in to your new account.": "Можно закрыть это окно или войти в новую учётную запись.", "Registration Successful": "Регистрация успешно завершена", "Changes your avatar in all rooms": "Изменяет ваш аватар во всех комнатах", "%(senderName)s made no change.": "%(senderName)s не внёс изменений.", @@ -1513,17 +1513,17 @@ "Resend edit": "Отправить исправление повторно", "Resend %(unsentCount)s reaction(s)": "Отправить повторно %(unsentCount)s реакций", "Resend removal": "Отправить удаление повторно", - "Your new account (%(newAccountId)s) is registered, but you're already logged into a different account (%(loggedInUserId)s).": "Ваша новая учётная запись (%(newAccountId)s) зарегистрирована, но Вы уже вошли в другую учётную запись (%(loggedInUserId)s).", + "Your new account (%(newAccountId)s) is registered, but you're already logged into a different account (%(loggedInUserId)s).": "Учётная запись (%(newAccountId)s) зарегистрирована, но вы уже вошли в другую учётную запись (%(loggedInUserId)s).", "Continue with previous account": "Продолжить с предыдущей учётной записью", "Failed to re-authenticate due to a homeserver problem": "Ошибка повторной аутентификации из-за проблем на сервере", "Failed to re-authenticate": "Ошибка повторной аутентификации", - "Enter your password to sign in and regain access to your account.": "Введите Ваш пароль для входа и восстановления доступа к Вашей учётной записи.", + "Enter your password to sign in and regain access to your account.": "Введите пароль для входа и восстановите доступ к учётной записи.", "Forgotten your password?": "Забыли Ваш пароль?", - "Sign in and regain access to your account.": "Войти и восстановить доступ к Вашей учётной записи.", - "You cannot sign in to your account. Please contact your homeserver admin for more information.": "Вы не можете войти в Вашу учётную запись. Пожалуйста свяжитесь с администратором вашего сервера для более подробной информации.", + "Sign in and regain access to your account.": "Войти и восстановить доступ к учётной записи.", + "You cannot sign in to your account. Please contact your homeserver admin for more information.": "Не удаётся войти в учётную запись. Пожалуйста, обратитесь к администратору домашнего сервера за подробностями.", "You're signed out": "Вы вышли из учётной записи", "Clear personal data": "Очистить персональные данные", - "This account has been deactivated.": "Этот аккаунт был деактивирован.", + "This account has been deactivated.": "Эта учётная запись была деактивирована.", "Call failed due to misconfigured server": "Вызов не состоялся из-за неправильно настроенного сервера", "Try using turn.matrix.org": "Попробуйте использовать turn.matrix.org", "Messages": "Сообщения", @@ -1583,11 +1583,11 @@ "Using an identity server is optional. If you choose not to use an identity server, you won't be discoverable by other users and you won't be able to invite others by email or phone.": "Использование сервера идентификации не обязательно. Если вы решите не использовать сервер идентификации, другие пользователи не смогут обнаружить вас, и вы не сможете пригласить других по электронной почте или телефону.", "Agree to the identity server (%(serverName)s) Terms of Service to allow yourself to be discoverable by email address or phone number.": "Подтвердите условия предоставления услуг сервера идентификации (%(serverName)s), чтобы вас можно было обнаружить по адресу электронной почты или номеру телефона.", "Discovery": "Обнаружение", - "Deactivate account": "Деактивировать аккаунт", + "Deactivate account": "Деактивировать учётную запись", "Clear cache and reload": "Очистить кэш и перезагрузить", "Always show the window menu bar": "Всегда показывать строку меню", - "Read Marker lifetime (ms)": "Читать маркер время жизни (мс)", - "Read Marker off-screen lifetime (ms)": "Читать маркер вне экрана время жизни (мс)", + "Read Marker lifetime (ms)": "Через какое время помечать сообщение прочитанным (мс)", + "Read Marker off-screen lifetime (ms)": "Через какое время помечать сообщение прочитанным при отсутствии активности (мс)", "Upgrade the room": "Обновить эту комнату", "Enable room encryption": "Включить шифрование комнаты", "You should remove your personal data from identity server before disconnecting. Unfortunately, identity server is currently offline or cannot be reached.": "Вы должны удалить свои личные данные с сервера идентификации перед отключением. К сожалению, идентификационный сервер в данный момент отключен или недоступен.", @@ -1651,8 +1651,8 @@ "Report Content": "Пожаловаться на сообщение", "Deactivating this user will log them out and prevent them from logging back in. Additionally, they will leave all the rooms they are in. This action cannot be reversed. Are you sure you want to deactivate this user?": "Деактивация этого пользователя приведет к его выходу из системы и запрету повторного входа. Кроме того, они оставит все комнаты, в которых он участник. Это действие безповоротно. Вы уверены, что хотите деактивировать этого пользователя?", "An error (%(errcode)s) was returned while trying to validate your invite. You could try to pass this information on to a room admin.": "При попытке подтвердить приглашение была возвращена ошибка (%(errcode)s). Вы можете попробовать передать эту информацию администратору комнаты.", - "This invite to %(roomName)s was sent to %(email)s which is not associated with your account": "Это приглашение в %(roomName)s было отправлено на %(email)s, которое не связано с вашей учетной записью", - "Link this email with your account in Settings to receive invites directly in Riot.": "Свяжите это письмо с вашей учетной записью в Настройках, чтобы получать приглашения непосредственно в Riot.", + "This invite to %(roomName)s was sent to %(email)s which is not associated with your account": "Приглашение в %(roomName)s было отправлено на %(email)s, но этот адрес не связан с вашей учётной записью", + "Link this email with your account in Settings to receive invites directly in Riot.": "Свяжите этот адрес с вашей учетной записью в настройках, чтобы получать приглашения непосредственно в Riot.", "This invite to %(roomName)s was sent to %(email)s": "Это приглашение в %(roomName)s было отправлено на %(email)s", "Use an identity server in Settings to receive invites directly in Riot.": "Используйте сервер идентификации в Настройках для получения приглашений непосредственно в Riot.", "Share this email in Settings to receive invites directly in Riot.": "Введите адрес эл.почты в Настройках, чтобы получать приглашения прямо в Riot.", @@ -1666,8 +1666,8 @@ "Block users on other matrix homeservers from joining this room (This setting cannot be changed later!)": "Запретить пользователям других Matrix-Серверов присоединяться к этой комнате (этот параметр нельзя изменить позже!)", "Reporting this message will send its unique 'event ID' to the administrator of your homeserver. If messages in this room are encrypted, your homeserver administrator will not be able to read the message text or view any files or images.": "Отчет о данном сообщении отправит свой уникальный 'event ID' администратору вашего домашнего сервера. Если сообщения в этой комнате зашифрованы, администратор вашего домашнего сервера не сможет прочитать текст сообщения или просмотреть какие-либо файлы или изображения.", "Missing captcha public key in homeserver configuration. Please report this to your homeserver administrator.": "Отсутствует Капча открытого ключа в конфигурации домашнего сервера. Пожалуйста, сообщите об этом администратору вашего домашнего сервера.", - "Set an email for account recovery. Use email or phone to optionally be discoverable by existing contacts.": "Установка адреса электронной почты для восстановления учетной записи. Используйте электронную почту или телефон, чтобы опционально быть обнаруженными существующими контактами.", - "Set an email for account recovery. Use email to optionally be discoverable by existing contacts.": "Установите адрес электронной почты для восстановления аккаунта. Используйте электронную почту, чтобы опционально быть обнаруженными существующими контактами.", + "Set an email for account recovery. Use email or phone to optionally be discoverable by existing contacts.": "Задайте адрес электронной почты для восстановления учетной записи. Чтобы знакомые могли вас найти, задайте адрес почты или номер телефона.", + "Set an email for account recovery. Use email to optionally be discoverable by existing contacts.": "Задайте адрес электронной почты для восстановления учетной записи. Чтобы знакомые могли вас найти, задайте адрес почты.", "Enter your custom homeserver URL What does this mean?": "Введите URL-адрес вашего собственного домашнего сервера Что это значит? ", "Enter your custom identity server URL What does this mean?": "Введите URL-адрес вашего собственного сервера идентификации Что это значит?", "%(creator)s created and configured the room.": "%(creator)s создал и настроил комнату.", @@ -1710,7 +1710,7 @@ "Custom (%(level)s)": "Пользовательский (%(level)s)", "%(name)s (%(userId)s)": "%(name)s (%(userId)s)", "Try out new ways to ignore people (experimental)": "Попробуйте новые способы игнорировать людей (экспериментальные)", - "My Ban List": "Мой список запрещенных", + "My Ban List": "Мой список блокировки", "Ignored/Blocked": "Игнорируемые/Заблокированные", "Error adding ignored user/server": "Ошибка добавления игнорируемого пользователя/сервера", "Error subscribing to list": "Ошибка при подписке на список", @@ -1824,9 +1824,9 @@ "There are unknown sessions in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "В комнате присутствуют неизвестные сессии: если вы продолжите без подтверждения, возможно, кто-то сможет подслушать ваш звонок.", "Review Sessions": "Просмотреть сессии", "Unverified login. Was this you?": "Неподтверждённый вход. Это были вы?", - "Sign In or Create Account": "Войти или создать аккаунт", - "Use your account or create a new one to continue.": "Воспользуйтесь своим аккаунтом или создайте новый, чтобы продолжить.", - "Create Account": "Создать аккаунт", + "Sign In or Create Account": "Войдите или создайте учётную запись", + "Use your account or create a new one to continue.": "Воспользуйтесь своей учётной записью или создайте новую, чтобы продолжить.", + "Create Account": "Создать учётную запись", "Sends a message as html, without interpreting it as markdown": "Отправить сообщение как html, не интерпретируя его как markdown", "Displays information about a user": "Показать информацию о пользователе", "%(senderDisplayName)s changed the room name from %(oldRoomName)s to %(newRoomName)s.": "%(senderDisplayName)s изменил(а) название комнаты с %(oldRoomName)s на %(newRoomName)s.", @@ -1880,7 +1880,7 @@ "User signing private key:": "Приватный ключ подписи пользователей:", "Session backup key:": "Резервная копия сессионного ключа:", "Secret storage public key:": "Публичный ключ хранилища секретов:", - "in account data": "в данных аккаунта", + "in account data": "в данных учётной записи", "Homeserver feature support:": "Возможности домашнего сервера:", "exists": "существует", "Secret Storage key format:": "Формат ключа хранилища секретов:", @@ -1948,7 +1948,7 @@ "Verify this session by confirming the following number appears on its screen.": "Подтвердите эту сессию, убедившись, что следующее число отображается на экране.", "Waiting for your other session, %(deviceName)s (%(deviceId)s), to verify…": "Ожидание других ваших сессий, %(deviceName)s %(deviceId)s, для подтверждения…", "From %(deviceName)s (%(deviceId)s)": "От %(deviceName)s (%(deviceId)s)", - "Your account has a cross-signing identity in secret storage, but it is not yet trusted by this session.": "У вашего аккаунта есть кросс-подпись в хранилище секретов, но она пока не является доверенной в этой сессии.", + "Your account has a cross-signing identity in secret storage, but it is not yet trusted by this session.": "У вашей учётной записи есть кросс-подпись в хранилище секретов, но она пока не является доверенной в этой сессии.", "Bootstrap cross-signing and secret storage": "Инициализировать кросс-подпись и хранилище секретов", "well formed": "корректный", "unexpected type": "непредвиденный тип", @@ -1963,7 +1963,7 @@ "Manage": "Управление", "Custom theme URL": "Ссылка на стороннюю тему", "⚠ These settings are meant for advanced users.": "⚠ Эти настройки рассчитаны для опытных пользователей.", - "Personal ban list": "Личный список игнора", + "Personal ban list": "Личный список блокировки", "eg: @bot:* or example.org": "например: @bot:* или example.org", "Session ID:": "ID сессии:", "Session key:": "Ключ сессии:", @@ -2026,5 +2026,19 @@ "You cancelled verification on your other session.": "Вы отменили подтверждение в другой вашей сессии.", "You cancelled verification.": "Вы отменили подтверждение.", "Verification cancelled": "Подтверждение отменено", - "Encryption enabled": "Шифрование включено" + "Encryption enabled": "Шифрование включено", + "Delete sessions|other": "Удалить сессии", + "Delete sessions|one": "Удалить сессию", + "Please verify the room ID or alias and try again.": "Пожалуйста, проверьте ID комнаты или псевдоним и попробуйте снова.", + "Error removing ignored user/server": "Ошибка при удалении игнорируемого пользователя/сервера", + "Please try again or view your console for hints.": "Попробуйте снова или посмотрите сообщения в консоли.", + "Ban list rules - %(roomName)s": "Правила блокировки -", + "Ignoring people is done through ban lists which contain rules for who to ban. Subscribing to a ban list means the users/servers blocked by that list will be hidden from you.": "Игнорирование людей реализовано через списки правил блокировки. Подписка на список блокировки приведёт к сокрытию от вас пользователей и серверов, которые в нём перечислены.", + "Your personal ban list holds all the users/servers you personally don't want to see messages from. After ignoring your first user/server, a new room will show up in your room list named 'My Ban List' - stay in this room to keep the ban list in effect.": "Ваш личный список блокировки содержит всех пользователей и серверы, сообщения которых вы не хотите видеть. После внесения туда первого пользователя/сервера в списке комнат появится новая комната 'Мой список блокировки' — не покидайте эту комнату, чтобы список блокировки работал.", + "Subscribing to a ban list will cause you to join it!": "При подписке на список блокировки вы присоединитесь к нему!", + "Room ID or alias of ban list": "ID комнаты или псевдоним списка блокировки", + "Confirm your account deactivation by using Single Sign On to prove your identity.": "Подтвердите удаление учётной записи с помощью единой точки входа.", + "Are you sure you want to deactivate your account? This is irreversible.": "Вы уверены, что хотите деактивировать свою учётную запись? Это необратимое действие.", + "Confirm account deactivation": "Подтвердите деактивацию учётной записи", + "Your account is not secure": "Ваша учётная запись не в безопасности" } From b7a8ac57d2c7f131fa624f086d42148fc85f2760 Mon Sep 17 00:00:00 2001 From: rkfg Date: Fri, 10 Apr 2020 15:04:44 +0000 Subject: [PATCH 013/162] Translated using Weblate (Russian) Currently translated at 88.8% (2028 of 2285 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 | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 51b3da7f44..ea31d8b1fe 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -116,7 +116,7 @@ "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "для %(userId)s с %(fromPowerLevel)s на %(toPowerLevel)s", "click to reveal": "нажмите для открытия", "%(senderName)s invited %(targetName)s.": "%(senderName)s приглашает %(targetName)s.", - "%(targetName)s joined the room.": "К комнате присоединяется %(targetName)s.", + "%(targetName)s joined the room.": "В комнату входит %(targetName)s.", "%(senderName)s kicked %(targetName)s.": "%(senderName)s выгнал(а) %(targetName)s.", "%(targetName)s left the room.": "%(targetName)s покинул комнату.", "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s сделал(а) историю разговора видимой для всех собеседников с момента их приглашения.", @@ -2032,7 +2032,7 @@ "Please verify the room ID or alias and try again.": "Пожалуйста, проверьте ID комнаты или псевдоним и попробуйте снова.", "Error removing ignored user/server": "Ошибка при удалении игнорируемого пользователя/сервера", "Please try again or view your console for hints.": "Попробуйте снова или посмотрите сообщения в консоли.", - "Ban list rules - %(roomName)s": "Правила блокировки -", + "Ban list rules - %(roomName)s": "Правила блокировки - %(roomName)s", "Ignoring people is done through ban lists which contain rules for who to ban. Subscribing to a ban list means the users/servers blocked by that list will be hidden from you.": "Игнорирование людей реализовано через списки правил блокировки. Подписка на список блокировки приведёт к сокрытию от вас пользователей и серверов, которые в нём перечислены.", "Your personal ban list holds all the users/servers you personally don't want to see messages from. After ignoring your first user/server, a new room will show up in your room list named 'My Ban List' - stay in this room to keep the ban list in effect.": "Ваш личный список блокировки содержит всех пользователей и серверы, сообщения которых вы не хотите видеть. После внесения туда первого пользователя/сервера в списке комнат появится новая комната 'Мой список блокировки' — не покидайте эту комнату, чтобы список блокировки работал.", "Subscribing to a ban list will cause you to join it!": "При подписке на список блокировки вы присоединитесь к нему!", @@ -2040,5 +2040,34 @@ "Confirm your account deactivation by using Single Sign On to prove your identity.": "Подтвердите удаление учётной записи с помощью единой точки входа.", "Are you sure you want to deactivate your account? This is irreversible.": "Вы уверены, что хотите деактивировать свою учётную запись? Это необратимое действие.", "Confirm account deactivation": "Подтвердите деактивацию учётной записи", - "Your account is not secure": "Ваша учётная запись не в безопасности" + "Your account is not secure": "Ваша учётная запись не в безопасности", + "Backup has a valid signature from this user": "У резервной копии верная подпись этого пользователя", + "Backup has a invalid signature from this user": "У резервной копии неверная подпись этого пользователя", + "Backup has a signature from unknown user with ID %(deviceId)s": "У резервной копии подпись неизвестного пользователя с ID %(deviceId)s", + "Backup has a signature from unknown session with ID %(deviceId)s": "У резервной копии подпись неизвестной сессии с ID %(deviceId)s", + "If this isn't what you want, please use a different tool to ignore users.": "Если вас это не устраивает, попробуйте другой инструмент для игнорирования пользователей.", + "Re-request encryption keys from your other sessions.": "Перезапросить ключи шифрования у других ваших сессий.", + "Hint: Begin your message with // to start it with a slash.": "Совет: поставьте // в начале сообщения, чтобы начать его с косой черты.", + "Almost there! Is your other session showing the same shield?": "Почти готово! Отображается ли такой же щит в другой вашей сессии?", + "Almost there! Is %(displayName)s showing the same shield?": "Почти готово! Отображает ли %(displayName)s такой же щит?", + "You've successfully verified %(deviceName)s (%(deviceId)s)!": "Вы успешно подтвердили %(deviceName)s (%(deviceId)s)!", + "%(displayName)s cancelled verification.": "%(displayName)s отменил(а) подтверждение.", + "Encryption not enabled": "Шифрование не включено", + "The encryption used by this room isn't supported.": "Шифрование этой комнаты не поддерживается.", + "You verified %(name)s": "Вы подтвердили", + "You cancelled verifying %(name)s": "Вы отменили подтверждение", + "You accepted": "Вы приняли", + "%(name)s accepted": "%(name)s принял(а)", + "You declined": "Вы отказали", + "You cancelled": "Вы отменили", + "%(name)s declined": "%(name)s отказал(а)", + "%(name)s cancelled": "%(name)s отменил(а)", + "Accepting …": "Принимаем …", + "Declining …": "Отказываем …", + "%(name)s wants to verify": "%(name)s желает подтвердить", + "You sent a verification request": "Вы отправили запрос подтверждения", + "Reactions": "Реакции", + " reacted with %(content)s": " отреагировал(а)", + "Your display name": "Отображаемое имя", + "Your avatar URL": "Ссылка на ваш аватар" } From 995578d729b0b03b319da7ad18e69789e7064bd1 Mon Sep 17 00:00:00 2001 From: rkfg Date: Fri, 10 Apr 2020 15:14:43 +0000 Subject: [PATCH 014/162] Translated using Weblate (Russian) Currently translated at 90.2% (2060 of 2285 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 | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index ea31d8b1fe..dce962c3a0 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -2069,5 +2069,37 @@ "Reactions": "Реакции", " reacted with %(content)s": " отреагировал(а)", "Your display name": "Отображаемое имя", - "Your avatar URL": "Ссылка на ваш аватар" + "Your avatar URL": "Ссылка на ваш аватар", + "One of the following may be compromised:": "Что-то из этого может быть скомпрометировано:", + "Yours, or the other users’ internet connection": "Ваше интернет-соединение или соединение других пользователей", + "Yours, or the other users’ session": "Ваши сессии или сессии других пользователей", + "%(name)s cancelled verifying": "%(name)s отменил(а) подтверждение", + "Any of the following data may be shared:": "Следующие сведения могут быть переданы:", + "Your user ID": "ID пользователя", + "Your theme": "Ваша тема", + "Riot URL": "Ссылка на Riot", + "Room ID": "ID комнаты", + "Widget ID": "ID виджета", + "Widget added by": "Виджет добавлен", + "This widget may use cookies.": "Этот виджет может использовать куки", + "More options": "Дополнительные параметры", + "Language Dropdown": "Список языков", + "Enter a server name": "Введите имя сервера", + "Looks good": "В порядке", + "All rooms": "Все комнаты", + "Your server": "Ваш сервер", + "Remove server": "Удалить сервер", + "Matrix": "Матрикс", + "Add a new server": "Добавить сервер", + "Server name": "Имя сервера", + "Add a new server...": "Добавить сервер…", + "Matrix rooms": "Комнаты Matrix", + "Destroy cross-signing keys?": "Уничтожить ключи кросс-подписи?", + "Clear cross-signing keys": "Очистить ключи кросс-подписи", + "Clear all data in this session?": "Очистить все данные в этой сессии?", + "Enable end-to-end encryption": "Включить сквозное шифрование", + "You can’t disable this later. Bridges & most bots won’t work yet.": "Вы не сможете его отключить в дальнейшем. Мосты и большинство ботов пока что не будут работать.", + "Verify session": "Подтвердить сессию", + "Session name": "Название сессии", + "Session key": "Ключ сессии" } From 882aefb94c2d027e848836219d26ca0222bceac5 Mon Sep 17 00:00:00 2001 From: Osoitz Date: Sat, 11 Apr 2020 08:51:07 +0000 Subject: [PATCH 015/162] Translated using Weblate (Basque) Currently translated at 100.0% (2285 of 2285 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/eu/ --- src/i18n/strings/eu.json | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/i18n/strings/eu.json b/src/i18n/strings/eu.json index 1edea6c518..1a1abbd9a5 100644 --- a/src/i18n/strings/eu.json +++ b/src/i18n/strings/eu.json @@ -667,8 +667,8 @@ "Data from an older version of Riot has been detected. This will have caused end-to-end cryptography to malfunction in the older version. End-to-end encrypted messages exchanged recently whilst using the older version may not be decryptable in this version. This may also cause messages exchanged with this version to fail. If you experience problems, log out and back in again. To retain message history, export and re-import your keys.": "Riot bertsio zahar batek datuak antzeman dira. Honek bertsio zaharrean muturretik muturrerako zifratzea ez funtzionatzea eragingo du. Azkenaldian bertsio zaharrean bidali edo jasotako zifratutako mezuak agian ezin izango dira deszifratu bertsio honetan. Honek ere Bertsio honekin egindako mezu trukeak huts egitea ekar dezake. Arazoak badituzu, amaitu saioa eta hasi berriro saioa. Mezuen historiala gordetzeko, esportatu eta berriro inportatu zure gakoak.", "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Sortu komunitate bat erabiltzaileak eta gelak biltzeko! Sortu zure hasiera orria eta markatu zure espazioa Matrix unibertsoan.", "There's no one else here! Would you like to invite others or stop warning about the empty room?": "Ez dago beste inor hemen! Beste batzuk gonbidatu nahi dituzu edo gela hutsik dagoela abisatzeari utzi?", - "Light theme": "Itxura argia", - "Dark theme": "Itxura iluna", + "Light theme": "Azal argia", + "Dark theme": "Azal iluna", "An email has been sent to %(emailAddress)s. Once you've followed the link it contains, click below.": "%(emailAddress)s helbidera e-mail bat bidali da. Behin dakarren esteka jarraituta, egin klik behean.", "This homeserver doesn't offer any login flows which are supported by this client.": "Hasiera zerbitzari honek ez du bezero honek onartzen duen fluxurik eskaintzen.", "You will not be able to undo this change as you are demoting yourself, if you are the last privileged user in the room it will be impossible to regain privileges.": "Ezin izango duzu hau aldatu zure burua mailaz jaisten ari zarelako, zu bazara gelan baimenak dituen azken erabiltzailea ezin izango dira baimenak berreskuratu.", @@ -1174,7 +1174,7 @@ "Email addresses": "E-mail helbideak", "Phone numbers": "Telefono zenbakiak", "Language and region": "Hizkuntza eta eskualdea", - "Theme": "Itxura", + "Theme": "Azala", "Account management": "Kontuen kudeaketa", "Deactivating your account is a permanent action - be careful!": "Kontua desgaitzea behin betiko ekintza bat da, kontuz ibili!", "For help with using Riot, click here.": "Riot erabiltzeko laguntza behar baduzu, egin klik hemen.", @@ -1725,7 +1725,7 @@ "%(senderName)s placed a video call. (not supported by this browser)": "%(senderName)s erabiltzaileak bideo-dei bat abiatu du. (Nabigatzaile honek ez du onartzen)", "Try out new ways to ignore people (experimental)": "Probatu jendea ez entzuteko modu berriak (esperimentala)", "Enable local event indexing and E2EE search (requires restart)": "Gaitu gertaera lokalen indexazioa eta E2EE bilaketa (berrabiarazi behar da)", - "Match system theme": "Bat egin sistemako gaiarekin", + "Match system theme": "Bat egin sistemako azalarekin", "My Ban List": "Nire debeku-zerrenda", "This is your list of users/servers you have blocked - don't leave the room!": "Hau blokeatu dituzun erabiltzaile edo zerbitzarien zerrenda da, ez atera gelatik!", "Decline (%(counter)s)": "Ukatu (%(counter)s)", @@ -1781,7 +1781,7 @@ "Your display name": "Zure pantaila-izena", "Your avatar URL": "Zure abatarraren URL-a", "Your user ID": "Zure erabiltzaile ID-a", - "Your theme": "Zure gaia", + "Your theme": "Zure azala", "Riot URL": "Riot URL-a", "Room ID": "Gelaren ID-a", "Widget ID": "Trepetaren ID-a", @@ -2185,12 +2185,12 @@ "%(senderName)s changed the alternative addresses for this room.": "%(senderName)s erabiltzaileak gela honen ordezko helbideak aldatu ditu.", "%(senderName)s changed the main and alternative addresses for this room.": "%(senderName)s erabiltzaileak gela honen helbide nagusia eta ordezko helbideak aldatu ditu.", "%(senderName)s changed the addresses for this room.": "%(senderName)s erabiltzaileak gela honen helbideak aldatu ditu.", - "Support adding custom themes": "Gai pertsonalizatua gehitzea onartzen du", - "Invalid theme schema.": "Baliogabeko gai eskema.", - "Error downloading theme information.": "Errorea gaiaren informazioa deskargatzean.", - "Theme added!": "Gaia gehituta!", - "Custom theme URL": "Gai pertsonalizatuaren URLa", - "Add theme": "Gehitu gaia", + "Support adding custom themes": "Azal pertsonalizatuak gehitzea onartzen du", + "Invalid theme schema.": "Baliogabeko azal eskema.", + "Error downloading theme information.": "Errorea azalaren informazioa deskargatzean.", + "Theme added!": "Azala gehituta!", + "Custom theme URL": "Azal pertsonalizatuaren URLa", + "Add theme": "Gehitu azala", "Scroll to most recent messages": "Korritu azken mezuetara", "There was an error updating the room's alternative addresses. It may not be allowed by the server or a temporary failure occurred.": "Errore bat gertatu da gelaren ordezko helbideak eguneratzean. Agian zerbitzariak ez du onartzen edo une bateko akatsa izan da.", "You don't have permission to delete the alias.": "Ez duzu ezizena ezabatzeko baimenik.", @@ -2341,5 +2341,7 @@ "Send a Direct Message": "Bidali mezu zuzena", "Explore Public Rooms": "Arakatu gela publikoak", "Create a Group Chat": "Sortu talde-txata", - "Self-verification request": "Auto-egiaztaketa eskaria" + "Self-verification request": "Auto-egiaztaketa eskaria", + "Delete sessions|other": "Ezabatu saioak", + "Delete sessions|one": "Ezabatu saioa" } From 30b473bf6b86edc0b1ec20fa238b960477dc1ae7 Mon Sep 17 00:00:00 2001 From: Maik Wagner Date: Sat, 11 Apr 2020 16:33:50 +0000 Subject: [PATCH 016/162] Translated using Weblate (German) Currently translated at 76.0% (1737 of 2285 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 | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index c0c1b5508d..fd83df82b0 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1074,7 +1074,7 @@ "Render simple counters in room header": "Einfache Zähler in Raum-Kopfzeile anzeigen", "Enable Emoji suggestions while typing": "Emoji-Vorschläge während der Eingabe aktivieren", "Show a placeholder for removed messages": "Zeigt einen Platzhalter für gelöschte Nachrichten an", - "Show join/leave messages (invites/kicks/bans unaffected)": "Zeige Betreten-/Verlassen-Nachrichten (betrifft nicht Einladungen/Kicks/Bans)", + "Show join/leave messages (invites/kicks/bans unaffected)": "Zeige Betreten-/Verlassen-Nachrichten (Einladungen/Kicks/Bans sind dadurch nicht betroffen)", "Show avatar changes": "Avatar-Änderungen anzeigen", "Show display name changes": "Anzeigenamen-Änderungen anzeigen", "Send typing notifications": "Tipp-Benachrichtigungen senden", @@ -1222,7 +1222,7 @@ "Use two-way text verification": "Bidirektionale Textverifizierung verwenden", "Waiting for partner to confirm...": "Warte auf Bestätigung des Gesprächspartners...", "Incoming Verification Request": "Eingehende Verifikationsanfrage", - "Allow Peer-to-Peer for 1:1 calls": "Erlaube Peer-to-Peer-Verbindungen für 1:1-Anrufe", + "Allow Peer-to-Peer for 1:1 calls": "Erlaube Peer-to-Peer für 1:1-Anrufe", "Are you sure? You will lose your encrypted messages if your keys are not backed up properly.": "Bist du sicher? Du wirst deine verschlüsselten Nachrichten verlieren, wenn deine Schlüssel nicht gesichert sind.", "Encrypted messages are secured with end-to-end encryption. Only you and the recipient(s) have the keys to read these messages.": "Verschlüsselte Nachrichten sind mit Ende-zu-Ende-Verschlüsselung gesichert. Nur du und der/die Empfänger haben die Schlüssel um diese Nachrichten zu lesen.", "Restore from Backup": "Von Sicherung wiederherstellen", @@ -1444,7 +1444,7 @@ "Add Phone Number": "Telefonnummer hinzufügen", "Changes the avatar of the current room": "Ändert den Avatar für diesen Raum", "Deactivate account": "Benutzerkonto schließen", - "Show previews/thumbnails for images": "Zeige eine Vorschau für Bilder", + "Show previews/thumbnails for images": "Zeige Vorschauen/Thumbnails für Bilder", "View": "Vorschau", "Find a room…": "Suche einen Raum…", "Find a room… (e.g. %(exampleRoom)s)": "Suche einen Raum… (z.B. %(exampleRoom)s)", @@ -1458,7 +1458,7 @@ "Use an identity server to invite by email. Manage in Settings.": "Nutze einen Identitätsserver, um über E-Mail Einladungen zu verschicken. Verwalte es in den Einstellungen.", "%(name)s (%(userId)s)": "%(name)s (%(userId)s)", "Try out new ways to ignore people (experimental)": "Versuche neue Möglichkeiten, um Menschen zu ignorieren (experimentell)", - "Send read receipts for messages (requires compatible homeserver to disable)": "Schicke Lesebestätigungen für Nachrichten (erfordert einen kompatiblen Heimserver zum Deaktivieren)", + "Send read receipts for messages (requires compatible homeserver to disable)": "Schicke Lesebestätigungen für Nachrichten (erfordert kompatiblen Heimserver zum Deaktivieren)", "My Ban List": "Meine Bannliste", "This is your list of users/servers you have blocked - don't leave the room!": "Dies ist die Liste von Benutzer*innen/Servern, die du blockiert hast - verlasse den Raum nicht!", "Accept to continue:": "Akzeptiere , um fortzufahren:", @@ -1786,6 +1786,8 @@ "Your recovery key": "Dein Wiederherstellungsschlüssel", "Copy": "In Zwischenablage kopieren", "Make a copy of your recovery key": "Speichere deinen Wiederherstellungsschlüssel", - "Unverified login. Was this you?": "Nicht verifzierte Anmeldung. Bist du es gewesen?", - "Sends a message as html, without interpreting it as markdown": "Verschickt eine Nachricht im html-Format, ohne sie in Markdown zu formatieren" + "Unverified login. Was this you?": "Nicht verifizierte Anmeldung. Bist du es gewesen?", + "Sends a message as html, without interpreting it as markdown": "Verschickt eine Nachricht im html-Format, ohne sie in Markdown zu formatieren", + "Show rooms with unread notifications first": "Räume mit nicht gelesenen Benachrichtungen zuerst zeigen", + "Show shortcuts to recently viewed rooms above the room list": "Kurzbefehlezu den kürzlich gesichteteten Räumen über der Raumliste anzeigen" } From a049a602f20134dcbcf7a079f3185390cc065426 Mon Sep 17 00:00:00 2001 From: random Date: Sun, 12 Apr 2020 14:12:20 +0000 Subject: [PATCH 017/162] Translated using Weblate (Italian) Currently translated at 100.0% (2285 of 2285 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/it/ --- src/i18n/strings/it.json | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index fdd79fe074..5fb1de4ea2 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -2333,5 +2333,27 @@ "You cancelled verification on your other session.": "Hai annullato la verifica nell'altra sessione.", "%(displayName)s cancelled verification.": "%(displayName)s ha annullato la verifica.", "You cancelled verification.": "Hai annullato la verifica.", - "Self-verification request": "Richiesta di auto-verifica" + "Self-verification request": "Richiesta di auto-verifica", + "%(name)s is requesting verification": "%(name)s sta richiedendo la verifica", + "well formed": "formattato bene", + "unexpected type": "tipo inatteso", + "Confirm deleting these sessions by using Single Sign On to prove your identity.|other": "Conferma l'eliminazione di queste sessioni usando Single Sign On per dare prova della tua identità.", + "Confirm deleting these sessions by using Single Sign On to prove your identity.|one": "Conferma l'eliminazione di questa sessione usando Single Sign On per dare prova della tua identità.", + "Click the button below to confirm deleting these sessions.|other": "Clicca il pulsante sottostante per confermare l'eliminazione di queste sessioni.", + "Click the button below to confirm deleting these sessions.|one": "Clicca il pulsante sottostante per confermare l'eliminazione di questa sessione.", + "Delete sessions|other": "Elimina sessioni", + "Delete sessions|one": "Elimina sessione", + "Enable end-to-end encryption": "Attiva cifratura end-to-end", + "You can’t disable this later. Bridges & most bots won’t work yet.": "Non potrai più disattivarla. I bridge e molti bot non funzioneranno.", + "Confirm your account deactivation by using Single Sign On to prove your identity.": "Conferma la disattivazione del tuo account usando Single Sign On per dare prova della tua identità.", + "Are you sure you want to deactivate your account? This is irreversible.": "Sei sicuro di volere disattivare il tuo account? È irreversibile.", + "Confirm account deactivation": "Conferma disattivazione account", + "Server did not require any authentication": "Il server non ha richiesto alcuna autenticazione", + "Server did not return valid authentication information.": "Il server non ha restituito informazioni di autenticazione valide.", + "There was a problem communicating with the server. Please try again.": "C'è stato un problema nella comunicazione con il server. Riprova.", + "Welcome to %(appName)s": "Benvenuti su %(appName)s", + "Liberate your communication": "Libera le tue comunicazioni", + "Send a Direct Message": "Invia un messaggio diretto", + "Explore Public Rooms": "Esplora le stanze pubbliche", + "Create a Group Chat": "Crea una chat di gruppo" } From 24e81687b35ef52bbcee6f75629832e316fb14b3 Mon Sep 17 00:00:00 2001 From: "Nils J. Haugen" Date: Sun, 12 Apr 2020 17:29:33 +0000 Subject: [PATCH 018/162] Translated using Weblate (Norwegian Nynorsk) Currently translated at 58.9% (1346 of 2285 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nn/ --- src/i18n/strings/nn.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/nn.json b/src/i18n/strings/nn.json index 197212fb09..a3418a174d 100644 --- a/src/i18n/strings/nn.json +++ b/src/i18n/strings/nn.json @@ -1381,5 +1381,6 @@ "Enter your passphrase a second time to confirm it.": "Stadfest passfrasen ved å skrive den inn ein gong til.", "Unable to set up secret storage": "Oppsett av hemmeleg lager feila", "This session has detected that your recovery passphrase and key for Secure Messages have been removed.": "Denne økta har oppdaga at gjenopprettingspassfrasen og nøkkelen for sikre meldingar vart fjerna.", - "Toggle microphone mute": "Slå av/på demping av mikrofon" + "Toggle microphone mute": "Slå av/på demping av mikrofon", + "Confirm": "Stadfest" } From 36587d98eadaf7cf31b8e0b2798798a482f084e6 Mon Sep 17 00:00:00 2001 From: rkfg Date: Fri, 10 Apr 2020 21:00:24 +0000 Subject: [PATCH 019/162] Translated using Weblate (Russian) Currently translated at 90.2% (2062 of 2285 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 | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index dce962c3a0..bd20572d40 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -116,9 +116,9 @@ "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "для %(userId)s с %(fromPowerLevel)s на %(toPowerLevel)s", "click to reveal": "нажмите для открытия", "%(senderName)s invited %(targetName)s.": "%(senderName)s приглашает %(targetName)s.", - "%(targetName)s joined the room.": "В комнату входит %(targetName)s.", + "%(targetName)s joined the room.": "%(targetName)s входит в комнату.", "%(senderName)s kicked %(targetName)s.": "%(senderName)s выгнал(а) %(targetName)s.", - "%(targetName)s left the room.": "%(targetName)s покинул комнату.", + "%(targetName)s left the room.": "%(targetName)s покидает комнату.", "%(senderName)s made future room history visible to all room members, from the point they are invited.": "%(senderName)s сделал(а) историю разговора видимой для всех собеседников с момента их приглашения.", "%(senderName)s made future room history visible to all room members, from the point they joined.": "%(senderName)s сделал(а) историю разговора видимой для всех собеседников с момента их входа в комнату.", "%(senderName)s made future room history visible to all room members.": "%(senderName)s сделал(а) историю разговора видимой для всех собеседников.", @@ -830,7 +830,7 @@ "Unable to fetch notification target list": "Не удалось получить список устройств для уведомлений", "Set Password": "Задать пароль", "Off": "Выключить", - "Riot does not know how to join a room on this network": "Riot не знает, как присоединиться к комнате, принадлежащей к этой сети", + "Riot does not know how to join a room on this network": "Riot не знает, как присоединиться к комнате в этой сети", "Mentions only": "Только при упоминаниях", "Wednesday": "Среда", "You can now return to your account after signing out, and sign in on other devices.": "Теперь вы сможете вернуться к своей учётной записи после выхода и войти на других устройствах.", @@ -1042,7 +1042,7 @@ "Failed to load group members": "Не удалось загрузить участников группы", "This homeserver has hit its Monthly Active User limit so some users will not be able to log in.": "Из-за ежемесячного ограничения активных пользователей сервера некоторые из пользователей не смогут войти в систему.", "This homeserver has exceeded one of its resource limits so some users will not be able to log in.": "Превышен один из ресурсных лимитов сервера, по этому некоторые пользователи не смогут залогиниться.", - "Join": "Присоединиться", + "Join": "Войти", "That doesn't look like a valid email address": "Это не похоже на адрес электронной почты", "Your message wasn't sent because this homeserver has hit its Monthly Active User Limit. Please contact your service administrator to continue using the service.": "Ваше сообщение не было отправлено, потому что этот домашний сервер превысил месячный лимит активных пользователей. обратитесь к администратору службы, чтобы продолжить использование службы.", "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.": "Ваше сообщение не было отправлено, потому что этот домашний сервер превысил лимит ресурсов. обратитесь к администратору службы, чтобы продолжить использование службы.", @@ -1270,7 +1270,7 @@ "%(senderDisplayName)s enabled flair for %(newGroups)s and disabled flair for %(oldGroups)s in this room.": "%(senderDisplayName)s включено для %(newGroups)s и отключено для %(oldGroups)s в этой комнате.", "Once enabled, encryption cannot be disabled.": "После включения, шифрование не может быть отключено.", "This room has been replaced and is no longer active.": "Эта комната была замещена и больше не активна.", - "Joining room …": "Вступление в комнату …", + "Joining room …": "Вход в комнату …", "Loading …": "Загрузка…", "Rejecting invite …": "Отказ от приглашения …", "Join the conversation with an account": "Присоединиться к разговору с учётной записью", @@ -1671,7 +1671,7 @@ "Enter your custom homeserver URL What does this mean?": "Введите URL-адрес вашего собственного домашнего сервера Что это значит? ", "Enter your custom identity server URL What does this mean?": "Введите URL-адрес вашего собственного сервера идентификации Что это значит?", "%(creator)s created and configured the room.": "%(creator)s создал и настроил комнату.", - "Preview": "Предпросмотр", + "Preview": "Заглянуть", "View": "Просмотр", "Find a room…": "Найди комнату…", "Find a room… (e.g. %(exampleRoom)s)": "Найди комнату... (напр. %(exampleRoom)s)", @@ -2101,5 +2101,7 @@ "You can’t disable this later. Bridges & most bots won’t work yet.": "Вы не сможете его отключить в дальнейшем. Мосты и большинство ботов пока что не будут работать.", "Verify session": "Подтвердить сессию", "Session name": "Название сессии", - "Session key": "Ключ сессии" + "Session key": "Ключ сессии", + "Backup key stored in secret storage, but this feature is not enabled on this session. Please enable cross-signing in Labs to modify key backup state.": "Резервная копия ключа сохранена в хранилище секретов", + "Backup key stored: ": "Резервная копия ключа сохранена: " } From bf8478fd36c1b28809c71a7202b1c3b0d6ab8fdb Mon Sep 17 00:00:00 2001 From: Besnik Bleta Date: Tue, 14 Apr 2020 12:05:21 +0000 Subject: [PATCH 020/162] Translated using Weblate (Albanian) Currently translated at 99.3% (2273 of 2288 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/sq/ --- src/i18n/strings/sq.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sq.json b/src/i18n/strings/sq.json index c467873553..fef96e8193 100644 --- a/src/i18n/strings/sq.json +++ b/src/i18n/strings/sq.json @@ -2336,5 +2336,10 @@ "Liberate your communication": "Çlironi komunikimin tuaj", "Send a Direct Message": "Dërgoni Mesazh të Drejtpërdrejtë", "Explore Public Rooms": "Eksploroni Dhoma Publike", - "Create a Group Chat": "Krijoni një Fjalosje Grupi" + "Create a Group Chat": "Krijoni një Fjalosje Grupi", + "Failed to set topic": "S’u arrit të caktohej temë", + "Command failed": "Urdhri dështoi", + "Could not find user in room": "S’u gjet përdorues në dhomë", + "well formed": "e mirëformuar", + "Delete sessions|other": "Fshiji sesionet" } From 408dad0f8bf474bf29a043b605b6c93df3888c04 Mon Sep 17 00:00:00 2001 From: Besnik Bleta Date: Tue, 14 Apr 2020 12:06:15 +0000 Subject: [PATCH 021/162] Translated using Weblate (Albanian) Currently translated at 99.3% (2273 of 2288 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/sq/ --- src/i18n/strings/sq.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sq.json b/src/i18n/strings/sq.json index fef96e8193..81b361c69c 100644 --- a/src/i18n/strings/sq.json +++ b/src/i18n/strings/sq.json @@ -2341,5 +2341,6 @@ "Command failed": "Urdhri dështoi", "Could not find user in room": "S’u gjet përdorues në dhomë", "well formed": "e mirëformuar", - "Delete sessions|other": "Fshiji sesionet" + "Delete sessions|other": "Fshiji sesionet", + "Delete sessions|one": "Fshije sesionin" } From 8a1b8b9998fd89a849c0c7dc336bf15d77f71134 Mon Sep 17 00:00:00 2001 From: Besnik Bleta Date: Tue, 14 Apr 2020 12:06:41 +0000 Subject: [PATCH 022/162] Translated using Weblate (Albanian) Currently translated at 99.7% (2281 of 2288 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/sq/ --- src/i18n/strings/sq.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sq.json b/src/i18n/strings/sq.json index 81b361c69c..426f964a29 100644 --- a/src/i18n/strings/sq.json +++ b/src/i18n/strings/sq.json @@ -2342,5 +2342,13 @@ "Could not find user in room": "S’u gjet përdorues në dhomë", "well formed": "e mirëformuar", "Delete sessions|other": "Fshiji sesionet", - "Delete sessions|one": "Fshije sesionin" + "Delete sessions|one": "Fshije sesionin", + "Enable end-to-end encryption": "Aktivizo fshehtëzim skaj-më-skaj", + "You can’t disable this later. Bridges & most bots won’t work yet.": "Këtë s’mund ta çaktivizoni më vonë. Urat & shumica e robotëve ende s’do të funksionojnë.", + "Confirm your account deactivation by using Single Sign On to prove your identity.": "Ripohoni çaktivizimin e llogarisë tuaj duke përdorur Hyrje Njëshe që të dëshmoni identitetin tuaj.", + "Are you sure you want to deactivate your account? This is irreversible.": "Jeni i sigurt se doni të çaktivizohet llogaria juaj? Kjo është e pakthyeshme.", + "Confirm account deactivation": "Ripohoni çaktivizim llogarie", + "Server did not require any authentication": "Shërbyesi s’kërkoi ndonjë mirëfilltësim", + "Server did not return valid authentication information.": "Shërbyesi s’ktheu ndonjë të dhënë të vlefshme mirëfilltësimi.", + "There was a problem communicating with the server. Please try again.": "Pati një problem në komunikimin me shërbyesin. Ju lutemi, riprovoni." } From 08d56e55d413d77eb6158a521c0ae56340eae79b Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Wed, 15 Apr 2020 02:57:24 +0000 Subject: [PATCH 023/162] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (2288 of 2288 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index a731e62af2..61fe4b8026 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -2357,5 +2357,10 @@ "Delete sessions|other": "刪除工作階段", "Delete sessions|one": "刪除工作階段", "Enable end-to-end encryption": "啟用端到端加密", - "You can’t disable this later. Bridges & most bots won’t work yet.": "您無法在稍後停用此功能。橋接與大多數機器人也尚無法運作。" + "You can’t disable this later. Bridges & most bots won’t work yet.": "您無法在稍後停用此功能。橋接與大多數機器人也尚無法運作。", + "Failed to set topic": "設定主題失敗", + "Command failed": "指令失敗", + "Could not find user in room": "在聊天室中找不到使用者", + "Use an existing session to verify this one, granting it access to encrypted messages.": "使用既有的工作階段來驗證這個,授予其對加密訊息的存取權限。", + "Use your other device to continue…": "使用您其他的裝置繼續……" } From ebef7a21672d41fcf9770e3135d57c89cd793725 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Wed, 15 Apr 2020 06:28:06 +0000 Subject: [PATCH 024/162] Translated using Weblate (French) Currently translated at 100.0% (2288 of 2288 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 677c48a2dc..9e87e869b4 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -2358,5 +2358,10 @@ "Delete sessions|other": "Supprimer les sessions", "Delete sessions|one": "Supprimer la session", "Enable end-to-end encryption": "Activer le chiffrement de bout en bout", - "You can’t disable this later. Bridges & most bots won’t work yet.": "Vous ne pourrez pas le désactiver plus tard. Les passerelles et la plupart des bots ne fonctionneront pas pour le moment." + "You can’t disable this later. Bridges & most bots won’t work yet.": "Vous ne pourrez pas le désactiver plus tard. Les passerelles et la plupart des bots ne fonctionneront pas pour le moment.", + "Failed to set topic": "Échec du changement de sujet", + "Command failed": "La commande a échoué", + "Could not find user in room": "Impossible de trouver l’utilisateur dans le salon", + "Use an existing session to verify this one, granting it access to encrypted messages.": "Utilisez une session existante pour vérifier celle-ci, ce qui lui permettra d’avoir accès aux messages chiffrés.", + "Use your other device to continue…": "Utilisez votre autre appareil pour continuer…" } From 357dc504f54a86d6a3bc3c4ec95ceafe3c9af73e Mon Sep 17 00:00:00 2001 From: random Date: Wed, 15 Apr 2020 09:40:20 +0000 Subject: [PATCH 025/162] Translated using Weblate (Italian) Currently translated at 100.0% (2288 of 2288 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/it/ --- src/i18n/strings/it.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index 5fb1de4ea2..fb8c21387a 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -2355,5 +2355,10 @@ "Liberate your communication": "Libera le tue comunicazioni", "Send a Direct Message": "Invia un messaggio diretto", "Explore Public Rooms": "Esplora le stanze pubbliche", - "Create a Group Chat": "Crea una chat di gruppo" + "Create a Group Chat": "Crea una chat di gruppo", + "Failed to set topic": "Impostazione argomento fallita", + "Command failed": "Comando fallito", + "Could not find user in room": "Utente non trovato nella stanza", + "Use an existing session to verify this one, granting it access to encrypted messages.": "Usa una sessione esistente per verificare questa, dandole l'accesso ai messaggi cifrati.", + "Use your other device to continue…": "Usa il tuo altro dispositivo per continuare…" } From 6d6078412208b11c6c981e1a385a19427bf02a6b Mon Sep 17 00:00:00 2001 From: Valex Date: Wed, 15 Apr 2020 13:32:14 +0000 Subject: [PATCH 026/162] Translated using Weblate (Russian) Currently translated at 90.3% (2065 of 2288 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 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index bd20572d40..124ab7d9d5 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -2103,5 +2103,8 @@ "Session name": "Название сессии", "Session key": "Ключ сессии", "Backup key stored in secret storage, but this feature is not enabled on this session. Please enable cross-signing in Labs to modify key backup state.": "Резервная копия ключа сохранена в хранилище секретов", - "Backup key stored: ": "Резервная копия ключа сохранена: " + "Backup key stored: ": "Резервная копия ключа сохранена: ", + "Command failed": "Не удалось выполнить команду", + "To report a Matrix-related security issue, please read the Matrix.org Security Disclosure Policy.": "Чтобы сообщить о проблеме безопасности Matrix, пожалуйста, прочитайте Политику раскрытия информации Matrix.org.", + "Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "Установить адрес этой комнаты, чтобы пользователи могли найти ее на вашем сервере (%(localDomain)s)" } From 5956e9ec6b05102856d7c3b7502b91c22d56b020 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Thu, 16 Apr 2020 02:09:23 +0000 Subject: [PATCH 027/162] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (2291 of 2291 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 61fe4b8026..3e4b1ab097 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -2362,5 +2362,8 @@ "Command failed": "指令失敗", "Could not find user in room": "在聊天室中找不到使用者", "Use an existing session to verify this one, granting it access to encrypted messages.": "使用既有的工作階段來驗證這個,授予其對加密訊息的存取權限。", - "Use your other device to continue…": "使用您其他的裝置繼續……" + "Use your other device to continue…": "使用您其他的裝置繼續……", + "Syncing...": "正在同步……", + "Signing In...": "正在登入……", + "If you've joined lots of rooms, this might take a while": "如果您已加入很多聊天室,這可能需要一點時間" } From bc48d012b8571414bf1744d2bbfb84bdd8813043 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Thu, 16 Apr 2020 06:23:09 +0000 Subject: [PATCH 028/162] Translated using Weblate (French) Currently translated at 100.0% (2291 of 2291 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 9e87e869b4..b4e7557dbf 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -2363,5 +2363,8 @@ "Command failed": "La commande a échoué", "Could not find user in room": "Impossible de trouver l’utilisateur dans le salon", "Use an existing session to verify this one, granting it access to encrypted messages.": "Utilisez une session existante pour vérifier celle-ci, ce qui lui permettra d’avoir accès aux messages chiffrés.", - "Use your other device to continue…": "Utilisez votre autre appareil pour continuer…" + "Use your other device to continue…": "Utilisez votre autre appareil pour continuer…", + "Syncing...": "Synchronisation…", + "Signing In...": "Authentification…", + "If you've joined lots of rooms, this might take a while": "Si vous avez rejoint beaucoup de salons, cela peut prendre du temps" } From 9de8adc7af42ee4c5d3456b87699791b3d4da1ce Mon Sep 17 00:00:00 2001 From: random Date: Thu, 16 Apr 2020 13:44:02 +0000 Subject: [PATCH 029/162] Translated using Weblate (Italian) Currently translated at 100.0% (2291 of 2291 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/it/ --- src/i18n/strings/it.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index fb8c21387a..a2796c103c 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -2360,5 +2360,8 @@ "Command failed": "Comando fallito", "Could not find user in room": "Utente non trovato nella stanza", "Use an existing session to verify this one, granting it access to encrypted messages.": "Usa una sessione esistente per verificare questa, dandole l'accesso ai messaggi cifrati.", - "Use your other device to continue…": "Usa il tuo altro dispositivo per continuare…" + "Use your other device to continue…": "Usa il tuo altro dispositivo per continuare…", + "Syncing...": "Sincronizzazione...", + "Signing In...": "Accesso...", + "If you've joined lots of rooms, this might take a while": "Se sei dentro a molte stanze, potrebbe impiegarci un po'" } From 765205869aa5bac4c4f1f8772dca94a324405fd6 Mon Sep 17 00:00:00 2001 From: rkfg Date: Thu, 16 Apr 2020 14:13:16 +0000 Subject: [PATCH 030/162] Translated using Weblate (Russian) Currently translated at 90.1% (2065 of 2291 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 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 124ab7d9d5..05ae816c88 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -760,7 +760,7 @@ "You have successfully set a password!": "Вы успешно установили пароль!", "An error occurred whilst saving your email notification preferences.": "Возникла ошибка при сохранении настроек email-уведомлений.", "Explore Room State": "Просмотр статуса комнаты", - "Source URL": "Исходный URL-адрес", + "Source URL": "Исходная ссылка", "Messages sent by bot": "Сообщения от ботов", "Filter results": "Фильтрация результатов", "Members": "Участники", @@ -881,7 +881,7 @@ "This room is used for important messages from the Homeserver, so you cannot leave it.": "Эта комната используется для важных сообщений от сервера, поэтому вы не можете ее покинуть.", "No Audio Outputs detected": "Аудиовыход не обнаружен", "Audio Output": "Аудиовыход", - "Share Link to User": "Поделиться ссылкой с пользователем", + "Share Link to User": "Поделиться ссылкой на пользователя", "Share room": "Поделиться комнатой", "Share Room": "Поделиться комнатой", "Link to most recent message": "Ссылка на последнее сообщение", From 65f1f7cfad3de1fe1cb8424620ebf2eb4d0dd7ce Mon Sep 17 00:00:00 2001 From: Besnik Bleta Date: Thu, 16 Apr 2020 14:59:32 +0000 Subject: [PATCH 031/162] Translated using Weblate (Albanian) Currently translated at 99.7% (2282 of 2289 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/sq/ --- src/i18n/strings/sq.json | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/sq.json b/src/i18n/strings/sq.json index 426f964a29..49f28b9129 100644 --- a/src/i18n/strings/sq.json +++ b/src/i18n/strings/sq.json @@ -2350,5 +2350,33 @@ "Confirm account deactivation": "Ripohoni çaktivizim llogarie", "Server did not require any authentication": "Shërbyesi s’kërkoi ndonjë mirëfilltësim", "Server did not return valid authentication information.": "Shërbyesi s’ktheu ndonjë të dhënë të vlefshme mirëfilltësimi.", - "There was a problem communicating with the server. Please try again.": "Pati një problem në komunikimin me shërbyesin. Ju lutemi, riprovoni." + "There was a problem communicating with the server. Please try again.": "Pati një problem në komunikimin me shërbyesin. Ju lutemi, riprovoni.", + "If you cancel now, you won't complete your operation.": "Nëse e anuloni tani, s’do ta plotësoni veprimin tuaj.", + "Keep recovery passphrase in memory for this session": "Për këtë sesion, mbaje në kujtesë frazëkalimin e rimarrjeve", + "Verify other session": "Verifikoni tjetër sesion", + "Unable to access secret storage. Please verify that you entered the correct recovery passphrase.": "S’arrihet të hyhet në depozitë të fshehtë. Ju lutemi, verifikoni se dhatë frazëkalimin e duhur për rimarrje.", + "Warning: You should only do this on a trusted computer.": "Kujdes: Këtë duhet ta bëni vetëm në një kompjuter të besuar.", + "Access your secure message history and your cross-signing identity for verifying other sessions by entering your recovery passphrase.": "Hyni te historiku i mesazheve tuaj të sigurt dhe identiteti juaj për cross-signing për verifikim sesionesh të tjerë, duke dhënë frazëkalimin tuaj për rimarrje.", + "If you've forgotten your recovery passphrase you can use your recovery key or set up new recovery options.": "Nëse e keni harruar frazëkalimin tuaj të rimarrjeve, mund të përdorni kyçin tuaj të rimarrjeve ose të ujdisni mundësi të reja rimarrjesh.", + "Backup could not be decrypted with this recovery key: please verify that you entered the correct recovery key.": "Kopjeruajtja s’u shfshehtëzua dot me këtë kyç rimarrjesh: ju lutemi, verifikoni se keni dhënë kyçin e saktë të rimarrjeve.", + "Backup could not be decrypted with this recovery passphrase: please verify that you entered the correct recovery passphrase.": "Kopjeruajtja s’u shfshehtëzua dot me këtë frazëkalim rimarrjesh: ju lutemi, verifikoni se keni dhënë frazëkalimin e saktë të rimarrjeve.", + "Syncing...": "Po njëkohësohet…", + "Signing In...": "Po hyhet…", + "If you've joined lots of rooms, this might take a while": "Nëse jeni pjesë e shumë dhomave, kjo mund të zgjasë ca", + "Use an existing session to verify this one, granting it access to encrypted messages.": "Që të verifikoni këtë, përdorni një sesion ekzistues, duke i akorduar hyrje te mesazhe të fshehtëzuar.", + "If you can’t access one, ": "Nëse s’hyni dot në një, ", + "Use your other device to continue…": "Që të vazhdohet, përdorni pajisjen tuaj tjetër…", + "Great! This recovery passphrase looks strong enough.": "Bukur! Ky frazëkalim rimarrjesh duket mjaftueshëm i fuqishëm.", + "Set a recovery passphrase to secure encrypted information and recover it if you log out. This should be different to your account password:": "Caktoni një frazëkalim rimarrjesh që të siguroni informacione të fshehtëzuar dhe për ta rimarrë, nëse dilni nga llogaria. Ky duhet të jetë i ndryshëm nga fjalëkalimi juaj për llogarinë:", + "Enter a recovery passphrase": "Jepni një frazëkalim rimarrjesh", + "Back up encrypted message keys": "Kopjeruani kyçe mesazhesh të fshehtëzuar", + "Enter your recovery passphrase a second time to confirm it.": "Për ta ripohuar, jepeni edhe një herë frazëkalimin tuaj të rimarrjeve.", + "Confirm your recovery passphrase": "Ripohoni frazëkalimin tuaj të rimarrjeve", + "Your recovery key is a safety net - you can use it to restore access to your encrypted messages if you forget your recovery passphrase.": "Kyçi juaj i rimarrjeve është një rrjet sigurie - mund ta përdorni të të rifituar hyrje te mesazhet tuaj të fshehtëzuar, nëse harroni frazëkalimin tuaj të rimarrjeve.", + "Confirm recovery passphrase": "Ripohoni frazëkalim rimarrjesh", + "We'll store an encrypted copy of your keys on our server. Secure your backup with a recovery passphrase.": "Do të ruajmë një kopje të fshehtëzuar të kyçeve tuaj në shërbyesin tonë. Siguroni kopjeruajtjen tuaj me një frazëkalim rimarrjesh.", + "Enter a recovery passphrase...": "Jepni një frazëkalim rimarrjesh…", + "Please enter your recovery passphrase a second time to confirm.": "Ju lutemi, jepeni frazëkalimin tuaj të rimarrjeve edhe një herë, për ta ripohuar.", + "Repeat your recovery passphrase...": "Përsëritni frazëkalimin tuaj të rimarrjeve…", + "Secure your backup with a recovery passphrase": "Sigurojeni kopjeruajtjen tuaj me një frazëkalim rimarrjesh" } From cb5b5fddbe0f9060ed2aa57006232384c4cde1c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98jvind=20Fritjof=20Arnfred?= Date: Thu, 16 Apr 2020 19:23:37 +0000 Subject: [PATCH 032/162] Translated using Weblate (Danish) Currently translated at 22.6% (517 of 2289 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/da/ --- src/i18n/strings/da.json | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/i18n/strings/da.json b/src/i18n/strings/da.json index e0ed9a9bfa..23fce8067e 100644 --- a/src/i18n/strings/da.json +++ b/src/i18n/strings/da.json @@ -350,9 +350,9 @@ "Call Failed": "Opkald mislykkedes", "Review Devices": "Gennemse enheder", "Call Anyway": "Ring op alligevel", - "Answer Anyway": "Tag imod alligevel", + "Answer Anyway": "Svar alligevel", "Call": "Ring", - "Answer": "Tag imod", + "Answer": "Svar", "Call failed due to misconfigured server": "Opkaldet mislykkedes pga. fejlkonfigureret server", "Please ask the administrator of your homeserver (%(homeserverDomain)s) to configure a TURN server in order for calls to work reliably.": "Bed administratoren af din homeserver (%(homeserverDomain)s) om at konfigurere en TURN server for at opkald virker pålideligt.", "Alternatively, you can try to use the public server at turn.matrix.org, but this will not be as reliable, and it will share your IP address with that server. You can also manage this in Settings.": "Alternativt kan du prøve at bruge den offentlige server turn.matrix.org, men det er ikke lige så pålideligt, og din IP-adresse deles med den server. Du kan også administrere dette under Indstillinger.", @@ -519,5 +519,17 @@ "Show a placeholder for removed messages": "Vis en pladsholder for fjernede beskeder", "The version of Riot": "Riot versionen", "Whether you're using Riot on a device where touch is the primary input mechanism": "Hvorvidt du benytter Riot på en enhed, hvor touch er den primære input-grænseflade", - "Your user agent": "Din user agent" + "Your user agent": "Din user agent", + "Use Single Sign On to continue": "Brug Single Sign On til at fortsætte", + "Confirm adding this email address by using Single Sign On to prove your identity.": "Bekræft tilføjelsen af denne email adresse ved at bruge Single Sign On til at bevise din identitet.", + "Single Sign On": "Single Sign On", + "Confirm adding email": "Bekræft tilføjelse af email", + "Click the button below to confirm adding this email address.": "Klik på knappen herunder for at bekræfte tilføjelsen af denne email adresse.", + "Confirm": "Bekræft", + "Confirm adding this phone number by using Single Sign On to prove your identity.": "Bekræft tilføjelsen af dette telefonnummer ved at bruge Single Sign On til at bevise din identitet.", + "Confirm adding phone number": "Bekræft tilføjelse af telefonnummer", + "Click the button below to confirm adding this phone number.": "Klik på knappen herunder for at bekræfte tilføjelsen af dette telefonnummer.", + "Whether you're using Riot as an installed Progressive Web App": "Om du anvender Riot som en installeret Progressiv Web App", + "The information being sent to us to help make Riot better includes:": "Informationen der sendes til os for at hjælpe os med at gøre Riot bedre inkluderer:", + "There are unknown sessions in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "Der er ukendte sessions i dette rum: Hvis du fortsætter uden at verificere dem, vil det være muligt for andre at smuglytte til dit opkald." } From a81f3f6d193ccb1feaa8476716f7ac114f5d09b2 Mon Sep 17 00:00:00 2001 From: Szimszon Date: Thu, 16 Apr 2020 19:52:05 +0000 Subject: [PATCH 033/162] Translated using Weblate (Hungarian) Currently translated at 98.3% (2251 of 2289 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 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index f74e9d48fd..8c64fe49ba 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -2340,5 +2340,9 @@ "Explore Public Rooms": "Nyilvános szobák felderítése", "Create a Group Chat": "Készíts Csoportos Beszélgetést", "Self-verification request": "Ön ellenőrzés kérése", - "Cancel replying to a message": "Üzenet válasz megszakítása" + "Cancel replying to a message": "Üzenet válasz megszakítása", + "Confirm adding email": "E-mail hozzáadásának megerősítése", + "Click the button below to confirm adding this email address.": "Az e-mail cím hozzáadásának megerősítéséhez kattints a gombra lent.", + "Confirm adding phone number": "Telefonszám hozzáadásának megerősítése", + "Click the button below to confirm adding this phone number.": "Az telefonszám hozzáadásának megerősítéséhez kattints a gombra lent." } From bf63fd2b507c12d356e6f652f18cc0468185f98d Mon Sep 17 00:00:00 2001 From: aWeinzierl Date: Fri, 17 Apr 2020 00:22:47 +0000 Subject: [PATCH 034/162] Translated using Weblate (German) Currently translated at 75.4% (1726 of 2289 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index fd83df82b0..c2875fecfa 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1789,5 +1789,6 @@ "Unverified login. Was this you?": "Nicht verifizierte Anmeldung. Bist du es gewesen?", "Sends a message as html, without interpreting it as markdown": "Verschickt eine Nachricht im html-Format, ohne sie in Markdown zu formatieren", "Show rooms with unread notifications first": "Räume mit nicht gelesenen Benachrichtungen zuerst zeigen", - "Show shortcuts to recently viewed rooms above the room list": "Kurzbefehlezu den kürzlich gesichteteten Räumen über der Raumliste anzeigen" + "Show shortcuts to recently viewed rooms above the room list": "Kurzbefehlezu den kürzlich gesichteteten Räumen über der Raumliste anzeigen", + "Use Single Sign On to continue": "Benutze „Single Sign-On“ (Einmalanmeldung) um fortzufahren" } From 686dc2d7ac695f677f596aceef1f57277d0003ab Mon Sep 17 00:00:00 2001 From: alexsal86 Date: Fri, 17 Apr 2020 00:23:13 +0000 Subject: [PATCH 035/162] Translated using Weblate (German) Currently translated at 75.4% (1726 of 2289 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index c2875fecfa..58512f07f5 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1790,5 +1790,6 @@ "Sends a message as html, without interpreting it as markdown": "Verschickt eine Nachricht im html-Format, ohne sie in Markdown zu formatieren", "Show rooms with unread notifications first": "Räume mit nicht gelesenen Benachrichtungen zuerst zeigen", "Show shortcuts to recently viewed rooms above the room list": "Kurzbefehlezu den kürzlich gesichteteten Räumen über der Raumliste anzeigen", - "Use Single Sign On to continue": "Benutze „Single Sign-On“ (Einmalanmeldung) um fortzufahren" + "Use Single Sign On to continue": "Benutze „Single Sign-On“ (Einmalanmeldung) um fortzufahren", + "Confirm adding this email address by using Single Sign On to prove your identity.": "Bestätige das Hinzufügen dieser E-Mail-Adresse mit Single Sign On, um deine Identität nachzuweisen." } From 0489f10cf59c3d9428ce38211ed0d5f79dbd6097 Mon Sep 17 00:00:00 2001 From: aWeinzierl Date: Fri, 17 Apr 2020 00:24:24 +0000 Subject: [PATCH 036/162] Translated using Weblate (German) Currently translated at 75.9% (1738 of 2289 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 | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 58512f07f5..11c3305fcf 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1791,5 +1791,14 @@ "Show rooms with unread notifications first": "Räume mit nicht gelesenen Benachrichtungen zuerst zeigen", "Show shortcuts to recently viewed rooms above the room list": "Kurzbefehlezu den kürzlich gesichteteten Räumen über der Raumliste anzeigen", "Use Single Sign On to continue": "Benutze „Single Sign-On“ (Einmalanmeldung) um fortzufahren", - "Confirm adding this email address by using Single Sign On to prove your identity.": "Bestätige das Hinzufügen dieser E-Mail-Adresse mit Single Sign On, um deine Identität nachzuweisen." + "Confirm adding this email address by using Single Sign On to prove your identity.": "Bestätige das Hinzufügen dieser E-Mail-Adresse mit „Single Sign-On“, um deine Identität nachzuweisen.", + "Single Sign On": "Single Sign-On", + "Confirm adding email": "Bestätige das Hinzfugen der Email-Addresse", + "Confirm adding this phone number by using Single Sign On to prove your identity.": "Bestätige das Hinzufügen dieser Telefonnumer, indem du deine Identität mittels Single Sign-On nachweist.", + "Click the button below to confirm adding this phone number.": "Betätige unten die Schaltfläche um das Hinzfügen dieser Telefonnummer zu bestätigen.", + "If you cancel now, you won't complete your operation.": "Wenn du jetzt abbrichst, wirst du deinen Vorgang nicht fertigstellen.", + "%(name)s is requesting verification": "%(name)s fordert eine Verifizierung an", + "Failed to set topic": "Das Festlegen des Themas ist fehlgeschlagen", + "Command failed": "Befehl fehlgeschlagen", + "Could not find user in room": "Der Benutzer konnte im Raum nicht gefunden werden" } From efbac83bc3f975264839ba394ddb9a5ed40e628a Mon Sep 17 00:00:00 2001 From: alexsal86 Date: Fri, 17 Apr 2020 00:25:32 +0000 Subject: [PATCH 037/162] Translated using Weblate (German) Currently translated at 75.9% (1738 of 2289 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, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 11c3305fcf..99339d9362 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1800,5 +1800,7 @@ "%(name)s is requesting verification": "%(name)s fordert eine Verifizierung an", "Failed to set topic": "Das Festlegen des Themas ist fehlgeschlagen", "Command failed": "Befehl fehlgeschlagen", - "Could not find user in room": "Der Benutzer konnte im Raum nicht gefunden werden" + "Could not find user in room": "Der Benutzer konnte im Raum nicht gefunden werden", + "Click the button below to confirm adding this email address.": "Klicken Sie auf die Schaltfläche unten, um das Hinzufügen dieser E-Mail-Adresse zu bestätigen.", + "Confirm adding phone number": "Bestätigen Sie das Hinzufügen der Telefonnummer." } From d8808117809a74c283e646a165e8c041f4a73a62 Mon Sep 17 00:00:00 2001 From: "@a2sc:matrix.org" Date: Fri, 17 Apr 2020 00:33:19 +0000 Subject: [PATCH 038/162] Translated using Weblate (German) Currently translated at 75.9% (1738 of 2289 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 99339d9362..ee5c5dcfcd 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1802,5 +1802,6 @@ "Command failed": "Befehl fehlgeschlagen", "Could not find user in room": "Der Benutzer konnte im Raum nicht gefunden werden", "Click the button below to confirm adding this email address.": "Klicken Sie auf die Schaltfläche unten, um das Hinzufügen dieser E-Mail-Adresse zu bestätigen.", - "Confirm adding phone number": "Bestätigen Sie das Hinzufügen der Telefonnummer." + "Confirm adding phone number": "Bestätigen Sie das Hinzufügen der Telefonnummer.", + "%(senderName)s changed a rule that was banning servers matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s ändert eine Ausschluss-Regel, für Server von %(oldGlob)s nach %(newGlob)s, wegen %(reason)s" } From 792abac5231139536a63bd4c12f9db021eae8aa5 Mon Sep 17 00:00:00 2001 From: aWeinzierl Date: Fri, 17 Apr 2020 00:34:06 +0000 Subject: [PATCH 039/162] Translated using Weblate (German) Currently translated at 76.0% (1739 of 2289 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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index ee5c5dcfcd..584c526b5b 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1803,5 +1803,5 @@ "Could not find user in room": "Der Benutzer konnte im Raum nicht gefunden werden", "Click the button below to confirm adding this email address.": "Klicken Sie auf die Schaltfläche unten, um das Hinzufügen dieser E-Mail-Adresse zu bestätigen.", "Confirm adding phone number": "Bestätigen Sie das Hinzufügen der Telefonnummer.", - "%(senderName)s changed a rule that was banning servers matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s ändert eine Ausschluss-Regel, für Server von %(oldGlob)s nach %(newGlob)s, wegen %(reason)s" + "%(senderName)s changed a rule that was banning servers matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s ändert eine Ausschluss-Regel für Server von %(oldGlob)s nach %(newGlob)s wegen %(reason)s" } From 0900cf1ebefd91a211fba8d4b3fbdf8a539e9f6d Mon Sep 17 00:00:00 2001 From: "@a2sc:matrix.org" Date: Fri, 17 Apr 2020 00:34:27 +0000 Subject: [PATCH 040/162] Translated using Weblate (German) Currently translated at 76.0% (1739 of 2289 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 584c526b5b..1ce1215cea 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1803,5 +1803,6 @@ "Could not find user in room": "Der Benutzer konnte im Raum nicht gefunden werden", "Click the button below to confirm adding this email address.": "Klicken Sie auf die Schaltfläche unten, um das Hinzufügen dieser E-Mail-Adresse zu bestätigen.", "Confirm adding phone number": "Bestätigen Sie das Hinzufügen der Telefonnummer.", - "%(senderName)s changed a rule that was banning servers matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s ändert eine Ausschluss-Regel für Server von %(oldGlob)s nach %(newGlob)s wegen %(reason)s" + "%(senderName)s changed a rule that was banning servers matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s ändert eine Ausschluss-Regel für Server von %(oldGlob)s nach %(newGlob)s wegen %(reason)s", + "%(senderName)s updated a ban rule that was matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s erneuert eine Ausschluss-Regel von %(oldGlob)s nach %(newGlob)s, wegen %(reason)s" } From d68853ae7a6ac5449ba401c125663662179f93a4 Mon Sep 17 00:00:00 2001 From: aWeinzierl Date: Fri, 17 Apr 2020 00:34:35 +0000 Subject: [PATCH 041/162] Translated using Weblate (German) Currently translated at 76.4% (1748 of 2289 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 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 1ce1215cea..2a7e1f2135 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1804,5 +1804,10 @@ "Click the button below to confirm adding this email address.": "Klicken Sie auf die Schaltfläche unten, um das Hinzufügen dieser E-Mail-Adresse zu bestätigen.", "Confirm adding phone number": "Bestätigen Sie das Hinzufügen der Telefonnummer.", "%(senderName)s changed a rule that was banning servers matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s ändert eine Ausschluss-Regel für Server von %(oldGlob)s nach %(newGlob)s wegen %(reason)s", - "%(senderName)s updated a ban rule that was matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s erneuert eine Ausschluss-Regel von %(oldGlob)s nach %(newGlob)s, wegen %(reason)s" + "%(senderName)s updated a ban rule that was matching %(oldGlob)s to matching %(newGlob)s for %(reason)s": "%(senderName)s erneuert eine Ausschluss-Regel von %(oldGlob)s nach %(newGlob)s wegen %(reason)s", + "Not Trusted": "Nicht vertrauenswürdig", + "Manually Verify by Text": "Verifiziere manuell mit einem Text", + "Interactively verify by Emoji": "Verifiziere interaktiv mit Emojis", + "Support adding custom themes": "Unterstütze das Hinzufügen von benutzerdefinierten Designs", + "Enable cross-signing to verify per-user instead of per-session": "Aktiviere Cross-Signing um pro Benutzer statt pro Sitzung zu verifizieren" } From 23b8dbe862a559893a4ab09d27980a5200840708 Mon Sep 17 00:00:00 2001 From: "@a2sc:matrix.org" Date: Fri, 17 Apr 2020 00:36:53 +0000 Subject: [PATCH 042/162] Translated using Weblate (German) Currently translated at 76.4% (1748 of 2289 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, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 2a7e1f2135..cd65386edd 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1809,5 +1809,7 @@ "Manually Verify by Text": "Verifiziere manuell mit einem Text", "Interactively verify by Emoji": "Verifiziere interaktiv mit Emojis", "Support adding custom themes": "Unterstütze das Hinzufügen von benutzerdefinierten Designs", - "Enable cross-signing to verify per-user instead of per-session": "Aktiviere Cross-Signing um pro Benutzer statt pro Sitzung zu verifizieren" + "Enable cross-signing to verify per-user instead of per-session": "Aktiviere Cross-Signing um pro Benutzer statt pro Sitzung zu verifizieren", + "Ask this user to verify their session, or manually verify it below.": "Bitte diese/n Nutzer!n, seine/ihre Sitzung zu verifizieren, oder verifiziere diese unten manuell.", + "Enable local event indexing and E2EE search (requires restart)": "Aktiviere lokale Ereignis-Indizierung und E2EE suche (erfordert Neustart)" } From 6fd504778440fd6f4e472e1de4eadf8cef8b0ccf Mon Sep 17 00:00:00 2001 From: Tentarial Date: Fri, 17 Apr 2020 00:38:26 +0000 Subject: [PATCH 043/162] Translated using Weblate (German) Currently translated at 76.4% (1748 of 2289 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index cd65386edd..28ae6b01ac 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1811,5 +1811,6 @@ "Support adding custom themes": "Unterstütze das Hinzufügen von benutzerdefinierten Designs", "Enable cross-signing to verify per-user instead of per-session": "Aktiviere Cross-Signing um pro Benutzer statt pro Sitzung zu verifizieren", "Ask this user to verify their session, or manually verify it below.": "Bitte diese/n Nutzer!n, seine/ihre Sitzung zu verifizieren, oder verifiziere diese unten manuell.", - "Enable local event indexing and E2EE search (requires restart)": "Aktiviere lokale Ereignis-Indizierung und E2EE suche (erfordert Neustart)" + "Enable local event indexing and E2EE search (requires restart)": "Aktiviere lokale Ereignis-Indizierung und E2EE suche (erfordert Neustart)", + "a few seconds from now": "in ein paar Sekunden" } From b56a80caf5e654f8ce81997ef8b0d978c186e60f Mon Sep 17 00:00:00 2001 From: Joshua Dietz Date: Fri, 17 Apr 2020 00:38:47 +0000 Subject: [PATCH 044/162] Translated using Weblate (German) Currently translated at 76.4% (1748 of 2289 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 28ae6b01ac..d908f88349 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1812,5 +1812,6 @@ "Enable cross-signing to verify per-user instead of per-session": "Aktiviere Cross-Signing um pro Benutzer statt pro Sitzung zu verifizieren", "Ask this user to verify their session, or manually verify it below.": "Bitte diese/n Nutzer!n, seine/ihre Sitzung zu verifizieren, oder verifiziere diese unten manuell.", "Enable local event indexing and E2EE search (requires restart)": "Aktiviere lokale Ereignis-Indizierung und E2EE suche (erfordert Neustart)", - "a few seconds from now": "in ein paar Sekunden" + "a few seconds from now": "in ein paar Sekunden", + "Show a presence dot next to DMs in the room list": "Verfügbarkeitspunkt neben den Direktnachrichten in der Raumliste anzeigen" } From e97138fdac9fa30c8f3ac292df4cd0bf7b3b120a Mon Sep 17 00:00:00 2001 From: aWeinzierl Date: Fri, 17 Apr 2020 00:41:04 +0000 Subject: [PATCH 045/162] Translated using Weblate (German) Currently translated at 76.4% (1749 of 2289 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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index d908f88349..35aa7ce851 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1811,7 +1811,7 @@ "Support adding custom themes": "Unterstütze das Hinzufügen von benutzerdefinierten Designs", "Enable cross-signing to verify per-user instead of per-session": "Aktiviere Cross-Signing um pro Benutzer statt pro Sitzung zu verifizieren", "Ask this user to verify their session, or manually verify it below.": "Bitte diese/n Nutzer!n, seine/ihre Sitzung zu verifizieren, oder verifiziere diese unten manuell.", - "Enable local event indexing and E2EE search (requires restart)": "Aktiviere lokale Ereignis-Indizierung und E2EE suche (erfordert Neustart)", + "Enable local event indexing and E2EE search (requires restart)": "Aktiviere lokale Ereignis-Indizierung und E2EE-Suche (erfordert Neustart)", "a few seconds from now": "in ein paar Sekunden", "Show a presence dot next to DMs in the room list": "Verfügbarkeitspunkt neben den Direktnachrichten in der Raumliste anzeigen" } From 49d92b873f760393874d5404053dcba9740e51e2 Mon Sep 17 00:00:00 2001 From: "@a2sc:matrix.org" Date: Fri, 17 Apr 2020 00:43:37 +0000 Subject: [PATCH 046/162] Translated using Weblate (German) Currently translated at 76.4% (1749 of 2289 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 35aa7ce851..b46c682fe0 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1813,5 +1813,6 @@ "Ask this user to verify their session, or manually verify it below.": "Bitte diese/n Nutzer!n, seine/ihre Sitzung zu verifizieren, oder verifiziere diese unten manuell.", "Enable local event indexing and E2EE search (requires restart)": "Aktiviere lokale Ereignis-Indizierung und E2EE-Suche (erfordert Neustart)", "a few seconds from now": "in ein paar Sekunden", - "Show a presence dot next to DMs in the room list": "Verfügbarkeitspunkt neben den Direktnachrichten in der Raumliste anzeigen" + "Show a presence dot next to DMs in the room list": "Verfügbarkeitspunkt neben den Direktnachrichten in der Raumliste anzeigen", + "Show padlocks on invite only rooms": "Vorhängeschlösser an Nur-Einladen-Räumen anzeigen" } From 11f5554af58da79c336a53d41cbce67afc53df47 Mon Sep 17 00:00:00 2001 From: aWeinzierl Date: Fri, 17 Apr 2020 00:43:42 +0000 Subject: [PATCH 047/162] Translated using Weblate (German) Currently translated at 76.8% (1757 of 2289 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 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index b46c682fe0..9307e5d459 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1814,5 +1814,10 @@ "Enable local event indexing and E2EE search (requires restart)": "Aktiviere lokale Ereignis-Indizierung und E2EE-Suche (erfordert Neustart)", "a few seconds from now": "in ein paar Sekunden", "Show a presence dot next to DMs in the room list": "Verfügbarkeitspunkt neben den Direktnachrichten in der Raumliste anzeigen", - "Show padlocks on invite only rooms": "Vorhängeschlösser an Nur-Einladen-Räumen anzeigen" + "Show padlocks on invite only rooms": "Zeige Schlösser an Räumen, welchen nur mit Einladung beigetreten werden kann", + "Keep recovery passphrase in memory for this session": "Behalte die Wiederherstellungspassphrase für diese Sitzung im Speicher", + "Manually verify all remote sessions": "Verifiziere alle Remotesitzungen", + "Confirm the emoji below are displayed on both sessions, in the same order:": "Bestätige, dass die unten angezeigten Emojis auf beiden Sitzungen in der selben Reihenfolge angezeigt werden:", + "Verify this session by confirming the following number appears on its screen.": "Verfiziere diese Sitzung, indem du bestätigst, dass die folgende Nummer auf ihrem Bildschirm erscheint.", + "Waiting for your other session, %(deviceName)s (%(deviceId)s), to verify…": "Warte auf deine andere Sitzung,%(deviceName)s /%(deviceId)s), um zu verfizieren…" } From 83ae60dd32fc0b53651db0d19e4eb59a3758166e Mon Sep 17 00:00:00 2001 From: "@a2sc:matrix.org" Date: Fri, 17 Apr 2020 00:45:30 +0000 Subject: [PATCH 048/162] Translated using Weblate (German) Currently translated at 76.8% (1757 of 2289 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 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 9307e5d459..2c07b81dff 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1819,5 +1819,8 @@ "Manually verify all remote sessions": "Verifiziere alle Remotesitzungen", "Confirm the emoji below are displayed on both sessions, in the same order:": "Bestätige, dass die unten angezeigten Emojis auf beiden Sitzungen in der selben Reihenfolge angezeigt werden:", "Verify this session by confirming the following number appears on its screen.": "Verfiziere diese Sitzung, indem du bestätigst, dass die folgende Nummer auf ihrem Bildschirm erscheint.", - "Waiting for your other session, %(deviceName)s (%(deviceId)s), to verify…": "Warte auf deine andere Sitzung,%(deviceName)s /%(deviceId)s), um zu verfizieren…" + "Waiting for your other session, %(deviceName)s (%(deviceId)s), to verify…": "Warte auf deine andere Sitzung,%(deviceName)s /%(deviceId)s), um zu verfizieren…", + "How fast should messages be downloaded.": "Wie schnell sollten Nachrichten heruntergeladen werden?", + "Compare a unique set of emoji if you don't have a camera on either device": "Vergleiche eine einmalige Reihe von Emoji, sofern du an keinem Gerät eine Kamera hast", + "Waiting for %(displayName)s to verify…": "Warte, dass %(displayName)s bestätigt…" } From b43947650d0268a95e42416e15aa4b0873512144 Mon Sep 17 00:00:00 2001 From: aWeinzierl Date: Fri, 17 Apr 2020 00:53:53 +0000 Subject: [PATCH 049/162] Translated using Weblate (German) Currently translated at 76.9% (1761 of 2289 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 2c07b81dff..9319a8aa9c 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1822,5 +1822,6 @@ "Waiting for your other session, %(deviceName)s (%(deviceId)s), to verify…": "Warte auf deine andere Sitzung,%(deviceName)s /%(deviceId)s), um zu verfizieren…", "How fast should messages be downloaded.": "Wie schnell sollten Nachrichten heruntergeladen werden?", "Compare a unique set of emoji if you don't have a camera on either device": "Vergleiche eine einmalige Reihe von Emoji, sofern du an keinem Gerät eine Kamera hast", - "Waiting for %(displayName)s to verify…": "Warte, dass %(displayName)s bestätigt…" + "Waiting for %(displayName)s to verify…": "Warte darauf, dass %(displayName)s bestätigt…", + "Cancelling…": "Abbrechen…" } From 1f69a86286f0be59a4c5d7de644d9be9beb20885 Mon Sep 17 00:00:00 2001 From: Tentarial Date: Fri, 17 Apr 2020 00:54:27 +0000 Subject: [PATCH 050/162] Translated using Weblate (German) Currently translated at 76.9% (1761 of 2289 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, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 9319a8aa9c..f64a0a86cb 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1823,5 +1823,7 @@ "How fast should messages be downloaded.": "Wie schnell sollten Nachrichten heruntergeladen werden?", "Compare a unique set of emoji if you don't have a camera on either device": "Vergleiche eine einmalige Reihe von Emoji, sofern du an keinem Gerät eine Kamera hast", "Waiting for %(displayName)s to verify…": "Warte darauf, dass %(displayName)s bestätigt…", - "Cancelling…": "Abbrechen…" + "Cancelling…": "Abbrechen…", + "They match": "Sie passen zueinander", + "They don't match": "Sie passen nicht zueinander" } From 5bcf383767b45f5fdbd4c4d21b821a50de1be129 Mon Sep 17 00:00:00 2001 From: "@a2sc:matrix.org" Date: Fri, 17 Apr 2020 00:54:55 +0000 Subject: [PATCH 051/162] Translated using Weblate (German) Currently translated at 76.9% (1761 of 2289 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index f64a0a86cb..82c75eca27 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1825,5 +1825,6 @@ "Waiting for %(displayName)s to verify…": "Warte darauf, dass %(displayName)s bestätigt…", "Cancelling…": "Abbrechen…", "They match": "Sie passen zueinander", - "They don't match": "Sie passen nicht zueinander" + "They don't match": "Sie passen nicht zueinander", + "To be secure, do this in person or use a trusted way to communicate.": "Um sicher zu gehen, tu dies persönlich oder verwende eine vertrauenswürdige Art der Kommunikation." } From 7a4442c52b3619107b46ab6cc95eb7dba354ef7b Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Fri, 17 Apr 2020 02:11:33 +0000 Subject: [PATCH 052/162] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (2289 of 2289 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 3e4b1ab097..5c0018c41b 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -2365,5 +2365,29 @@ "Use your other device to continue…": "使用您其他的裝置繼續……", "Syncing...": "正在同步……", "Signing In...": "正在登入……", - "If you've joined lots of rooms, this might take a while": "如果您已加入很多聊天室,這可能需要一點時間" + "If you've joined lots of rooms, this might take a while": "如果您已加入很多聊天室,這可能需要一點時間", + "If you cancel now, you won't complete your operation.": "如果您現在取消,您將無法完成您的操作。", + "Enable cross-signing to verify per-user instead of per-session": "啟用交叉簽章可以使用者為單位進行驗證,而非驗證每個工作階段", + "Keep recovery passphrase in memory for this session": "在此工作階段中將復原通關密語保留在記憶體中", + "Verify other session": "驗證其他工作階段", + "Unable to access secret storage. Please verify that you entered the correct recovery passphrase.": "無法存取秘密儲存空間。請驗證您是否輸入正確的復原通關密語。", + "Warning: You should only do this on a trusted computer.": "警告:您應該只在信任的電腦上做這件事。", + "Access your secure message history and your cross-signing identity for verifying other sessions by entering your recovery passphrase.": "透過輸入您的復原通關密語存取您的安全訊息歷史與您的交叉簽章身份來驗證其他工作階段。", + "If you've forgotten your recovery passphrase you can use your recovery key or set up new recovery options.": "如果您忘記您的復原通關密語,您可以使用您的復原金鑰設定新的復原選項。", + "Backup could not be decrypted with this recovery key: please verify that you entered the correct recovery key.": "備份無法使用此復原金鑰解密:請驗證您是否輸入正確的復原金鑰。", + "Backup could not be decrypted with this recovery passphrase: please verify that you entered the correct recovery passphrase.": "備份無法使用此復原通關密語解密:請驗證您是否輸入正確的復原通關密語。", + "If you can’t access one, ": "如果您無法存取,", + "Great! This recovery passphrase looks strong enough.": "很好!這個復原通關密語看起來夠強。", + "Set a recovery passphrase to secure encrypted information and recover it if you log out. This should be different to your account password:": "設定復原通關密語以保護您的加密資訊並在您登出時復原它。且應該要與您的帳號密碼不同:", + "Enter a recovery passphrase": "輸入復原通關密語", + "Back up encrypted message keys": "備份加密訊息金鑰", + "Enter your recovery passphrase a second time to confirm it.": "再次輸入您的復原通關密語以確認。", + "Confirm your recovery passphrase": "確認您的復原通關密語", + "Your recovery key is a safety net - you can use it to restore access to your encrypted messages if you forget your recovery passphrase.": "您的復原金鑰是安全網 - 如果您忘記您的復原通關密語的話,您可以用它來恢復您對加密訊息的存取權。", + "Confirm recovery passphrase": "確認復原通關密語", + "We'll store an encrypted copy of your keys on our server. Secure your backup with a recovery passphrase.": "我們將會在我們的伺服器上儲存一份您金鑰的加密副本。使用復原通關密語以保護您的備份。", + "Enter a recovery passphrase...": "輸入復原通關密語……", + "Please enter your recovery passphrase a second time to confirm.": "請再次輸入您的復原通關密語以確認。", + "Repeat your recovery passphrase...": "再次輸入您的復原通關密語……", + "Secure your backup with a recovery passphrase": "使用復原通關密語保護您的備份" } From df3eef1f70068c197d518bc095666f5bf2e7030d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98jvind=20Fritjof=20Arnfred?= Date: Thu, 16 Apr 2020 20:33:04 +0000 Subject: [PATCH 053/162] Translated using Weblate (Danish) Currently translated at 23.9% (547 of 2289 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/da/ --- src/i18n/strings/da.json | 74 ++++++++++++++++++++++++++++------------ 1 file changed, 52 insertions(+), 22 deletions(-) diff --git a/src/i18n/strings/da.json b/src/i18n/strings/da.json index 23fce8067e..8ae6c52b0d 100644 --- a/src/i18n/strings/da.json +++ b/src/i18n/strings/da.json @@ -31,10 +31,10 @@ "Bans user with given id": "Forbyder bruger med givet id", "Deops user with given id": "Fjerner OP af bruger med givet id", "Invites user with given id to current room": "Inviterer bruger med givet id til nuværende rum", - "Joins room with given alias": "Kommer ind i rum med givet alias", - "Kicks user with given id": "Smid bruger med givet id ud", - "Changes your display nickname": "Ændrer dit visningsnavn", - "Searches DuckDuckGo for results": "Søger DuckDuckGo for resultater", + "Joins room with given alias": "Deltager i rum med givet alias", + "Kicks user with given id": "Smider bruger med givet id ud", + "Changes your display nickname": "Ændrer dit viste navn", + "Searches DuckDuckGo for results": "Søger på DuckDuckGo efter resultater", "Commands": "kommandoer", "Emoji": "Emoji", "Sign in": "Log ind", @@ -125,7 +125,7 @@ "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s", "Who would you like to add to this community?": "Hvem vil du tilføje til dette fællesskab?", "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Advarsel: alle personer du tilføjer til et fællesskab vil være synlige for alle der kender Fællesskabs ID'et", - "Invite new community members": "Inviter nye fællesskabsmedlemmer", + "Invite new community members": "Inviter nye medlemmer til fællesskabet", "Invite to Community": "Inviter til Fællesskab", "Which rooms would you like to add to this community?": "Hvilke rum vil du tilføje til dette fællesskab?", "Show these rooms to non-members on the community page and room list?": "Vis disse rum til ikke-medlemmer på fællesskabssiden og rumlisten?", @@ -136,11 +136,11 @@ "Failed to invite users to community": "Kunne ikke invitere brugere til fællesskab", "Failed to invite users to %(groupId)s": "Kunne ikke invitere brugere til %(groupId)s", "Failed to add the following rooms to %(groupId)s:": "Kunne ikke tilføje de følgende rum til %(groupId)s:", - "Riot does not have permission to send you notifications - please check your browser settings": "Riot har ikke tilladelse til at sende dig notifikationer - tjek venligst dine browser indstillinger", - "Riot was not given permission to send notifications - please try again": "Riot fik ikke tilladelse til at sende notifikationer - prøv igen", + "Riot does not have permission to send you notifications - please check your browser settings": "Riot har ikke tilladelse til at sende dig notifikationer - tjek venligst dine browserindstillinger", + "Riot was not given permission to send notifications - please try again": "Riot fik ikke tilladelse til at sende notifikationer - Vær sød at prøve igen", "Unable to enable Notifications": "Kunne ikke slå Notifikationer til", "This email address was not found": "Denne emailadresse blev ikke fundet", - "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Din emailadresse lader ikke til at være tilknyttet en Matrix ID på denne Homeserver.", + "Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Din emailadresse lader ikke til at være tilknyttet et Matrix ID på denne Homeserver.", "Restricted": "Begrænset", "Moderator": "Moderator", "Start a chat": "Start en chat", @@ -160,12 +160,12 @@ "Missing user_id in request": "Manglende user_id i forespørgsel", "Usage": "Brug", "/ddg is not a command": "/ddg er ikke en kommando", - "To use it, just wait for autocomplete results to load and tab through them.": "For at bruge det skal du bare vente på at autocomplete resultaterne indlæses og bruge Tab for at bladre igennem dem.", + "To use it, just wait for autocomplete results to load and tab through them.": "For at bruge det skal du bare vente på at autocomplete resultaterne indlæses, og så bruge Tab for at bladre igennem dem.", "Unrecognised room alias:": "Ugenkendt rum alias:", "Ignored user": "Ignoreret bruger", - "You are now ignoring %(userId)s": "Du ignorere nu %(userId)s", + "You are now ignoring %(userId)s": "Du ignorerer nu %(userId)s", "Unignored user": "Holdt op med at ignorere bruger", - "You are no longer ignoring %(userId)s": "Du ignorer ikke længere %(userId)s", + "You are no longer ignoring %(userId)s": "Du ignorerer ikke længere %(userId)s", "Verified key": "Verificeret nøgle", "Reason": "Årsag", "%(senderName)s requested a VoIP conference.": "%(senderName)s forespurgte en VoIP konference.", @@ -361,8 +361,8 @@ "Call in Progress": "Igangværende opkald", "A call is currently being placed!": "Et opkald er allerede ved at blive oprettet!", "A call is already in progress!": "Et opkald er allerede i gang!", - "Permission Required": "Rettighed påkrævet", - "You do not have permission to start a conference call in this room": "Du har ikke rettigheden til at starte et gruppekald i dette rum", + "Permission Required": "Tilladelse påkrævet", + "You do not have permission to start a conference call in this room": "Du har ikke rettighed til at starte et gruppekald i dette rum", "Replying With Files": "Svare med filer", "At this time it is not possible to reply with a file. Would you like to upload this file without replying?": "I øjeblikket er det ikke muligt at svare med en fil. Vil du uploade filen uden at svare?", "The file '%(fileName)s' failed to upload.": "Filen '%(fileName)s' kunne ikke uploades.", @@ -383,13 +383,13 @@ "Actions": "Handlinger", "Other": "Andre", "Prepends ¯\\_(ツ)_/¯ to a plain-text message": "Tilføjer ¯\\_(ツ)_/¯ i starten af beskeder i ren tekst", - "Sends a message as plain text, without interpreting it as markdown": "Sender en besked som ren tekst, uden at fortolke den som Markdown", + "Sends a message as plain text, without interpreting it as markdown": "Sender en besked som ren tekst, uden at fortolke den som markdown", "Upgrades a room to a new version": "Opgraderer et rum til en ny version", "You do not have the required permissions to use this command.": "Du har ikke de nødvendige rettigheder for at udføre denne kommando.", "Warning: Upgrading a room will not automatically migrate room members to the new version of the room. We'll post a link to the new room in the old version of the room - room members will have to click this link to join the new room.": "Advarsel: Opgradering af et rum flytter ikke automatisk rummets medlemmer til den nye version af rummet. Vi sender et link til den nye version i den gamle version af rummet - rummets medlemmer må klikke på dette link for at tilgå det nye rum.", - "Changes your display nickname in the current room only": "Ændrer dit viste navn kun for det nuværende rum", - "Changes the avatar of the current room": "Ændrer avataren af det nuværende rum", - "Changes your avatar in this current room only": "Ændrer din avatar kun for det nuværende rum", + "Changes your display nickname in the current room only": "Ændrer kun dit viste navn for det nuværende rum", + "Changes the avatar of the current room": "Ændrer avataren i det nuværende rum", + "Changes your avatar in this current room only": "Ændrer kun din avatar for det nuværende rum", "Changes your avatar in all rooms": "Ændrer din avatar i alle rum", "Gets or sets the room topic": "Henter eller sætter rummets emne", "This room has no topic.": "Dette rum har intet emne.", @@ -401,10 +401,10 @@ "Unbans user with given ID": "Fjerner ban fra brugeren med det oplyste ID", "Ignores a user, hiding their messages from you": "Ignorerer en bruger og skjuler dennes beskeder fra dig", "Stops ignoring a user, showing their messages going forward": "Stopper med at ignorere en bruger og viser deres beskeder igen fra nu af", - "Define the power level of a user": "Indstiller rettighedsniveau for en bruger", - "Opens the Developer Tools dialog": "Åbner dialogen med udviklingsværktøjer", - "Adds a custom widget by URL to the room": "Tilføjer en widget til rummet vha. URL", - "Please supply a https:// or http:// widget URL": "Oplys en https:// eller http:// widget URL", + "Define the power level of a user": "Indstil rettighedsniveau for en bruger", + "Opens the Developer Tools dialog": "Åbner dialogen med udviklerværktøjer", + "Adds a custom widget by URL to the room": "Tilføjer en widget til rummet ved hjælp af URL", + "Please supply a https:// or http:// widget URL": "Oplys venligst en https:// eller http:// widget URL", "You cannot modify widgets in this room.": "Du kan ikke ændre widgets i dette rum.", "Forces the current outbound group session in an encrypted room to be discarded": "Tvinger den nuværende udgående gruppe-session i et krypteret rum til at blive kasseret", "Sends the given message coloured as a rainbow": "Sender beskeden med regnbuefarver", @@ -531,5 +531,35 @@ "Click the button below to confirm adding this phone number.": "Klik på knappen herunder for at bekræfte tilføjelsen af dette telefonnummer.", "Whether you're using Riot as an installed Progressive Web App": "Om du anvender Riot som en installeret Progressiv Web App", "The information being sent to us to help make Riot better includes:": "Informationen der sendes til os for at hjælpe os med at gøre Riot bedre inkluderer:", - "There are unknown sessions in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "Der er ukendte sessions i dette rum: Hvis du fortsætter uden at verificere dem, vil det være muligt for andre at smuglytte til dit opkald." + "There are unknown sessions in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "Der er ukendte sessions i dette rum: Hvis du fortsætter uden at verificere dem, vil det være muligt for andre at smuglytte til dit opkald.", + "Review Sessions": "Overse sessions", + "If you cancel now, you won't complete verifying the other user.": "Hvis du annullerer du, vil du ikke have færdiggjort verifikationen af den anden bruger.", + "If you cancel now, you won't complete verifying your other session.": "Hvis du annullerer nu, vil du ikke have færdiggjort verifikationen af din anden session.", + "If you cancel now, you won't complete your operation.": "Hvis du annullerer nu, vil du ikke færdiggøre din operation.", + "Cancel entering passphrase?": "Annuller indtastning af kodeord?", + "Enter passphrase": "Indtast kodeord", + "Setting up keys": "Sætter nøgler op", + "Verify this session": "Verificér denne session", + "Encryption upgrade available": "Opgradering af kryptering tilgængelig", + "Set up encryption": "Opsæt kryptering", + "Unverified login. Was this you?": "Ikke-verificeret login. Var det dig?", + "Identity server has no terms of service": "Identity serveren har ingen terms of service", + "This action requires accessing the default identity server to validate an email address or phone number, but the server does not have any terms of service.": "Denne handling kræver adgang til default identitets serveren for at validere en email adresse eller et telefonnummer, men serveren har ingen terms of service.", + "Only continue if you trust the owner of the server.": "Fortsæt kun hvis du stoler på ejeren af denne server.", + "Trust": "Tillid", + "%(name)s is requesting verification": "%(name)s beder om verifikation", + "Sign In or Create Account": "Log ind eller Opret bruger", + "Use your account or create a new one to continue.": "Brug din konto eller opret en ny for at fortsætte.", + "Create Account": "Opret brugerkonto", + "Sign In": "Log ind", + "Custom (%(level)s)": "Kustomiseret %(level)s", + "Sends a message as html, without interpreting it as markdown": "Sender besked som html, uden at tolke den som markdown", + "Error upgrading room": "Fejl under opgradering af rum", + "Double check that your server supports the room version chosen and try again.": "Dobbelt-tjek at din server understøtter den valgte rum-version og forsøg igen.", + "Failed to set topic": "Fejlede i at sætte emne", + "Command failed": "Kommando fejlede", + "Could not find user in room": "Kunne ikke finde bruger i rum", + "Verifies a user, session, and pubkey tuple": "Verificerer en bruger, session og pubkey tuple", + "Unknown (user, session) pair:": "Ukendt (bruger, session) par:", + "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and session %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "ADVARSEL: NØGLEVERIFIKATIONEN FEJLEDE! Underskriftsnøglen for %(userId)s og session %(deviceId)s er %(fprint)s som ikke matcher den supplerede nøgle \"%(fingerprint)s\". Dette kunne betyde at jeres kommunikation er infiltreret!" } From 15149cf4e12034639f1f0a4dc72be1413ce16547 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 16 Apr 2020 21:33:25 +0000 Subject: [PATCH 054/162] Translated using Weblate (Danish) Currently translated at 23.9% (547 of 2289 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/da/ --- src/i18n/strings/da.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/da.json b/src/i18n/strings/da.json index 8ae6c52b0d..8fda1ddee9 100644 --- a/src/i18n/strings/da.json +++ b/src/i18n/strings/da.json @@ -561,5 +561,7 @@ "Could not find user in room": "Kunne ikke finde bruger i rum", "Verifies a user, session, and pubkey tuple": "Verificerer en bruger, session og pubkey tuple", "Unknown (user, session) pair:": "Ukendt (bruger, session) par:", - "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and session %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "ADVARSEL: NØGLEVERIFIKATIONEN FEJLEDE! Underskriftsnøglen for %(userId)s og session %(deviceId)s er %(fprint)s som ikke matcher den supplerede nøgle \"%(fingerprint)s\". Dette kunne betyde at jeres kommunikation er infiltreret!" + "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and session %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "ADVARSEL: NØGLEVERIFIKATIONEN FEJLEDE! Underskriftsnøglen for %(userId)s og session %(deviceId)s er %(fprint)s som ikke matcher den supplerede nøgle \"%(fingerprint)s\". Dette kunne betyde at jeres kommunikation er infiltreret!", + "Session already verified!": "Sessionen er allerede verificeret!", + "WARNING: Session already verified, but keys do NOT MATCH!": "ADVARSEL: Sessionen er allerede verificeret, men nøglerne MATCHER IKKE." } From e176aa15ad2d8ac783430813218c771f807a5caf Mon Sep 17 00:00:00 2001 From: aWeinzierl Date: Fri, 17 Apr 2020 00:56:10 +0000 Subject: [PATCH 055/162] Translated using Weblate (German) Currently translated at 77.2% (1767 of 2289 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 82c75eca27..d8ccd28fde 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1826,5 +1826,6 @@ "Cancelling…": "Abbrechen…", "They match": "Sie passen zueinander", "They don't match": "Sie passen nicht zueinander", - "To be secure, do this in person or use a trusted way to communicate.": "Um sicher zu gehen, tu dies persönlich oder verwende eine vertrauenswürdige Art der Kommunikation." + "To be secure, do this in person or use a trusted way to communicate.": "Um sicher zu gehen, mache dies persönlich oder verwende eine vertrauenswürdige Art der Kommunikation.", + "Verify yourself & others to keep your chats safe": "Verifiziere dich & andere, um eure Chats zu schützen" } From f2f2f96531cda8f2f0be6d0ad6a755edd34cd104 Mon Sep 17 00:00:00 2001 From: "@a2sc:matrix.org" Date: Fri, 17 Apr 2020 01:01:31 +0000 Subject: [PATCH 056/162] Translated using Weblate (German) Currently translated at 77.2% (1767 of 2289 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 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index d8ccd28fde..87d56f915d 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1827,5 +1827,10 @@ "They match": "Sie passen zueinander", "They don't match": "Sie passen nicht zueinander", "To be secure, do this in person or use a trusted way to communicate.": "Um sicher zu gehen, mache dies persönlich oder verwende eine vertrauenswürdige Art der Kommunikation.", - "Verify yourself & others to keep your chats safe": "Verifiziere dich & andere, um eure Chats zu schützen" + "Verify yourself & others to keep your chats safe": "Verifiziere dich & andere, um eure Chats zu schützen", + "This bridge was provisioned by .": "Diese Brücke wurde von bereitgestellt.", + "This bridge is managed by .": "Diese Brücke wird von verwaltet.", + "Workspace: %(networkName)s": "Arbeitsbereich: %(networkName)s", + "Channel: %(channelName)s": "Kanal: %(channelName)s", + "Show less": "Weniger zeigen" } From 304eb18fd641cd59b50335d9af4136aba43cb327 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Fri, 17 Apr 2020 07:14:05 +0000 Subject: [PATCH 057/162] Translated using Weblate (French) Currently translated at 100.0% (2289 of 2289 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 | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index b4e7557dbf..882fd7b663 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -2366,5 +2366,29 @@ "Use your other device to continue…": "Utilisez votre autre appareil pour continuer…", "Syncing...": "Synchronisation…", "Signing In...": "Authentification…", - "If you've joined lots of rooms, this might take a while": "Si vous avez rejoint beaucoup de salons, cela peut prendre du temps" + "If you've joined lots of rooms, this might take a while": "Si vous avez rejoint beaucoup de salons, cela peut prendre du temps", + "If you cancel now, you won't complete your operation.": "Si vous annulez maintenant, vous ne pourrez par terminer votre opération.", + "Enable cross-signing to verify per-user instead of per-session": "Activez la signature croisée pour vérifier par utilisateur plutôt que par session", + "Keep recovery passphrase in memory for this session": "Conserver la phrase secrète de récupération en mémoire pour cette session", + "Verify other session": "Vérifier une autre session", + "Unable to access secret storage. Please verify that you entered the correct recovery passphrase.": "Impossible d’accéder au coffre secret. Vérifiez que vous avez renseigné la bonne phrase secrète de récupération.", + "Warning: You should only do this on a trusted computer.": "Attention : Vous devriez faire cela depuis un ordinateur fiable.", + "Access your secure message history and your cross-signing identity for verifying other sessions by entering your recovery passphrase.": "Accédez à l’historique des messages sécurisés et à votre identité de signature croisée en vérifiant d’autres sessions en renseignant votre phrase secrète de récupération.", + "If you've forgotten your recovery passphrase you can use your recovery key or set up new recovery options.": "Si vous avez oublié votre phrase secrète de récupération, vous pouvez utiliser votre clé de récupération ou définir de nouvelles options de récupération.", + "Backup could not be decrypted with this recovery key: please verify that you entered the correct recovery key.": "La sauvegarde n’a pas pu être déchiffrée avec cette clé de récupération : vérifiez que vous avez renseigné la bonne clé de récupération.", + "Backup could not be decrypted with this recovery passphrase: please verify that you entered the correct recovery passphrase.": "La sauvegarde n’a pas pu être déchiffrée avec cette phrase secrète de récupération : vérifiez que vous avez renseigné la bonne phrase secrète de récupération.", + "If you can’t access one, ": "Si vous ne pouvez pas, ", + "Great! This recovery passphrase looks strong enough.": "Super ! Cette phrase secrète de récupération a l’air suffisamment robuste.", + "Set a recovery passphrase to secure encrypted information and recover it if you log out. This should be different to your account password:": "Définissez une phrase secrète de récupération pour sécuriser les informations chiffrées et les récupérer si vous vous déconnectez. Elle devrait être différente du mot de passe de votre compte :", + "Enter a recovery passphrase": "Saisir une phrase secrète de récupération", + "Back up encrypted message keys": "Sauvegarder les clés des messages chiffrés", + "Enter your recovery passphrase a second time to confirm it.": "Saisissez à nouveau votre phrase secrète de récupération pour la confirmer.", + "Confirm your recovery passphrase": "Confirmer votre phrase secrète de récupération", + "Your recovery key is a safety net - you can use it to restore access to your encrypted messages if you forget your recovery passphrase.": "Votre clé de récupération est un filet de sécurité : vous pouvez l’utiliser pour récupérer l’accès à vos messages chiffrés si vous oubliez votre phrase secrète de récupération.", + "Confirm recovery passphrase": "Confirmer la phrase secrète de récupération", + "We'll store an encrypted copy of your keys on our server. Secure your backup with a recovery passphrase.": "Nous conserverons une copie chiffrée de vos clés sur notre serveur. Protégez votre sauvegarde avec une phrase secrète de récupération.", + "Enter a recovery passphrase...": "Saisir une phrase secrète de récupération…", + "Please enter your recovery passphrase a second time to confirm.": "Saisissez à nouveau votre phrase secrète de récupération pour la confirmer.", + "Repeat your recovery passphrase...": "Répéter votre phrase secrète de récupération…", + "Secure your backup with a recovery passphrase": "Protégez votre sauvegarde avec une phrase secrète de récupération" } From 249daf3f9a640ab08028e3716607afab280503ab Mon Sep 17 00:00:00 2001 From: rkfg Date: Fri, 17 Apr 2020 07:23:33 +0000 Subject: [PATCH 058/162] Translated using Weblate (Russian) Currently translated at 89.7% (2053 of 2289 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 | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 05ae816c88..6bc1a0b53e 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -737,7 +737,7 @@ "Changelog": "История изменений", "Waiting for response from server": "Ожидание ответа от сервера", "Uploaded on %(date)s by %(user)s": "Загружено %(user)s в %(date)s", - "Send Custom Event": "Отправить индивидуальное мероприятие", + "Send Custom Event": "Отправить произвольное событие", "Advanced notification settings": "Дополнительные параметры уведомлений", "Failed to send logs: ": "Не удалось отправить журналы: ", "delete the alias.": "удалить псевдоним.", @@ -759,7 +759,7 @@ "Please set a password!": "Пожалуйста, установите пароль!", "You have successfully set a password!": "Вы успешно установили пароль!", "An error occurred whilst saving your email notification preferences.": "Возникла ошибка при сохранении настроек email-уведомлений.", - "Explore Room State": "Просмотр статуса комнаты", + "Explore Room State": "Просмотр состояния комнаты", "Source URL": "Исходная ссылка", "Messages sent by bot": "Сообщения от ботов", "Filter results": "Фильтрация результатов", @@ -802,7 +802,7 @@ "Call invitation": "Звонки", "Downloading update...": "Загрузка обновления…", "State Key": "Ключ состояния", - "Failed to send custom event.": "Не удалось отправить индивидуальное мероприятие.", + "Failed to send custom event.": "Не удалось отправить произвольное событие.", "What's new?": "Что нового?", "Notify me for anything else": "Уведомлять во всех остальных случаях", "When I'm invited to a room": "Приглашения в комнаты", @@ -840,7 +840,7 @@ "Pin Message": "Закрепить сообщение", "Failed to change settings": "Не удалось изменить настройки", "View Community": "Просмотр сообщества", - "Event sent!": "Мероприятие отправлено!", + "Event sent!": "Событие отправлено!", "Event Content": "Содержание мероприятия", "Thank you!": "Спасибо!", "Quote": "Цитата", @@ -862,7 +862,7 @@ "Clearing your browser's storage may fix the problem, but will sign you out and cause any encrypted chat history to become unreadable.": "Очистка хранилища вашего браузера может устранить проблему, но при этом ваша сессия будет завершена, и зашифрованная история чата станет нечитаемой.", "Unable to load event that was replied to, it either does not exist or you do not have permission to view it.": "Не удается загрузить событие, на которое был дан ответ. Либо оно не существует, либо у вас нет разрешения на его просмотр.", "Enable widget screenshots on supported widgets": "Включить скриншоты виджетов для поддерживаемых виджетов", - "Collapse Reply Thread": "Ответить с цитированием", + "Collapse Reply Thread": "Свернуть ответы", "Send analytics data": "Отправить данные аналитики", "Muted Users": "Приглушённые пользователи", "Terms and Conditions": "Условия и положения", @@ -924,7 +924,7 @@ "Failed to invite users to the room:": "Не удалось пригласить пользователей в комнату:", "Upgrades a room to a new version": "Модернизирует комнату до новой версии", "Sets the room name": "Устанавливает название комнаты", - "Forces the current outbound group session in an encrypted room to be discarded": "Принудительно отбрасывает текущую сессию исходящей группы в зашифрованной комнате", + "Forces the current outbound group session in an encrypted room to be discarded": "Принудительно отбрасывает текущую групповую сессию для отправки сообщений в зашифрованную комнату", "%(senderDisplayName)s upgraded this room.": "%(senderDisplayName)s модернизировал эту комнату.", "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|other": "%(senderName)s добавил %(addedAddresses)s к списку адресов комнаты.", "%(senderName)s added %(count)s %(addedAddresses)s as addresses for this room.|one": "%(senderName)s добавил %(addedAddresses)s к списку адресов комнаты.", @@ -1111,7 +1111,7 @@ "Copy it to your personal cloud storage": "Скопируйте в персональное облачное хранилище", "Save it on a USB key or backup drive": "Сохраните на USB-диске или на резервном диске", "This room has no topic.": "У этой комнаты нет темы.", - "Group & filter rooms by custom tags (refresh to apply changes)": "Группировать и фильтровать комнаты по пользовательским тэгам (обновите, чтобы применить изменения)", + "Group & filter rooms by custom tags (refresh to apply changes)": "Группировать и фильтровать комнаты по пользовательским тэгам (обновите для применения изменений)", "Dog": "Собака", "Cat": "Кошка", "Lion": "Лев", @@ -1409,7 +1409,7 @@ "Create your Matrix account on ": "Создайте учётную запись Matrix на ", "Join millions for free on the largest public server": "Присоединяйтесь бесплатно к миллионам на крупнейшем общедоступном сервере", "Premium hosting for organisations Learn more": "Премиум-хостинг для организаций Подробнее", - "Find other public servers or use a custom server": "Найти другие общедоступные серверы или использовать пользовательский сервер", + "Find other public servers or use a custom server": "Найти другие общедоступные серверы или использовать другой сервер", "Please install Chrome, Firefox, or Safari for the best experience.": "Пожалуйста, установите Chrome, Firefox или Safari для наилучшего результата.", "Couldn't load page": "Невозможно загрузить страницу", "You are an administrator of this community. You will not be able to rejoin without an invite from another administrator.": "Вы являетесь администратором этого сообщества. Вы не сможете вернуться без приглашения от другого администратора.", @@ -1668,8 +1668,8 @@ "Missing captcha public key in homeserver configuration. Please report this to your homeserver administrator.": "Отсутствует Капча открытого ключа в конфигурации домашнего сервера. Пожалуйста, сообщите об этом администратору вашего домашнего сервера.", "Set an email for account recovery. Use email or phone to optionally be discoverable by existing contacts.": "Задайте адрес электронной почты для восстановления учетной записи. Чтобы знакомые могли вас найти, задайте адрес почты или номер телефона.", "Set an email for account recovery. Use email to optionally be discoverable by existing contacts.": "Задайте адрес электронной почты для восстановления учетной записи. Чтобы знакомые могли вас найти, задайте адрес почты.", - "Enter your custom homeserver URL What does this mean?": "Введите URL-адрес вашего собственного домашнего сервера Что это значит? ", - "Enter your custom identity server URL What does this mean?": "Введите URL-адрес вашего собственного сервера идентификации Что это значит?", + "Enter your custom homeserver URL What does this mean?": "Введите ссылку на другой домашний сервер Что это значит?", + "Enter your custom identity server URL What does this mean?": "Введите ссылку на другой сервер идентификации Что это значит?", "%(creator)s created and configured the room.": "%(creator)s создал и настроил комнату.", "Preview": "Заглянуть", "View": "Просмотр", @@ -2106,5 +2106,6 @@ "Backup key stored: ": "Резервная копия ключа сохранена: ", "Command failed": "Не удалось выполнить команду", "To report a Matrix-related security issue, please read the Matrix.org Security Disclosure Policy.": "Чтобы сообщить о проблеме безопасности Matrix, пожалуйста, прочитайте Политику раскрытия информации Matrix.org.", - "Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "Установить адрес этой комнаты, чтобы пользователи могли найти ее на вашем сервере (%(localDomain)s)" + "Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "Установить адрес этой комнаты, чтобы пользователи могли найти ее на вашем сервере (%(localDomain)s)", + "Start a conversation with someone using their name, username (like ) or email address.": "Начните диалог с кем-нибудь по его имени, имени пользователя (например, ) или адресу почты." } From 22094f4a78d91383363ce8145847dd11733020af Mon Sep 17 00:00:00 2001 From: Karol Kosek Date: Fri, 17 Apr 2020 12:03:18 +0000 Subject: [PATCH 059/162] Translated using Weblate (Polish) Currently translated at 65.9% (1508 of 2289 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/pl/ --- src/i18n/strings/pl.json | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/pl.json b/src/i18n/strings/pl.json index 183bce6007..2db9cd3ae2 100644 --- a/src/i18n/strings/pl.json +++ b/src/i18n/strings/pl.json @@ -1507,5 +1507,32 @@ "Direct message": "Wiadomość bezpośrednia", "Security": "Bezpieczeństwo", "Integrations are disabled": "Integracje są wyłączone", - "Enable 'Manage Integrations' in Settings to do this.": "Włącz „Zarządzaj integracjami” w ustawieniach, aby to zrobić." + "Enable 'Manage Integrations' in Settings to do this.": "Włącz „Zarządzaj integracjami” w ustawieniach, aby to zrobić.", + "Encryption upgrade available": "Dostępna aktualizacja szyfrowania", + "Upgrade": "Uaktualnij", + "Delete sessions|other": "Usuń sesje", + "Delete %(count)s sessions|one": "Usuń %(count)s sesję", + "Manage": "Zarządzaj", + "Enable": "Włącz", + "Session ID:": "Identyfikator sesji", + "Session key:": "Klucz sesji:", + "Accept all %(invitedRooms)s invites": "Zaakceptuj wszystkie zaproszenia do %(invitedRooms)s", + "Invite only": "Tylko dla zaproszonych", + "Close preview": "Zamknij podgląd", + "Send a reply…": "Wyślij odpowiedź…", + "Send a message…": "Wyślij wiadomość", + "Verified": "Zweryfikowano", + "Cancel search": "Anuluj wyszukiwanie", + "Your theme": "Twój motyw", + "More options": "Więcej opcji", + "Invite anyway": "Zaproś mimo to", + "Notes": "Notatki", + "Session name": "Nazwa sesji", + "Session key": "Klucz sesji", + "Go": "Przejdź", + "Your account is not secure": "Twoje konto nie jest bezpieczne", + "New session": "Nowa sesja", + "Deny": "Zabroń", + "Email (optional)": "Adres e-mail (opcjonalnie)", + "Guest": "Gość" } From c1b7d81f009e9ab70221f06ccd8e02d5085699d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98jvind=20Fritjof=20Arnfred?= Date: Fri, 17 Apr 2020 12:14:47 +0000 Subject: [PATCH 060/162] Translated using Weblate (Danish) Currently translated at 24.1% (552 of 2289 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/da/ --- src/i18n/strings/da.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/da.json b/src/i18n/strings/da.json index 8fda1ddee9..ebd63abc63 100644 --- a/src/i18n/strings/da.json +++ b/src/i18n/strings/da.json @@ -563,5 +563,10 @@ "Unknown (user, session) pair:": "Ukendt (bruger, session) par:", "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and session %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "ADVARSEL: NØGLEVERIFIKATIONEN FEJLEDE! Underskriftsnøglen for %(userId)s og session %(deviceId)s er %(fprint)s som ikke matcher den supplerede nøgle \"%(fingerprint)s\". Dette kunne betyde at jeres kommunikation er infiltreret!", "Session already verified!": "Sessionen er allerede verificeret!", - "WARNING: Session already verified, but keys do NOT MATCH!": "ADVARSEL: Sessionen er allerede verificeret, men nøglerne MATCHER IKKE." + "WARNING: Session already verified, but keys do NOT MATCH!": "ADVARSEL: Sessionen er allerede verificeret, men nøglerne MATCHER IKKE.", + "The signing key you provided matches the signing key you received from %(userId)s's session %(deviceId)s. Session marked as verified.": "", + "Displays information about a user": "Viser information om en bruger", + "%(senderDisplayName)s changed the room name from %(oldRoomName)s to %(newRoomName)s.": "%(senderDisplayName)s ændrede rumnavnet fra %(oldRoomName)s til %(newRoomName)s.", + "%(senderName)s added the alternative addresses %(addresses)s for this room.|other": "%(senderName)s tilføjede de alternative adresser %(addresses)s til dette rum.", + "%(senderName)s added the alternative addresses %(addresses)s for this room.|one": "%(senderName)s tilføjede alternative adresser %(addresses)s til dette rum." } From a55c4dab6a780ae23cce50a54998bd66bed8a203 Mon Sep 17 00:00:00 2001 From: rkfg Date: Fri, 17 Apr 2020 12:33:59 +0000 Subject: [PATCH 061/162] Translated using Weblate (Russian) Currently translated at 89.6% (2052 of 2289 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 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 6bc1a0b53e..4a0d819287 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -6,7 +6,7 @@ "A new password must be entered.": "Введите новый пароль.", "Anyone who knows the room's link, apart from guests": "Все, у кого есть ссылка на эту комнату, кроме гостей", "Anyone who knows the room's link, including guests": "Все, у кого есть ссылка на эту комнату, включая гостей", - "Are you sure you want to reject the invitation?": "Вы уверены что вы хотите отклонить приглашение?", + "Are you sure you want to reject the invitation?": "Вы уверены что хотите отклонить приглашение?", "Banned users": "Заблокированные пользователи", "Bans user with given id": "Блокирует пользователя с заданным ID", "Blacklisted": "В черном списке", @@ -1288,7 +1288,7 @@ "Try to join anyway": "Постарайся присоединиться в любом случае", "Do you want to chat with %(user)s?": "Хотите пообщаться с %(user)s?", "Do you want to join %(roomName)s?": "Хотите присоединиться к %(roomName)s?", - " invited you": " пригласил тебя", + " invited you": " приглашает вас", "You're previewing %(roomName)s. Want to join it?": "Вы просматриваете %(roomName)s. Хотите присоединиться?", "%(roomName)s can't be previewed. Do you want to join it?": "%(roomName)s не может быть предварительно просмотрена. Вы хотите присоединиться к ней?", "This room doesn't exist. Are you sure you're at the right place?": "Эта комната не существует. Вы уверены, что находитесь в правильном месте?", @@ -1992,7 +1992,7 @@ "Send a message…": "Отправить сообщение…", " wants to chat": " хочет поговорить", "Start chatting": "Начать беседу", - "Reject & Ignore user": "Отклонить и заигнорить пользователя", + "Reject & Ignore user": "Отклонить и заигнорировать пользователя", "Unknown Command": "Неизвестная команда", "Unrecognised command: %(commandText)s": "Нераспознанная команда: %(commandText)s", "Send as message": "Отправить как сообщение", From 662e697b9d31a0adf8b93e2579529c5c79695a14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98jvind=20Fritjof=20Arnfred?= Date: Fri, 17 Apr 2020 15:22:37 +0000 Subject: [PATCH 062/162] Translated using Weblate (Danish) Currently translated at 24.2% (554 of 2291 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/da/ --- src/i18n/strings/da.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/da.json b/src/i18n/strings/da.json index ebd63abc63..6db20766d3 100644 --- a/src/i18n/strings/da.json +++ b/src/i18n/strings/da.json @@ -568,5 +568,7 @@ "Displays information about a user": "Viser information om en bruger", "%(senderDisplayName)s changed the room name from %(oldRoomName)s to %(newRoomName)s.": "%(senderDisplayName)s ændrede rumnavnet fra %(oldRoomName)s til %(newRoomName)s.", "%(senderName)s added the alternative addresses %(addresses)s for this room.|other": "%(senderName)s tilføjede de alternative adresser %(addresses)s til dette rum.", - "%(senderName)s added the alternative addresses %(addresses)s for this room.|one": "%(senderName)s tilføjede alternative adresser %(addresses)s til dette rum." + "%(senderName)s added the alternative addresses %(addresses)s for this room.|one": "%(senderName)s tilføjede alternative adresser %(addresses)s til dette rum.", + "%(senderName)s removed the alternative addresses %(addresses)s for this room.|other": "%(senderName)s fjernede de alternative adresser %(addresses)s til dette rum.", + "%(senderName)s removed the alternative addresses %(addresses)s for this room.|one": "%(senderName)s fjernede alternative adresser %(addresses)s til dette rum." } From 6579f25ef1a8b050cb789607db2aa6f24eee8fff Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Sat, 18 Apr 2020 03:28:48 +0000 Subject: [PATCH 063/162] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (2291 of 2291 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 5c0018c41b..bdf410f9e7 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -2389,5 +2389,9 @@ "Enter a recovery passphrase...": "輸入復原通關密語……", "Please enter your recovery passphrase a second time to confirm.": "請再次輸入您的復原通關密語以確認。", "Repeat your recovery passphrase...": "再次輸入您的復原通關密語……", - "Secure your backup with a recovery passphrase": "使用復原通關密語保護您的備份" + "Secure your backup with a recovery passphrase": "使用復原通關密語保護您的備份", + "Can't load this message": "無法載入此訊息", + "Submit logs": "遞交紀錄檔", + "Reminder: Your browser is unsupported, so your experience may be unpredictable.": "注意:您的瀏覽器不受支援,所以您的使用體驗可能無法預測。", + "Unable to upload": "無法上傳" } From 7a8dee721319fb9b605d537d8b0ecea3772e6cfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98jvind=20Fritjof=20Arnfred?= Date: Sat, 18 Apr 2020 18:56:54 +0000 Subject: [PATCH 064/162] Translated using Weblate (Danish) Currently translated at 25.1% (575 of 2291 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/da/ --- src/i18n/strings/da.json | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/i18n/strings/da.json b/src/i18n/strings/da.json index 6db20766d3..2fc17fe709 100644 --- a/src/i18n/strings/da.json +++ b/src/i18n/strings/da.json @@ -77,7 +77,7 @@ "Close": "Luk", "Cancel": "Afbryd", "Edit": "Rediger", - "Unpin Message": "Fasthold ikke længere Besked", + "Unpin Message": "Frigør Besked", "Failed to forget room %(errCode)s": "Kunne ikke glemme rummet %(errCode)s", "Mute": "Sæt på lydløs", "Leave": "Forlad", @@ -418,7 +418,7 @@ "%(senderDisplayName)s changed the join rule to %(rule)s": "%(senderDisplayName)s ændrede adgangsreglen til %(rule)s", "%(senderDisplayName)s has allowed guests to join the room.": "%(senderDisplayName)s har givet gæster adgang til rummet.", "%(senderDisplayName)s has prevented guests from joining the room.": "%(senderDisplayName)s har forhindret gæster i at tilgå rummet.", - "%(senderDisplayName)s changed guest access to %(rule)s": "%(senderDisplayName)s ændrede gæsteadgang til", + "%(senderDisplayName)s changed guest access to %(rule)s": "%(senderDisplayName)s ændrede gæsteadgang til %(rule)s", "%(senderDisplayName)s enabled flair for %(groups)s in this room.": "%(senderDisplayName)s aktiverede etiket for %(groups)s i dette rum.", "%(senderDisplayName)s disabled flair for %(groups)s in this room.": "%(senderDisplayName)s deaktiverede etiket for %(groups)s i dette rum.", "%(senderDisplayName)s enabled flair for %(newGroups)s and disabled flair for %(oldGroups)s in this room.": "%(senderDisplayName)s aktiverede etiket for %(newGroups)s og deaktiverede etiket for %(oldGroups)s i dette rum.", @@ -464,7 +464,7 @@ "%(items)s and %(count)s others|other": "%(items)s og %(count)s andre", "%(items)s and %(count)s others|one": "%(items)s og en anden", "%(items)s and %(lastItem)s": "%(items)s og %(lastItem)s", - "Your browser does not support the required cryptography extensions": "Din browser understøtter ikke de påkrævede kryptografiske udvidelser.", + "Your browser does not support the required cryptography extensions": "Din browser understøtter ikke de påkrævede kryptografiske udvidelser", "Not a valid Riot keyfile": "Ikke en gyldig Riot nøglefil", "Authentication check failed: incorrect password?": "Godkendelse mislykkedes: forkert kodeord?", "Unrecognised address": "Ukendt adresse", @@ -563,12 +563,29 @@ "Unknown (user, session) pair:": "Ukendt (bruger, session) par:", "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and session %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "ADVARSEL: NØGLEVERIFIKATIONEN FEJLEDE! Underskriftsnøglen for %(userId)s og session %(deviceId)s er %(fprint)s som ikke matcher den supplerede nøgle \"%(fingerprint)s\". Dette kunne betyde at jeres kommunikation er infiltreret!", "Session already verified!": "Sessionen er allerede verificeret!", - "WARNING: Session already verified, but keys do NOT MATCH!": "ADVARSEL: Sessionen er allerede verificeret, men nøglerne MATCHER IKKE.", - "The signing key you provided matches the signing key you received from %(userId)s's session %(deviceId)s. Session marked as verified.": "", + "WARNING: Session already verified, but keys do NOT MATCH!": "ADVARSEL: Sessionen er allerede verificeret, men nøglerne MATCHER IKKE!", + "The signing key you provided matches the signing key you received from %(userId)s's session %(deviceId)s. Session marked as verified.": "Underskriftsnøglen du supplerede matcher den underskriftsnøgle du modtog fra %(userId)s's session %(deviceId)s. Sessionen er markeret som verificeret.", "Displays information about a user": "Viser information om en bruger", "%(senderDisplayName)s changed the room name from %(oldRoomName)s to %(newRoomName)s.": "%(senderDisplayName)s ændrede rumnavnet fra %(oldRoomName)s til %(newRoomName)s.", "%(senderName)s added the alternative addresses %(addresses)s for this room.|other": "%(senderName)s tilføjede de alternative adresser %(addresses)s til dette rum.", "%(senderName)s added the alternative addresses %(addresses)s for this room.|one": "%(senderName)s tilføjede alternative adresser %(addresses)s til dette rum.", "%(senderName)s removed the alternative addresses %(addresses)s for this room.|other": "%(senderName)s fjernede de alternative adresser %(addresses)s til dette rum.", - "%(senderName)s removed the alternative addresses %(addresses)s for this room.|one": "%(senderName)s fjernede alternative adresser %(addresses)s til dette rum." + "%(senderName)s removed the alternative addresses %(addresses)s for this room.|one": "%(senderName)s fjernede alternative adresser %(addresses)s til dette rum.", + "%(senderName)s changed the alternative addresses for this room.": "%(senderName)s ændrede de alternative adresser til dette rum.", + "%(senderName)s changed the main and alternative addresses for this room.": "%(senderName)s ændrede hoved- og alternative adresser til dette rum.", + "%(senderName)s changed the addresses for this room.": "%(senderName)s ændrede adresserne til dette rum.", + "%(senderName)s placed a voice call.": "%(senderName)s foretog et stemmeopkald.", + "%(senderName)s placed a voice call. (not supported by this browser)": "%(senderName)s foretog et stemmeopkald. (ikke understøttet af denne browser)", + "%(senderName)s placed a video call.": "%(senderName)s foretog et videoopkald.", + "%(senderName)s placed a video call. (not supported by this browser)": "%(senderName)s foretog et videoopkald. (ikke understøttet af denne browser)", + "%(senderName)s removed the rule banning users matching %(glob)s": "%(senderName)s fjernede den regel der bannede brugere der matcher %(glob)s", + "%(senderName)s removed the rule banning rooms matching %(glob)s": "%(senderName)s fjernede den regel der bannede brugere der matcher %(glob)s", + "%(senderName)s removed the rule banning servers matching %(glob)s": "%(senderName)s fjernede den regel der bannede servere som matcher %(glob)s", + "%(senderName)s removed a ban rule matching %(glob)s": "%(senderName)s fjernede en ban-regel der matcher %(glob)s", + "%(senderName)s updated an invalid ban rule": "%(senderName)s opdaterede en ugyldig ban-regel", + "%(senderName)s updated the rule banning users matching %(glob)s for %(reason)s": "%(senderName)s opdaterede den regel der banner brugere som matcher %(glob)s på grund af %(reason)s", + "%(senderName)s updated the rule banning rooms matching %(glob)s for %(reason)s": "%(senderName)s opdaterede den regel der banner rum som matcher %(glob)s på grund af %(reason)s", + "%(senderName)s updated the rule banning servers matching %(glob)s for %(reason)s": "%(senderName)s opdaterede den regel der banner servere der matcher %(glob)s på grund af %(reason)s", + "%(senderName)s updated a ban rule matching %(glob)s for %(reason)s": "%(senderName)s opdaterede en ban-regel der matcher %(glob)s på grund af %(reason)s", + "Explore rooms": "Udforsk rum" } From 62e9c7e0926c55fd0396932429d3bdec9dfba556 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Sat, 18 Apr 2020 06:42:16 +0000 Subject: [PATCH 065/162] Translated using Weblate (French) Currently translated at 100.0% (2291 of 2291 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fr/ --- src/i18n/strings/fr.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index 882fd7b663..cc59683030 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -2390,5 +2390,9 @@ "Enter a recovery passphrase...": "Saisir une phrase secrète de récupération…", "Please enter your recovery passphrase a second time to confirm.": "Saisissez à nouveau votre phrase secrète de récupération pour la confirmer.", "Repeat your recovery passphrase...": "Répéter votre phrase secrète de récupération…", - "Secure your backup with a recovery passphrase": "Protégez votre sauvegarde avec une phrase secrète de récupération" + "Secure your backup with a recovery passphrase": "Protégez votre sauvegarde avec une phrase secrète de récupération", + "Can't load this message": "Impossible de charger ce message", + "Submit logs": "Envoyer les journaux", + "Reminder: Your browser is unsupported, so your experience may be unpredictable.": "Rappel : Votre navigateur n’est pas pris en charge donc votre expérience pourrait être imprévisible.", + "Unable to upload": "Envoi impossible" } From 60a3943587f30911bb3d7b31c54683d74b4dbf71 Mon Sep 17 00:00:00 2001 From: Szimszon Date: Sat, 18 Apr 2020 12:57:53 +0000 Subject: [PATCH 066/162] Translated using Weblate (Hungarian) Currently translated at 100.0% (2291 of 2291 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 | 44 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 8c64fe49ba..c88d28d9c7 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -2344,5 +2344,47 @@ "Confirm adding email": "E-mail hozzáadásának megerősítése", "Click the button below to confirm adding this email address.": "Az e-mail cím hozzáadásának megerősítéséhez kattints a gombra lent.", "Confirm adding phone number": "Telefonszám hozzáadásának megerősítése", - "Click the button below to confirm adding this phone number.": "Az telefonszám hozzáadásának megerősítéséhez kattints a gombra lent." + "Click the button below to confirm adding this phone number.": "Az telefonszám hozzáadásának megerősítéséhez kattints a gombra lent.", + "Confirm adding this email address by using Single Sign On to prove your identity.": "Erősítsd meg, hogy az egyszeri bejelentkezésnél a személyazonosságod bizonyításaként használt e-mail címet hozzáadod.", + "Confirm adding this phone number by using Single Sign On to prove your identity.": "Erősítsd meg, hogy az egyszeri bejelentkezésnél a személyazonosságod bizonyításaként használt telefonszámot hozzáadod.", + "If you cancel now, you won't complete your operation.": "A műveletet nem fejezed be, ha ezt most megszakítod.", + "Failed to set topic": "A téma beállítása nem sikerült", + "Command failed": "A parancs nem sikerült", + "Could not find user in room": "A felhasználó nem található a szobában", + "Enable cross-signing to verify per-user instead of per-session": "A felhasználó alapú ellenőrzéshez a munkamenet alapú helyett engedélyezd az eszközök közötti hitelesítést", + "Keep recovery passphrase in memory for this session": "A visszaállítási jelmondat memóriában tartása ebben a munkamenetben", + "Confirm deleting these sessions by using Single Sign On to prove your identity.|other": "Erősítsd meg az egyszeri bejelentkezéssel, hogy ezeket a munkameneteteket törlöd.", + "Confirm deleting these sessions by using Single Sign On to prove your identity.|one": "Erősítsd meg egyszeri bejelentkezéssel, hogy ezt a munkamenetet törlöd.", + "Can't load this message": "Ezt az üzenetet nem sikerült betölteni", + "Submit logs": "Napló elküldése", + "Reminder: Your browser is unsupported, so your experience may be unpredictable.": "Emlékeztető: A böngésződ nem támogatott, így az élmény kiszámíthatatlan lehet.", + "Confirm your account deactivation by using Single Sign On to prove your identity.": "Erősítsd meg egyszeri bejelentkezéssel, hogy felfüggeszted ezt a fiókot.", + "Are you sure you want to deactivate your account? This is irreversible.": "Biztos, hogy felfüggeszted a fiókodat? Ezt nem lehet visszavonni.", + "Unable to upload": "Nem lehet feltölteni", + "Verify other session": "Más munkamenetek ellenőrzése", + "Unable to access secret storage. Please verify that you entered the correct recovery passphrase.": "A biztonsági tárolóhoz nem lehet hozzáférni. Kérlek ellenőrizd, hogy jó visszaállítási jelmondatot adtál-e meg.", + "Warning: You should only do this on a trusted computer.": "Figyelmeztetés: Ezt csak megbízható számítógépen tedd meg.", + "Access your secure message history and your cross-signing identity for verifying other sessions by entering your recovery passphrase.": "A visszaállítási jelmondat megadásával hozzáférhetsz a titkosított üzeneteidhez és az eszközök közötti aláírásnál használt személyazonosságodhoz hogy más munkameneteket ellenőrizhess.", + "If you've forgotten your recovery passphrase you can use your recovery key or set up new recovery options.": "Ha elfelejtetted a visszaállítási jelmondatodat, akkor használhatod a visszaállítási kulcsot vagy új visszaállítási lehetőséget állíthatsz be.", + "Backup could not be decrypted with this recovery key: please verify that you entered the correct recovery key.": "Ezzel a visszaállítási kulccsal a mentést nem lehet visszafejteni: kérlek ellenőrizd, hogy a visszaállítási kulcsot jól adtad-e meg.", + "Backup could not be decrypted with this recovery passphrase: please verify that you entered the correct recovery passphrase.": "A mentést nem lehet visszafejteni ezzel a visszaállítási jelmondattal: kérlek ellenőrizd, hogy a megfelelő visszaállítási jelmondatot adtad-e meg.", + "Syncing...": "Szinkronizálás…", + "Signing In...": "Bejelentkezés…", + "If you've joined lots of rooms, this might take a while": "Ha sok szobában vagy benn ez eltarthat egy darabig", + "Use an existing session to verify this one, granting it access to encrypted messages.": "A titkosított üzenetekhez való hozzáféréshez nyiss meg egy létező munkamenetet és használd ennek a hitelesítésére.", + "If you can’t access one, ": "Ha nem érsz el egyet sem, ", + "Use your other device to continue…": "A folytatáshoz használd a más eszközödet…", + "Great! This recovery passphrase looks strong enough.": "Nagyszerű! Ez a visszaállítási jelmondat elég erősnek tűnik.", + "Set a recovery passphrase to secure encrypted information and recover it if you log out. This should be different to your account password:": "Helyezd biztonságba a titkosított információkat, hogy kijelentkezés után is vissza tudd állítani, a visszaállítási jelmondat beállításával. Ez legyen a fiók jelszótól különböző:", + "Enter a recovery passphrase": "Visszaállítási jelmondat megadása", + "Back up encrypted message keys": "Titkosított üzenetek kulcsainak mentése", + "Enter your recovery passphrase a second time to confirm it.": "A megerősítéshez add meg a visszaállítási jelmondatot még egyszer.", + "Confirm your recovery passphrase": "Visszaállítási jelmondat megerősítése", + "Your recovery key is a safety net - you can use it to restore access to your encrypted messages if you forget your recovery passphrase.": "A visszaállítási kulcs egy biztonsági háló - arra az esetre ha elfelejted a visszaállítási jelmondatot a titkosított üzenetekhez való hozzáférést vissza tudd állítani.", + "Confirm recovery passphrase": "Visszaállítási jelmondat megerősítése", + "We'll store an encrypted copy of your keys on our server. Secure your backup with a recovery passphrase.": "A kulcsaidat titkosított formában tároljuk a szerverünkön. Helyezd biztonságba a mentéseded a visszaállítási jelmondattal.", + "Enter a recovery passphrase...": "Visszaállítási jelmondat megadása…", + "Please enter your recovery passphrase a second time to confirm.": "A megerősítéshez kérlek add meg a visszaállítási jelmondatot még egyszer.", + "Repeat your recovery passphrase...": "Ismételd meg a visszaállítási jelmondatot…", + "Secure your backup with a recovery passphrase": "Védd a mentést a visszaállítási jelmondattal" } From 0f846bc1b68dc582d26fdc19e592cc706b7e01fa Mon Sep 17 00:00:00 2001 From: Imre Kristoffer Eilertsen Date: Sat, 18 Apr 2020 21:48:20 +0000 Subject: [PATCH 067/162] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 49.3% (1130 of 2291 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nb_NO/ --- src/i18n/strings/nb_NO.json | 71 ++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/nb_NO.json b/src/i18n/strings/nb_NO.json index e18dafdc5d..c6772b9467 100644 --- a/src/i18n/strings/nb_NO.json +++ b/src/i18n/strings/nb_NO.json @@ -1069,5 +1069,74 @@ "End": "Slutt", "If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.": "Hvis du støter på noen programfeil eller har tilbakemeldinger som du vil dele, vennligst fortell oss om det på GitHub.", "To help avoid duplicate issues, please view existing issues first (and add a +1) or create a new issue if you can't find it.": "For å unngå å lage duplikatrapporter, vennligst sjekk gjennom de eksisterende sakene først (og gi en tommel opp), eller opprett en ny saksrapport dersom du ikke finner noen tilsvarende saker.", - "Report bugs & give feedback": "Meld ifra om feil og gi tilbakemeldinger" + "Report bugs & give feedback": "Meld ifra om feil og gi tilbakemeldinger", + "Enter passphrase": "Skriv inn passordfrase", + "(no answer)": "(intet svar)", + "Avoid sequences": "Unngå sekvenser", + "Avoid recent years": "Unngå nylige år", + "Failed to join room": "Mislyktes i å bli med i rommet", + "unknown caller": "ukjent oppringer", + "Cancelling…": "Avbryter …", + "They match": "De samsvarer", + "They don't match": "De samsvarer ikke", + "in memory": "i minnet", + "outdated": "utdatert", + "Disable Notifications": "Skru av varsler", + "Enable Notifications": "Skru på varsler", + "Delete Backup": "Slett sikkerhetskopien", + "Restore from Backup": "Gjenopprett fra sikkerhetskopi", + "Remove %(email)s?": "Vil du fjerne %(email)s?", + "Invalid Email Address": "Ugyldig E-postadresse", + "%(senderName)s uploaded a file": "%(senderName)s lastet opp en fil", + "Kick this user?": "Vil du sparke ut denne brukeren?", + "No pinned messages.": "Ingen klistrede meldinger.", + "Pinned Messages": "Klistrede meldinger", + "Unpin Message": "Avklistre meldingen", + "Try to join anyway": "Forsøk å bli med likevel", + "%(count)s unread messages including mentions.|one": "1 ulest nevnelse.", + "%(count)s unread messages.|other": "%(count)s uleste meldinger.", + "Add a topic": "Legg til et emne", + "Command error": "Kommandofeil", + "Room avatar": "Rommets avatar", + "Start Verification": "Begynn verifisering", + "Verify User": "Verifiser bruker", + "%(count)s verified sessions|one": "1 verifisert økt", + "%(count)s sessions|other": "%(count)s økter", + "%(count)s sessions|one": "%(count)s økt", + "Verify by scanning": "Verifiser med skanning", + "Verify by emoji": "Verifiser med emoji", + "Message Actions": "Meldingshandlinger", + "%(name)s accepted": "%(name)s aksepterte", + "%(name)s declined": "%(name)s avslo", + "%(name)s cancelled": "%(name)s avbrøt", + "%(name)s wants to verify": "%(name) ønsker å verifisere", + "Failed to copy": "Mislyktes i å kopiere", + "Submit logs": "Send inn loggføringer", + "Failed to remove widget": "Mislyktes i å fjerne modulen", + "Minimize apps": "Minimer apper", + "Maximize apps": "Maksimer apper", + "were invited %(count)s times|other": "ble invitert %(count)s ganger", + "was invited %(count)s times|other": "ble invitert %(count)s ganger", + "were banned %(count)s times|other": "ble bannlyst %(count)s ganger", + "was banned %(count)s times|other": "ble bannlyst %(count)s ganger", + "were unbanned %(count)s times|other": "fikk bannlysningene sine opphevet %(count)s ganger", + "were unbanned %(count)s times|one": "fikk bannlysningene sine opphevet", + "was unbanned %(count)s times|other": "fikk bannlysningen sin opphevet %(count)s ganger", + "was unbanned %(count)s times|one": "fikk bannlysningen sin opphevet", + "Clear all data": "Tøm alle data", + "Verify session": "Verifiser økten", + "Start verification": "Begynn verifisering", + "Upload completed": "Opplasting fullført", + "Unable to upload": "Mislyktes i å laste opp", + "Username not available": "Brukernavnet er utilgjengelig", + "Username available": "Brukernavnet er tilgjengelig", + "Unknown sessions": "Ukjente økter", + "Alias (optional)": "Alias (valgfritt)", + "Remove for everyone": "Fjern for alle", + "Remove for me": "Fjern for meg", + "Syncing...": "Synkroniserer ...", + "Signing In...": "Logger inn …", + "NOT verified": "IKKE verifisert", + "Calls": "Samtaler", + "Room List": "Romliste" } From 86053ba6640c6ea798973b624f25ac6608617b3e Mon Sep 17 00:00:00 2001 From: Karol Kosek Date: Fri, 17 Apr 2020 21:42:58 +0000 Subject: [PATCH 068/162] Translated using Weblate (Polish) Currently translated at 68.2% (1562 of 2291 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/pl/ --- src/i18n/strings/pl.json | 64 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 59 insertions(+), 5 deletions(-) diff --git a/src/i18n/strings/pl.json b/src/i18n/strings/pl.json index 2db9cd3ae2..7cf8a256c8 100644 --- a/src/i18n/strings/pl.json +++ b/src/i18n/strings/pl.json @@ -1179,7 +1179,7 @@ "%(names)s and %(count)s others are typing …|one": "%(names)s i jedna osoba pisze…", "Cannot reach homeserver": "Błąd połączenia z serwerem domowym", "Ensure you have a stable internet connection, or get in touch with the server admin": "Upewnij się, że posiadasz stabilne połączenie internetowe lub skontaktuj się z administratorem serwera", - "Your Riot is misconfigured": " Twój Riot jest źle skonfigurowany", + "Your Riot is misconfigured": "Twój Riot jest źle skonfigurowany", "Unexpected error resolving homeserver configuration": "Nieoczekiwany błąd przy ustalaniu konfiguracji serwera domowego", "Unexpected error resolving identity server configuration": "Nieoczekiwany błąd przy ustalaniu konfiguracji serwera tożsamości", "User %(userId)s is already in the room": "Użytkownik %(userId)s jest już w pokoju", @@ -1448,7 +1448,7 @@ "Create a public room": "Utwórz publiczny pokój", "Create a private room": "Utwórz prywatny pokój", "Topic (optional)": "Temat (opcjonalnie)", - "Make this room public": "Upublicznij ten pokój.", + "Make this room public": "Upublicznij ten pokój", "Hide advanced": "Ukryj zaawansowane", "Show advanced": "Pokaż zaawansowane", "Recent Conversations": "Najnowsze rozmowy", @@ -1514,13 +1514,13 @@ "Delete %(count)s sessions|one": "Usuń %(count)s sesję", "Manage": "Zarządzaj", "Enable": "Włącz", - "Session ID:": "Identyfikator sesji", + "Session ID:": "Identyfikator sesji:", "Session key:": "Klucz sesji:", "Accept all %(invitedRooms)s invites": "Zaakceptuj wszystkie zaproszenia do %(invitedRooms)s", "Invite only": "Tylko dla zaproszonych", "Close preview": "Zamknij podgląd", "Send a reply…": "Wyślij odpowiedź…", - "Send a message…": "Wyślij wiadomość", + "Send a message…": "Wyślij wiadomość…", "Verified": "Zweryfikowano", "Cancel search": "Anuluj wyszukiwanie", "Your theme": "Twój motyw", @@ -1534,5 +1534,59 @@ "New session": "Nowa sesja", "Deny": "Zabroń", "Email (optional)": "Adres e-mail (opcjonalnie)", - "Guest": "Gość" + "Guest": "Gość", + "Setting up keys": "Konfigurowanie kluczy", + "Verify this session": "Zweryfikuj tę sesję", + "Set up encryption": "Skonfiguruj szyfrowanie", + "%(name)s is requesting verification": "%(name)s prosi o weryfikację", + "Failed to set topic": "Nie udało się ustawić tematu", + "%(senderDisplayName)s changed the room name from %(oldRoomName)s to %(newRoomName)s.": "%(senderDisplayName)s zmienił(a) nazwę pokoju z %(oldRoomName)s na %(newRoomName)s.", + "%(senderName)s added the alternative addresses %(addresses)s for this room.|other": "%(senderName)s dodał(a) alternatywne adresy %(addresses)s dla tego pokoju.", + "%(senderName)s added the alternative addresses %(addresses)s for this room.|one": "%(senderName)s dodał(a) alternatywny adres %(addresses)s dla tego pokoju.", + "%(senderName)s changed the alternative addresses for this room.": "%(senderName)s zmienił(a) alternatywne adresy dla tego pokoju.", + "%(senderName)s changed the main and alternative addresses for this room.": "%(senderName)s zmienił(a) główne i alternatywne adresy dla tego pokoju.", + "%(senderName)s changed the addresses for this room.": "%(senderName)s zmienił(a) adresy dla tego pokoju.", + "%(senderName)s placed a voice call.": "%(senderName)s wykonał(a) połączenie głosowe.", + "%(senderName)s placed a voice call. (not supported by this browser)": "%(senderName)s wykonał(a) połączenie głosowe. (nie obsługiwane przez tę przeglądarkę)", + "%(senderName)s placed a video call.": "%(senderName)s wykonał(a) połączenie wideo.", + "%(senderName)s placed a video call. (not supported by this browser)": "%(senderName)s wykonał(a) połączenie wideo. (nie obsługiwane przez tę przeglądarkę)", + "Done": "Gotowe", + "The message you are trying to send is too large.": "Wiadomość, którą próbujesz wysłać jest za duża.", + "about a minute ago": "około minuty temu", + "about an hour ago": "około godziny temu", + "about a day ago": "około dzień temu", + "Support adding custom themes": "Obsługa dodawania niestandardowych motywów", + "Order rooms by name": "Sortuj pokoje według nazwy", + "Delete sessions|one": "Usuń sesję", + "Delete %(count)s sessions|other": "Usuń %(count)s sesji", + "Share": "Udostępnij", + "Bold": "Pogrubienie", + "Italics": "Kursywa", + "Strikethrough": "Przekreślenie", + "Recent rooms": "Ostatnie pokoje", + "Reason: %(reason)s": "Powód: %(reason)s", + "Reject & Ignore user": "Odrzuć i zignoruj użytkownika", + "Show image": "Pokaż obraz", + "Verify session": "Zweryfikuj sesję", + "Loading session info...": "Ładowanie informacji o sesji…", + "Upload completed": "Przesyłanie zakończone", + "Message edits": "Edycje wiadomości", + "If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.": "Jeśli napotkasz jakieś błędy lub masz opinię, którą chcesz się podzielić, daj nam znać na GitHubie.", + "Terms of Service": "Warunki użytkowania", + "Upload %(count)s other files|other": "Prześlij %(count)s innych plików", + "Upload %(count)s other files|one": "Prześlij %(count)s inny plik", + "Send a Direct Message": "Wyślij wiadomość bezpośrednią", + "Explore Public Rooms": "Przeglądaj publiczne pokoje", + "Create a Group Chat": "Utwórz czat grupowy", + " (1/%(totalCount)s)": " (1/%(totalCount)s)", + "Log in to your new account.": "Zaloguj się do nowego konta.", + "Registration Successful": "Pomyślnie zarejestrowano", + "DuckDuckGo Results": "Wyniki z DuckDuckGo", + "Enter your account password to confirm the upgrade:": "Wprowadź hasło do konta, aby potwierdzić aktualizację:", + "You're done!": "Jesteś gotów!", + "Autocomplete": "Autouzupełnienie", + "Toggle Bold": "Przełącz pogrubienie", + "Toggle Italics": "Przełącz kursywę", + "Toggle Quote": "Przełącz cytowanie", + "Cancel autocomplete": "Anuluj autouzupełnienie" } From ea68de4e731140122b9eb47edb86bba9b823cfd4 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Mon, 20 Apr 2020 00:17:55 +0000 Subject: [PATCH 069/162] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (2291 of 2291 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index bdf410f9e7..1f137b2e76 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -2393,5 +2393,6 @@ "Can't load this message": "無法載入此訊息", "Submit logs": "遞交紀錄檔", "Reminder: Your browser is unsupported, so your experience may be unpredictable.": "注意:您的瀏覽器不受支援,所以您的使用體驗可能無法預測。", - "Unable to upload": "無法上傳" + "Unable to upload": "無法上傳", + "Currently indexing: %(currentRoom)s": "目前正在建立索引:%(currentRoom)s" } From 3dfab8ad8c7499986a3b2c17d8b2563e49ea94a7 Mon Sep 17 00:00:00 2001 From: Szimszon Date: Sun, 19 Apr 2020 15:53:51 +0000 Subject: [PATCH 070/162] Translated using Weblate (Hungarian) Currently translated at 100.0% (2291 of 2291 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index c88d28d9c7..94430f843d 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -2386,5 +2386,6 @@ "Enter a recovery passphrase...": "Visszaállítási jelmondat megadása…", "Please enter your recovery passphrase a second time to confirm.": "A megerősítéshez kérlek add meg a visszaállítási jelmondatot még egyszer.", "Repeat your recovery passphrase...": "Ismételd meg a visszaállítási jelmondatot…", - "Secure your backup with a recovery passphrase": "Védd a mentést a visszaállítási jelmondattal" + "Secure your backup with a recovery passphrase": "Védd a mentést a visszaállítási jelmondattal", + "Currently indexing: %(currentRoom)s": "Indexelés alatt: %(currentRoom)s" } From 343319db50f8f6cfe04f487af6ea7c2a617186d8 Mon Sep 17 00:00:00 2001 From: rkfg Date: Sun, 19 Apr 2020 11:26:27 +0000 Subject: [PATCH 071/162] Translated using Weblate (Russian) Currently translated at 89.6% (2052 of 2291 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 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 4a0d819287..d44dc351a0 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -1720,7 +1720,7 @@ "Show tray icon and minimize window to it on close": "Показать иконку в панели задач и свернуть окно при закрытии", "The version of Riot": "Версия Riot", "Show typing notifications": "Показывать уведомления о наборе", - "Delete %(count)s sessions|other": "Удалить %(count)s сессию", + "Delete %(count)s sessions|other": "Удалить %(count)s сессий", "Enable desktop notifications for this session": "Включить уведомления для рабочего стола для этой сессии", "Enable audible notifications for this session": "Включить звуковые уведомления для этой сессии", "Use an Integration Manager (%(serverName)s) to manage bots, widgets, and sticker packs.": "Используйте менеджер интеграций %(serverName)s для управления ботами, виджетами и стикерами.", @@ -1892,7 +1892,7 @@ "Connecting to integration manager...": "Подключение к менеджеру интеграций...", "Cannot connect to integration manager": "Не удалось подключиться к менеджеру интеграций", "The integration manager is offline or it cannot reach your homeserver.": "Менеджер интеграций не работает или не может подключиться к вашему домашнему серверу.", - "This session is backing up your keys. ": "Эта сессия сохраняет ваши ключи. ", + "This session is backing up your keys. ": "Эта сессия сохраняет резервную копию ваших ключей. ", "This session is not backing up your keys, but you do have an existing backup you can restore from and add to going forward.": "Эта сессия не сохраняет ваши ключи, но у вас есть резервная копия, из которой вы можете их восстановить.", "Connect this session to key backup before signing out to avoid losing any keys that may only be on this session.": "Подключите эту сессию к резервированию ключей до выхода, чтобы избежать утраты ключей, которые могут быть доступны только в этой сессии.", "Connect this session to Key Backup": "Подключить эту сессию к резервированию ключей", From 894968ac71d19c7a0baf2378eac644bcdd303fda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Mon, 20 Apr 2020 06:31:12 +0000 Subject: [PATCH 072/162] Translated using Weblate (French) Currently translated at 100.0% (2291 of 2291 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 cc59683030..6b5105226c 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -2394,5 +2394,6 @@ "Can't load this message": "Impossible de charger ce message", "Submit logs": "Envoyer les journaux", "Reminder: Your browser is unsupported, so your experience may be unpredictable.": "Rappel : Votre navigateur n’est pas pris en charge donc votre expérience pourrait être imprévisible.", - "Unable to upload": "Envoi impossible" + "Unable to upload": "Envoi impossible", + "Currently indexing: %(currentRoom)s": "En train d’indexer : %(currentRoom)s" } From 0070723df64b69ad5c7043fb516264c33c696628 Mon Sep 17 00:00:00 2001 From: Szimszon Date: Mon, 20 Apr 2020 13:33:57 +0000 Subject: [PATCH 073/162] Translated using Weblate (Hungarian) Currently translated at 100.0% (2292 of 2292 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 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 94430f843d..3cff0a013e 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -2387,5 +2387,6 @@ "Please enter your recovery passphrase a second time to confirm.": "A megerősítéshez kérlek add meg a visszaállítási jelmondatot még egyszer.", "Repeat your recovery passphrase...": "Ismételd meg a visszaállítási jelmondatot…", "Secure your backup with a recovery passphrase": "Védd a mentést a visszaállítási jelmondattal", - "Currently indexing: %(currentRoom)s": "Indexelés alatt: %(currentRoom)s" + "Currently indexing: %(currentRoom)s": "Indexelés alatt: %(currentRoom)s", + "Send a bug report with logs": "Hibajelentés beküldése naplóval" } From 9d9b80e9c144b5939998d1bfd5e546192f8f13a3 Mon Sep 17 00:00:00 2001 From: rkfg Date: Mon, 20 Apr 2020 13:57:48 +0000 Subject: [PATCH 074/162] Translated using Weblate (Russian) Currently translated at 89.6% (2053 of 2292 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/ru/ --- src/i18n/strings/ru.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index d44dc351a0..0ad385b607 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -956,7 +956,7 @@ "All-uppercase is almost as easy to guess as all-lowercase": "Всё прописными буквами так же легко угадывается как и всё строчными", "Reversed words aren't much harder to guess": "Угадать перевёрнутые слова не сильно труднее", "Predictable substitutions like '@' instead of 'a' don't help very much": "Предсказуемые замены типа «@» вместо «a» не особо помогают", - "Add another word or two. Uncommon words are better.": "Добавить другое слово или два. Необычные слова лучше.", + "Add another word or two. Uncommon words are better.": "Добавьте ещё одно-два слова. Лучше использовать редкие слова.", "Repeats like \"aaa\" are easy to guess": "Повторы типа \"ааа\" легко угадываемы", "Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"": "Повторы типа «abcabcabc», лишь немного сложнее угадать, чем «abc»", "Sequences like abc or 6543 are easy to guess": "Последовательности типа abc или 6543 легко угадываемы", @@ -1450,15 +1450,15 @@ "For maximum security, this should be different from your account password.": "Для максимальной безопасности он должен отличаться от пароля вашей учётной записи.", "Enter a passphrase...": "Введите пароль....", "Set up with a Recovery Key": "Настройка с ключом восстановления", - "That matches!": "Это совпадает!", - "That doesn't match.": "Это не совпадает.", + "That matches!": "Они совпадают!", + "That doesn't match.": "Они не совпадают.", "Uploaded sound": "Загруженный звук", "Sounds": "Звук", "Notification sound": "Звук уведомления", "Reset": "Сброс", "Set a new custom sound": "Установка нового пользовательского звука", "Browse": "Просматривать", - "Go back to set it again.": "Вернитесь, чтобы установить его снова.", + "Go back to set it again.": "Задать другой пароль.", "Please enter your passphrase a second time to confirm.": "Пожалуйста, введите ваш пароль еще раз для подтверждения.", "Repeat your passphrase...": "Повторите ваш пароль...", "As a safety net, you can use it to restore your encrypted message history if you forget your Recovery Passphrase.": "Как сеть безопасности, вы можете использовать ее для восстановления истории зашифрованных сообщений, если вы забыли свой пароль восстановления.", @@ -2107,5 +2107,6 @@ "Command failed": "Не удалось выполнить команду", "To report a Matrix-related security issue, please read the Matrix.org Security Disclosure Policy.": "Чтобы сообщить о проблеме безопасности Matrix, пожалуйста, прочитайте Политику раскрытия информации Matrix.org.", "Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "Установить адрес этой комнаты, чтобы пользователи могли найти ее на вашем сервере (%(localDomain)s)", - "Start a conversation with someone using their name, username (like ) or email address.": "Начните диалог с кем-нибудь по его имени, имени пользователя (например, ) или адресу почты." + "Start a conversation with someone using their name, username (like ) or email address.": "Начните диалог с кем-нибудь по его имени, имени пользователя (например, ) или адресу почты.", + "Great! This recovery passphrase looks strong enough.": "Отлично! Этот пароль восстановления достаточно надёжен." } From 500f96ef96174b04dc28543d596c898884df4a13 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Tue, 21 Apr 2020 02:39:58 +0000 Subject: [PATCH 075/162] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (2292 of 2292 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 1f137b2e76..a987b2e6c0 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -2394,5 +2394,6 @@ "Submit logs": "遞交紀錄檔", "Reminder: Your browser is unsupported, so your experience may be unpredictable.": "注意:您的瀏覽器不受支援,所以您的使用體驗可能無法預測。", "Unable to upload": "無法上傳", - "Currently indexing: %(currentRoom)s": "目前正在建立索引:%(currentRoom)s" + "Currently indexing: %(currentRoom)s": "目前正在建立索引:%(currentRoom)s", + "Send a bug report with logs": "傳送有紀錄檔的臭蟲回報" } From 2d6e4fbe72f3c5db8eead11e4940954ba6a18c95 Mon Sep 17 00:00:00 2001 From: Tuomas Hietala Date: Mon, 20 Apr 2020 15:45:42 +0000 Subject: [PATCH 076/162] Translated using Weblate (Finnish) Currently translated at 91.0% (2086 of 2292 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/fi/ --- src/i18n/strings/fi.json | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/fi.json b/src/i18n/strings/fi.json index 11d4a33545..c17a2e8c35 100644 --- a/src/i18n/strings/fi.json +++ b/src/i18n/strings/fi.json @@ -1997,7 +1997,7 @@ "Session already verified!": "Istunto on jo vahvistettu!", "WARNING: Session already verified, but keys do NOT MATCH!": "VAROITUS: Istunto on jo vahvistettu, mutta avaimet EIVÄT VASTAA!", "Not Trusted": "Ei luotettu", - "Ask this user to verify their session, or manually verify it below.": "Pyydä tätä käyttäjää vahvistamaan heidän istuntonsa, tai manuaalisesti vahvista se alla.", + "Ask this user to verify their session, or manually verify it below.": "Pyydä tätä käyttäjää vahvistamaan istuntonsa, tai vahvista se manuaalisesti alla.", "Manually Verify": "Manuaalisesti vahvista", "a few seconds from now": "muutama sekunti sitten", "about a minute from now": "noin minuutti sitten", @@ -2140,5 +2140,22 @@ "Secure your encryption keys with a passphrase. For maximum security this should be different to your account password:": "Suojaa salausavaimesi salalauseella. Parhaan turvallisuuden takaamiseksi sen tulisi olla eri kuin käyttäjätilisi salasana:", "Super": "Super", "Cancel replying to a message": "Peruuta viestiin vastaaminen", - "Jump to room search": "Siirry huonehakuun" + "Jump to room search": "Siirry huonehakuun", + "Failed to set topic": "Aiheen asettaminen epäonnistui", + "Command failed": "Komento epäonnistui", + "Could not find user in room": "Käyttäjää ei löytynyt huoneesta", + "Send a bug report with logs": "Lähetä virheilmoitus lokien kera", + "Confirm the emoji below are displayed on both sessions, in the same order:": "Varmista että alla olevat emojit näkyvät molemmissa istunnoissa samassa järjestyksessä:", + "Delete sessions|other": "Poista istunnot", + "Delete sessions|one": "Poista istunto", + "Compare emoji": "Vertaile emojeita", + "Can't load this message": "Tätä viestiä ei voi ladata", + "Submit logs": "Lähetä lokit", + "Reminder: Your browser is unsupported, so your experience may be unpredictable.": "Muistutus: Selaintasi ei tueta, joten voit kohdata yllätyksiä.", + "There was a problem communicating with the server. Please try again.": "Palvelinyhteydessä oli ongelma. Yritä uudelleen.", + "Warning: You should only do this on a trusted computer.": "Varoitus: Tee tämä ainoastaan luotetulla tietokoneella.", + "Syncing...": "Synkronoidaan...", + "Signing In...": "Kirjaudutaan sisään...", + "If you've joined lots of rooms, this might take a while": "Jos olet liittynyt moniin huoneisiin, tässä voi kestää hetken", + "Use your other device to continue…": "Jatka toisella laitteellasi…" } From 5dd9dd40d8c9a6e3412825a31850e06c459b3b84 Mon Sep 17 00:00:00 2001 From: rkfg Date: Mon, 20 Apr 2020 15:35:46 +0000 Subject: [PATCH 077/162] Translated using Weblate (Russian) Currently translated at 89.8% (2058 of 2292 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 | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 0ad385b607..f0e8b44678 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -1803,13 +1803,13 @@ "They don't match": "Они не совпадают", "To be secure, do this in person or use a trusted way to communicate.": "Чтобы быть в безопасности, делайте это лично или используйте надежный способ связи.", "Lock": "Заблокировать", - "Verify yourself & others to keep your chats safe": "Проверить себя и других, чтобы сохранить ваши чаты безопасными", + "Verify yourself & others to keep your chats safe": "Подтвердите себя и других для безопасности ваших бесед", "Other users may not trust it": "Другие пользователи могут не доверять этому", "Upgrade": "Обновление", "Verify": "Проверить", "Later": "Позже", "Review": "Обзор", - "Decline (%(counter)s)": "Сокращение (%(counter)s)", + "Decline (%(counter)s)": "Отклонить (%(counter)s)", "This bridge was provisioned by .": "Этот мост был подготовлен пользователем .", "This bridge is managed by .": "Этот мост управляется .", "Workspace: %(networkName)s": "Рабочая область: %(networkName)s", @@ -1881,7 +1881,7 @@ "Session backup key:": "Резервная копия сессионного ключа:", "Secret storage public key:": "Публичный ключ хранилища секретов:", "in account data": "в данных учётной записи", - "Homeserver feature support:": "Возможности домашнего сервера:", + "Homeserver feature support:": "Поддержка со стороны домашнего сервера:", "exists": "существует", "Secret Storage key format:": "Формат ключа хранилища секретов:", "outdated": "устарел", @@ -2108,5 +2108,10 @@ "To report a Matrix-related security issue, please read the Matrix.org Security Disclosure Policy.": "Чтобы сообщить о проблеме безопасности Matrix, пожалуйста, прочитайте Политику раскрытия информации Matrix.org.", "Set addresses for this room so users can find this room through your homeserver (%(localDomain)s)": "Установить адрес этой комнаты, чтобы пользователи могли найти ее на вашем сервере (%(localDomain)s)", "Start a conversation with someone using their name, username (like ) or email address.": "Начните диалог с кем-нибудь по его имени, имени пользователя (например, ) или адресу почты.", - "Great! This recovery passphrase looks strong enough.": "Отлично! Этот пароль восстановления достаточно надёжен." + "Great! This recovery passphrase looks strong enough.": "Отлично! Этот пароль восстановления достаточно надёжен.", + "Enter recovery passphrase": "Введите пароль восстановления", + "Enter a recovery passphrase": "Введите пароль восстановления", + "Enter your recovery passphrase a second time to confirm it.": "Введите пароль восстановления ещё раз для подтверждения.", + "Enter a recovery passphrase...": "Введите пароль восстановления...", + "Please enter your recovery passphrase a second time to confirm.": "Введите пароль восстановления повторно для подтверждения." } From 89058f057dd93fdd448e7a1e348f57397598d9a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Tue, 21 Apr 2020 06:32:14 +0000 Subject: [PATCH 078/162] Translated using Weblate (French) Currently translated at 100.0% (2293 of 2293 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 6b5105226c..a06785fcc2 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -2395,5 +2395,7 @@ "Submit logs": "Envoyer les journaux", "Reminder: Your browser is unsupported, so your experience may be unpredictable.": "Rappel : Votre navigateur n’est pas pris en charge donc votre expérience pourrait être imprévisible.", "Unable to upload": "Envoi impossible", - "Currently indexing: %(currentRoom)s": "En train d’indexer : %(currentRoom)s" + "Currently indexing: %(currentRoom)s": "En train d’indexer : %(currentRoom)s", + "Please supply a widget URL or embed code": "Veuillez fournir l’URL ou le code d’intégration du widget", + "Send a bug report with logs": "Envoyer un rapport d’anomalie avec les journaux" } From f54e99c708c534cdec2352b7f822b884f2e51d25 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Tue, 21 Apr 2020 16:01:10 -0600 Subject: [PATCH 079/162] Use WidgetType more often to avoid breaking new sticker pickers Turns out that setUserWidget() wasn't updated to take a real WidgetType, but the code in ScalarMessaging thought it did. This leads to integration managers trying to add sticker widgets with an object `type` rather than a string `type`, which doesn't work. This updates other code paths which call into the various widget classes to use WidgetType more often. The actual code path for fixing widgets is resolved in WidgetUtils for the setUserWidget function body. --- src/ScalarAuthClient.js | 11 ++++++----- src/components/views/rooms/Stickerpicker.js | 9 ++++----- src/utils/WidgetUtils.js | 6 +++--- src/widgets/WidgetType.ts | 2 ++ 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/ScalarAuthClient.js b/src/ScalarAuthClient.js index 819fe3c998..4994ebfdec 100644 --- a/src/ScalarAuthClient.js +++ b/src/ScalarAuthClient.js @@ -23,6 +23,7 @@ import request from "browser-request"; import * as Matrix from 'matrix-js-sdk'; import SdkConfig from "./SdkConfig"; +import {WidgetType} from "./widgets/WidgetType"; // The version of the integration manager API we're intending to work with const imApiVersion = "1.1"; @@ -233,20 +234,20 @@ export default class ScalarAuthClient { * Mark all assets associated with the specified widget as "disabled" in the * integration manager database. * This can be useful to temporarily prevent purchased assets from being displayed. - * @param {string} widgetType [description] - * @param {string} widgetId [description] + * @param {WidgetType} widgetType The Widget Type to disable assets for + * @param {string} widgetId The widget ID to disable assets for * @return {Promise} Resolves on completion */ - disableWidgetAssets(widgetType, widgetId) { + disableWidgetAssets(widgetType: WidgetType, widgetId) { let url = this.apiUrl + '/widgets/set_assets_state'; url = this.getStarterLink(url); return new Promise((resolve, reject) => { request({ - method: 'GET', + method: 'GET', // XXX: Actions shouldn't be GET requests uri: url, json: true, qs: { - 'widget_type': widgetType, + 'widget_type': widgetType.preferred, 'widget_id': widgetId, 'state': 'disable', }, diff --git a/src/components/views/rooms/Stickerpicker.js b/src/components/views/rooms/Stickerpicker.js index 67537c4cee..9d91ab04b3 100644 --- a/src/components/views/rooms/Stickerpicker.js +++ b/src/components/views/rooms/Stickerpicker.js @@ -26,8 +26,7 @@ import PersistedElement from "../elements/PersistedElement"; import {IntegrationManagers} from "../../../integrations/IntegrationManagers"; import SettingsStore from "../../../settings/SettingsStore"; import {ContextMenu} from "../../structures/ContextMenu"; - -const widgetType = 'm.stickerpicker'; +import {WidgetType} from "../../../widgets/WidgetType"; // This should be below the dialog level (4000), but above the rest of the UI (1000-2000). // We sit in a context menu, so this should be given to the context menu. @@ -87,7 +86,7 @@ export default class Stickerpicker extends React.Component { console.log('Removing Stickerpicker widgets'); if (this.state.widgetId) { if (scalarClient) { - scalarClient.disableWidgetAssets(widgetType, this.state.widgetId).then(() => { + scalarClient.disableWidgetAssets(WidgetType.STICKERPICKER, this.state.widgetId).then(() => { console.log('Assets disabled'); }).catch((err) => { console.error('Failed to disable assets'); @@ -364,13 +363,13 @@ export default class Stickerpicker extends React.Component { if (SettingsStore.isFeatureEnabled("feature_many_integration_managers")) { IntegrationManagers.sharedInstance().openAll( this.props.room, - `type_${widgetType}`, + `type_${WidgetType.STICKERPICKER.preferred}`, this.state.widgetId, ); } else { IntegrationManagers.sharedInstance().getPrimaryManager().open( this.props.room, - `type_${widgetType}`, + `type_${WidgetType.STICKERPICKER.preferred}`, this.state.widgetId, ); } diff --git a/src/utils/WidgetUtils.js b/src/utils/WidgetUtils.js index 6a0556c2b3..676bd11415 100644 --- a/src/utils/WidgetUtils.js +++ b/src/utils/WidgetUtils.js @@ -210,9 +210,9 @@ export default class WidgetUtils { }); } - static setUserWidget(widgetId, widgetType, widgetUrl, widgetName, widgetData) { + static setUserWidget(widgetId, widgetType: WidgetType, widgetUrl, widgetName, widgetData) { const content = { - type: widgetType, + type: widgetType.preferred, url: widgetUrl, name: widgetName, data: widgetData, @@ -369,7 +369,7 @@ export default class WidgetUtils { static addIntegrationManagerWidget(name: string, uiUrl: string, apiUrl: string) { return WidgetUtils.setUserWidget( "integration_manager_" + (new Date().getTime()), - "m.integration_manager", + WidgetType.INTEGRATION_MANAGER, uiUrl, "Integration Manager: " + name, {"api_url": apiUrl}, diff --git a/src/widgets/WidgetType.ts b/src/widgets/WidgetType.ts index 09c30430dd..e4b37e639c 100644 --- a/src/widgets/WidgetType.ts +++ b/src/widgets/WidgetType.ts @@ -16,6 +16,8 @@ limitations under the License. export class WidgetType { public static readonly JITSI = new WidgetType("m.jitsi", "jitsi"); + public static readonly STICKERPICKER = new WidgetType("m.stickerpicker", "m.stickerpicker"); + public static readonly INTEGRATION_MANAGER = new WidgetType("m.integration_manager", "m.integration_manager"); public static readonly CUSTOM = new WidgetType("m.custom", "m.custom"); constructor(public readonly preferred: string, public readonly legacy: string) { From d851f2e45fd4e7584fd3cb2fda9d99b6facab6f0 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Wed, 22 Apr 2020 00:27:20 -0600 Subject: [PATCH 080/162] Fix OpenID requests from widgets Fixes https://github.com/vector-im/riot-web/issues/13131 Widgets can request an OpenID token to authenticate the user when the widget is missing authentication information. A common case for this is the Dimension sticker picker: sometimes the Riot is running in doesn't have the configuration to match the Dimension instance, so Riot rightly refuses to send an auth token to the widget. When this happens, it requests a token through postMessage(). There's a toggle on the permission dialog to remember the setting, which is the widget's security key. As an added measure, the security key generation ensures the widget URL matches as the 'remember this choice' toggle will silently work in the background, and it could be dangerous if the widget's URL changed and Riot secretly allows the widget to identify the user. This check was failing because the WidgetMessaging class was being set up with the rendered URL, which will not match the widget's URL at all. To fix this, we simply use the widget's URL to set up the messaging, which by proxy uses the right URL in calculating the security key. --- src/components/views/elements/AppTile.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/views/elements/AppTile.js b/src/components/views/elements/AppTile.js index 58bfda8d22..abf6f306ab 100644 --- a/src/components/views/elements/AppTile.js +++ b/src/components/views/elements/AppTile.js @@ -423,8 +423,13 @@ export default class AppTile extends React.Component { _setupWidgetMessaging() { // FIXME: There's probably no reason to do this here: it should probably be done entirely // in ActiveWidgetStore. + + // We use the app's URL over the rendered URL so that anything the widget does which could + // lead to requesting a "security key" will pass accordingly. The only other thing this URL + // is used for is to determine the origin we're talking to, and therefore we don't need the + // fully templated URL. const widgetMessaging = new WidgetMessaging( - this.props.app.id, this._getRenderedUrl(), this.props.userWidget, this._appFrame.current.contentWindow); + this.props.app.id, this.props.app.url, this.props.userWidget, this._appFrame.current.contentWindow); ActiveWidgetStore.setWidgetMessaging(this.props.app.id, widgetMessaging); widgetMessaging.getCapabilities().then((requestedCapabilities) => { console.log(`Widget ${this.props.app.id} requested capabilities: ` + requestedCapabilities); From 3a360b91b968224aa1e20ae09e3fd5794220b202 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Wed, 22 Apr 2020 00:34:08 -0600 Subject: [PATCH 081/162] Update logging for unmanaged widgets, and add TODO comments for other areas Just a minor thing that is bothersome. Renaming classes and functions is a bit more of an impact than is worth right now, so have settled for littering TODO comments all over the place. --- src/ScalarAuthClient.js | 2 ++ src/ScalarMessaging.js | 2 ++ src/components/views/elements/AppTile.js | 5 +++-- src/utils/WidgetUtils.js | 1 + 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ScalarAuthClient.js b/src/ScalarAuthClient.js index 819fe3c998..1253023c53 100644 --- a/src/ScalarAuthClient.js +++ b/src/ScalarAuthClient.js @@ -27,6 +27,8 @@ import SdkConfig from "./SdkConfig"; // The version of the integration manager API we're intending to work with const imApiVersion = "1.1"; +// TODO: Generify the name of this class and all components within - it's not just for Scalar. + export default class ScalarAuthClient { constructor(apiUrl, uiUrl) { this.apiUrl = apiUrl; diff --git a/src/ScalarMessaging.js b/src/ScalarMessaging.js index 607f702c73..9731e42825 100644 --- a/src/ScalarMessaging.js +++ b/src/ScalarMessaging.js @@ -16,6 +16,8 @@ See the License for the specific language governing permissions and limitations under the License. */ +// TODO: Generify the name of this and all components within - it's not just for scalar. + /* Listens for incoming postMessage requests from the integrations UI URL. The following API is exposed: { diff --git a/src/components/views/elements/AppTile.js b/src/components/views/elements/AppTile.js index 58bfda8d22..86da0fbb58 100644 --- a/src/components/views/elements/AppTile.js +++ b/src/components/views/elements/AppTile.js @@ -188,13 +188,14 @@ export default class AppTile extends React.Component { } } + // TODO: Generify the name of this function. It's not just scalar tokens. /** * Adds a scalar token to the widget URL, if required * Component initialisation is only complete when this function has resolved */ setScalarToken() { if (!WidgetUtils.isScalarUrl(this.props.app.url)) { - console.warn('Non-scalar widget, not setting scalar token!', url); + console.warn('Widget does not match integration manager, refusing to set auth token', url); this.setState({ error: null, widgetUrl: this._addWurlParams(this.props.app.url), @@ -218,7 +219,7 @@ export default class AppTile extends React.Component { const defaultManager = managers.getPrimaryManager(); if (!WidgetUtils.isScalarUrl(defaultManager.apiUrl)) { - console.warn('Non-scalar manager, not setting scalar token!', url); + console.warn('Unknown integration manager, refusing to set auth token', url); this.setState({ error: null, widgetUrl: this._addWurlParams(this.props.app.url), diff --git a/src/utils/WidgetUtils.js b/src/utils/WidgetUtils.js index 6a0556c2b3..62113b652b 100644 --- a/src/utils/WidgetUtils.js +++ b/src/utils/WidgetUtils.js @@ -72,6 +72,7 @@ export default class WidgetUtils { return room.currentState.maySendStateEvent('im.vector.modular.widgets', me); } + // TODO: Generify the name of this function. It's not just scalar. /** * Returns true if specified url is a scalar URL, typically https://scalar.vector.im/api * @param {[type]} testUrlString URL to check From 927142a1bbb229bc219a0ee99c9f69cb4dfb6869 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Wed, 22 Apr 2020 02:23:55 +0000 Subject: [PATCH 082/162] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (2294 of 2294 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index a987b2e6c0..2a34e8140f 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -2395,5 +2395,7 @@ "Reminder: Your browser is unsupported, so your experience may be unpredictable.": "注意:您的瀏覽器不受支援,所以您的使用體驗可能無法預測。", "Unable to upload": "無法上傳", "Currently indexing: %(currentRoom)s": "目前正在建立索引:%(currentRoom)s", - "Send a bug report with logs": "傳送有紀錄檔的臭蟲回報" + "Send a bug report with logs": "傳送有紀錄檔的臭蟲回報", + "Please supply a widget URL or embed code": "請提供小工具 URL 或嵌入程式碼", + "Unable to query secret storage status": "無法查詢秘密儲存空間狀態" } From 1958e556774b1fdb0b966fc37b256f1e295db3c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Wed, 22 Apr 2020 07:03:35 +0000 Subject: [PATCH 083/162] Translated using Weblate (French) Currently translated at 100.0% (2294 of 2294 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 a06785fcc2..6ea4755dee 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -2397,5 +2397,6 @@ "Unable to upload": "Envoi impossible", "Currently indexing: %(currentRoom)s": "En train d’indexer : %(currentRoom)s", "Please supply a widget URL or embed code": "Veuillez fournir l’URL ou le code d’intégration du widget", - "Send a bug report with logs": "Envoyer un rapport d’anomalie avec les journaux" + "Send a bug report with logs": "Envoyer un rapport d’anomalie avec les journaux", + "Unable to query secret storage status": "Impossible de demander le statut du coffre secret" } From bc989abff6f97cedce5ff4b2c0767285a67f000f Mon Sep 17 00:00:00 2001 From: random Date: Tue, 21 Apr 2020 12:21:39 +0000 Subject: [PATCH 084/162] Translated using Weblate (Italian) Currently translated at 100.0% (2294 of 2294 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/it/ --- src/i18n/strings/it.json | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index a2796c103c..3b7ae2e00f 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -2363,5 +2363,37 @@ "Use your other device to continue…": "Usa il tuo altro dispositivo per continuare…", "Syncing...": "Sincronizzazione...", "Signing In...": "Accesso...", - "If you've joined lots of rooms, this might take a while": "Se sei dentro a molte stanze, potrebbe impiegarci un po'" + "If you've joined lots of rooms, this might take a while": "Se sei dentro a molte stanze, potrebbe impiegarci un po'", + "If you cancel now, you won't complete your operation.": "Se annulli adesso, non completerai l'operazione.", + "Please supply a widget URL or embed code": "Inserisci un URL del widget o un codice di incorporamento", + "Send a bug report with logs": "Invia una segnalazione di errore con i registri", + "Enable cross-signing to verify per-user instead of per-session": "Attiva la firma incrociata per verificare per-utente invece di per-sessione", + "Keep recovery passphrase in memory for this session": "Tieni la password di ripristino in memoria per questa sessione", + "Can't load this message": "Impossibile caricare questo messaggio", + "Submit logs": "Invia registri", + "Reminder: Your browser is unsupported, so your experience may be unpredictable.": "Promemoria: il tuo browser non è supportato, perciò la tua esperienza può essere imprevedibile.", + "Unable to upload": "Impossibile inviare", + "Verify other session": "Verifica l'altra sessione", + "Unable to access secret storage. Please verify that you entered the correct recovery passphrase.": "Impossibile accedere all'archivio segreto. Verifica di avere inserito la password di ripristino giusta.", + "Warning: You should only do this on a trusted computer.": "Attenzione: dovresti farlo solo con un computer fidato.", + "Access your secure message history and your cross-signing identity for verifying other sessions by entering your recovery passphrase.": "Accedi alla cronologia dei messaggi sicuri e all'identità di firma incrociata per verificare altre sessioni inserendo la password di ripristino.", + "If you've forgotten your recovery passphrase you can use your recovery key or set up new recovery options.": "Se hai dimenticato la password di ripristino puoi usare la chiave di ripristino o configurare nuove opzioni di recupero.", + "Backup could not be decrypted with this recovery key: please verify that you entered the correct recovery key.": "Impossibile decifrare il backup con questa chiave di ripristino: verifica di avere inserito la chiave di ripristino giusta.", + "Backup could not be decrypted with this recovery passphrase: please verify that you entered the correct recovery passphrase.": "Impossibile decifrare il backup con questa password di ripristino: verifica di avere inserito la password di ripristino giusta.", + "If you can’t access one, ": "Se non riesci ad accedere, ", + "Great! This recovery passphrase looks strong enough.": "Ottimo! Questa password di ripristino sembra abbastanza robusta.", + "Set a recovery passphrase to secure encrypted information and recover it if you log out. This should be different to your account password:": "Imposta una password di ripristino per proteggere le informazioni cifrate e recuperarle se ti disconnetti. Dovrebbe essere diversa dalla password dell'account:", + "Enter a recovery passphrase": "Inserisci una password di ripristino", + "Back up encrypted message keys": "Fai un backup delle chiavi dei messaggi cifrati", + "Enter your recovery passphrase a second time to confirm it.": "Inserisci di nuovo la password di ripristino per confermarla.", + "Confirm your recovery passphrase": "Conferma la password di ripristino", + "Your recovery key is a safety net - you can use it to restore access to your encrypted messages if you forget your recovery passphrase.": "La chiave di ripristino è come una rete di sicurezza - puoi usarla per recuperare l'accesso ai messaggi cifrati se dimentichi la password di ripristino.", + "Unable to query secret storage status": "Impossibile rilevare lo stato dell'archivio segreto", + "Confirm recovery passphrase": "Conferma la password di ripristino", + "We'll store an encrypted copy of your keys on our server. Secure your backup with a recovery passphrase.": "Salveremo una copia cifrata delle tue chiavi sul nostro server. Proteggi il tuo backup con una password di ripristino.", + "Enter a recovery passphrase...": "Inserisci una password di ripristino...", + "Please enter your recovery passphrase a second time to confirm.": "Inserisci di nuovo la password di ripristino per confermarla.", + "Repeat your recovery passphrase...": "Ripeti la password di ripristino...", + "Secure your backup with a recovery passphrase": "Proteggi il backup con una password di ripristino", + "Currently indexing: %(currentRoom)s": "Attualmente si indicizzano: %(currentRoom)s" } From 7d89c385facdaa7859a9a665266dea36e7d943b2 Mon Sep 17 00:00:00 2001 From: rkfg Date: Tue, 21 Apr 2020 13:02:32 +0000 Subject: [PATCH 085/162] Translated using Weblate (Russian) Currently translated at 91.0% (2087 of 2294 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 | 55 +++++++++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 12 deletions(-) diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index f0e8b44678..24fd434155 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -993,7 +993,7 @@ "Verified!": "Верифицировано!", "You've successfully verified this user.": "Вы успешно верифицировали этого пользователя.", "Got It": "Понятно", - "Verify this user by confirming the following number appears on their screen.": "Верифицируйте пользователя, убедившись, что на его экране отображается следующее число.", + "Verify this user by confirming the following number appears on their screen.": "Подтвердите пользователя, убедившись, что на его экране отображается следующее число.", "Yes": "Да", "No": "Нет", "Email Address": "Адрес электронной почты", @@ -1058,7 +1058,7 @@ "Legal": "Законный", "Room avatar": "Аватар комнаты", "The following users may not exist": "Следующих пользователей может не существовать", - "Invite anyway and never warn me again": "Тем не менее пригласить и больше не предупреждать", + "Invite anyway and never warn me again": "Пригласить и больше не предупреждать", "Before submitting logs, you must create a GitHub issue to describe your problem.": "Перед отправкой логов необходимо создать GitHub issue, для описания проблемы.", "Incompatible Database": "Несовместимая база данных", "Continue With Encryption Disabled": "Продолжить с отключенным шифрованием", @@ -1278,7 +1278,7 @@ "Sign In": "Войти", "You were kicked from %(roomName)s by %(memberName)s": "Вы были выгнаны %(memberName)s из %(roomName)s", "Reason: %(reason)s": "Причина: %(reason)s", - "Forget this room": "Забудь эту комнату", + "Forget this room": "Забыть эту комнату", "Re-join": "Пере-присоединение", "You were banned from %(roomName)s by %(memberName)s": "Вы были забанены %(memberName)s с %(roomName)s", "Something went wrong with your invite to %(roomName)s": "Что-то пошло не так с вашим приглашением в %(roomName)s", @@ -1350,9 +1350,9 @@ "Missing session data": "Отсутствуют данные сессии", "Some session data, including encrypted message keys, is missing. Sign out and sign in to fix this, restoring keys from backup.": "Отсутствуют некоторые данные сессии, в том числе ключи шифрования сообщений. Выйдите и войдите, чтобы восстановить ключи из резервной копии.", "Your browser likely removed this data when running low on disk space.": "Вероятно, ваш браузер удалил эти данные, когда на дисковом пространстве оставалось мало места.", - "Upload files (%(current)s of %(total)s)": "Загрузка файлов %(current)s от %(total)s", + "Upload files (%(current)s of %(total)s)": "Загрузка файлов (%(current)s из %(total)s)", "Upload files": "Загрузка файлов", - "Upload": "Загрузка", + "Upload": "Загрузить", "This file is too large to upload. The file size limit is %(limit)s but this file is %(sizeOfThisFile)s.": "Этот файл слишком большой для загрузки. Лимит размера файла составляет %(limit)s но этот файл %(sizeOfThisFile)s.", "These files are too large to upload. The file size limit is %(limit)s.": "Эти файлы слишком большие для загрузки. Лимит размера файла составляет %(limit)s.", "Some files are too large to be uploaded. The file size limit is %(limit)s.": "Некоторые файлы имеют слишком большой размер, чтобы их можно было загрузить. Лимит размера файла составляет %(limit)s.", @@ -1730,7 +1730,7 @@ "Sessions": "Сессии", "Direct Messages": "Диалоги", "%(count)s sessions|other": "%(count)s сессий", - "Hide sessions": "Скрытые сессии", + "Hide sessions": "Скрыть сессии", "Enable 'Manage Integrations' in Settings to do this.": "Включите «Управление интеграциями» в настройках, чтобы сделать это.", "Unknown sessions": "Неизвестные сессии", "Help": "Помощь", @@ -2054,8 +2054,8 @@ "%(displayName)s cancelled verification.": "%(displayName)s отменил(а) подтверждение.", "Encryption not enabled": "Шифрование не включено", "The encryption used by this room isn't supported.": "Шифрование этой комнаты не поддерживается.", - "You verified %(name)s": "Вы подтвердили", - "You cancelled verifying %(name)s": "Вы отменили подтверждение", + "You verified %(name)s": "Вы подтвердили %(name)s", + "You cancelled verifying %(name)s": "Вы отменили подтверждение %(name)s", "You accepted": "Вы приняли", "%(name)s accepted": "%(name)s принял(а)", "You declined": "Вы отказали", @@ -2067,7 +2067,7 @@ "%(name)s wants to verify": "%(name)s желает подтвердить", "You sent a verification request": "Вы отправили запрос подтверждения", "Reactions": "Реакции", - " reacted with %(content)s": " отреагировал(а)", + " reacted with %(content)s": " отреагировал(а) с %(content)s", "Your display name": "Отображаемое имя", "Your avatar URL": "Ссылка на ваш аватар", "One of the following may be compromised:": "Что-то из этого может быть скомпрометировано:", @@ -2081,7 +2081,7 @@ "Room ID": "ID комнаты", "Widget ID": "ID виджета", "Widget added by": "Виджет добавлен", - "This widget may use cookies.": "Этот виджет может использовать куки", + "This widget may use cookies.": "Этот виджет может использовать куки.", "More options": "Дополнительные параметры", "Language Dropdown": "Список языков", "Enter a server name": "Введите имя сервера", @@ -2102,7 +2102,7 @@ "Verify session": "Подтвердить сессию", "Session name": "Название сессии", "Session key": "Ключ сессии", - "Backup key stored in secret storage, but this feature is not enabled on this session. Please enable cross-signing in Labs to modify key backup state.": "Резервная копия ключа сохранена в хранилище секретов", + "Backup key stored in secret storage, but this feature is not enabled on this session. Please enable cross-signing in Labs to modify key backup state.": "Резервная копия ключа сохранена в хранилище секретов, но эта возможность не включена в этой сессии. Разрешите кросс-подпись в Лаборатории, чтобы изменить состояние резервной копии.", "Backup key stored: ": "Резервная копия ключа сохранена: ", "Command failed": "Не удалось выполнить команду", "To report a Matrix-related security issue, please read the Matrix.org Security Disclosure Policy.": "Чтобы сообщить о проблеме безопасности Matrix, пожалуйста, прочитайте Политику раскрытия информации Matrix.org.", @@ -2113,5 +2113,36 @@ "Enter a recovery passphrase": "Введите пароль восстановления", "Enter your recovery passphrase a second time to confirm it.": "Введите пароль восстановления ещё раз для подтверждения.", "Enter a recovery passphrase...": "Введите пароль восстановления...", - "Please enter your recovery passphrase a second time to confirm.": "Введите пароль восстановления повторно для подтверждения." + "Please enter your recovery passphrase a second time to confirm.": "Введите пароль восстановления повторно для подтверждения.", + "If you cancel now, you won't complete your operation.": "Если вы отмените операцию сейчас, она не завершится.", + "Failed to set topic": "Не удалось установить тему", + "Could not find user in room": "Не удалось найти пользователя в комнате", + "Please supply a widget URL or embed code": "Укажите URL или код вставки виджета", + "Send a bug report with logs": "Отправить отчёт об ошибке с логами", + "Enable cross-signing to verify per-user instead of per-session": "Разрешить кросс-подпись для подтверждения пользователей вместо отдельных сессий", + "Keep recovery passphrase in memory for this session": "Сохранить пароль восстановления в памяти для этой сессии", + "Individually verify each session used by a user to mark it as trusted, not trusting cross-signed devices.": "Отдельно подтверждать каждую сессию пользователя как доверенную, не доверяя кросс-подписанным устройствам.", + "Securely cache encrypted messages locally for them to appear in search results, using ": "Безопасно кэшировать шифрованные сообщения локально, чтобы они появлялись в результатах поиска с помощью ", + " to store messages from ": " чтобы сохранить сообщения от ", + "Securely cache encrypted messages locally for them to appear in search results.": "Безопасно кэшировать шифрованные сообщения локально, чтобы они появлялись в результатах поиска.", + "Riot is missing some components required for securely caching encrypted messages locally. If you'd like to experiment with this feature, build a custom Riot Desktop with search components added.": "Отсутствуют некоторые необходимые компоненты для Riot, чтобы безопасно кэшировать шифрованные сообщения локально. Если вы хотите попробовать эту возможность, соберите самостоятельно Riot Desktop с добавлением поисковых компонентов.", + "not stored": "не сохранено", + "Backup has a valid signature from this session": "У резервной копии верная подпись этой сессии", + "Backup has an invalid signature from this session": "У резервной копии неверная подпись этой сессии", + "Backup has a valid signature from verified session ": "У резервной копии вернаяподпись проверенной сессии ", + "Backup has a valid signature from unverified session ": "У резервной копии вернаяподпись непроверенной сессии ", + "Backup has an invalid signature from verified session ": "У резервной копии невернаяподпись проверенной сессии ", + "Backup has an invalid signature from unverified session ": "У резервной копии неверная подпись непроверенной сессии ", + "Your password was successfully changed. You will not receive push notifications on other sessions until you log back in to them": "Ваш пароль был успешно изменён. Вы не будете получать уведомления в других сессия, пока вы не войдёте в них", + "Add users and servers you want to ignore here. Use asterisks to have Riot match any characters. For example, @bot:* would ignore all users that have the name 'bot' on any server.": "Добавьте пользователей и серверы, которых вы хотите игнорировать. Используйте звёздочки для совпадения с любыми символами. Например, @bot:* приведёт к игнорированию всех пользователей на любом сервере, у которых есть 'bot' в имени.", + "This room is bridging messages to the following platforms. Learn more.": "Эта комната пересылает сообщения с помощью моста на следующие платформы. Подробнее", + "This room isn’t bridging messages to any platforms. Learn more.": "Эта комната не пересылает никуда сообщения с помощью моста. Подробнее", + "Your key share request has been sent - please check your other sessions for key share requests.": "Запрос ключа был отправлен - проверьте другие ваши сессии на предмет таких запросов.", + "If your other sessions do not have the key for this message you will not be able to decrypt them.": "Вы не сможете расшифровать это сообщение в других сессиях, если у них нет ключа для него.", + "No sessions with registered encryption keys": "Нет сессий с зарегистрированными ключами шифрования", + "For extra security, verify this user by checking a one-time code on both of your devices.": "Для дополнительной безопасности подтвердите этого пользователя, сравнив одноразовый код на ваших устройствах.", + "%(role)s in %(roomName)s": "%(role)sв %(roomName)s", + "Start verification again from their profile.": "Начните подтверждение заново в профиле пользователя.", + "Messages in this room are end-to-end encrypted. Learn more & verify this user in their user profile.": "Сообщения в этой комнате зашифрованы сквозным шифрованием. Посмотрите подробности и подтвердите пользователя в его профиле.", + "Send a Direct Message": "Отправить сообщение" } From 7364a7bf525f01544dee65316064aa421d2f1b9f Mon Sep 17 00:00:00 2001 From: Besnik Bleta Date: Wed, 22 Apr 2020 14:33:55 +0000 Subject: [PATCH 086/162] Translated using Weblate (Albanian) Currently translated at 99.3% (2278 of 2294 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/sq/ --- src/i18n/strings/sq.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/sq.json b/src/i18n/strings/sq.json index 49f28b9129..7e94977f63 100644 --- a/src/i18n/strings/sq.json +++ b/src/i18n/strings/sq.json @@ -976,7 +976,7 @@ "Set up Secure Message Recovery": "Rregulloni Rimarrje të Sigurt Mesazhesh", "Keep it safe": "Mbajeni të parrezikuar", "Create Key Backup": "Krijo Kopjeruajtje Kyçesh", - "Unable to create key backup": "S’arrihet të krijojhet kopjeruajtje kyçesh", + "Unable to create key backup": "S’arrihet të krijohet kopjeruajtje kyçesh", "Retry": "Riprovo", "Unable to load backup status": "S’arrihet të ngarkohet gjendje kopjeruajtjeje", "Unable to restore backup": "S’arrihet të rikthehet kopjeruajtje", From a97a3cea5196d811535ca76fe797c97808f24e14 Mon Sep 17 00:00:00 2001 From: Sergey Shpikin Date: Thu, 23 Apr 2020 10:47:08 +0300 Subject: [PATCH 087/162] Make avatars in pills occupy the entire space using cropping Signed-off-by: Sergey Shpikin --- src/editor/parts.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/editor/parts.js b/src/editor/parts.js index 747b491a9e..acd27ac219 100644 --- a/src/editor/parts.js +++ b/src/editor/parts.js @@ -252,7 +252,11 @@ class RoomPillPart extends PillPart { setAvatar(node) { let initialLetter = ""; - let avatarUrl = Avatar.avatarUrlForRoom(this._room, 16 * window.devicePixelRatio, 16 * window.devicePixelRatio); + let avatarUrl = Avatar.avatarUrlForRoom( + this._room, + 16 * window.devicePixelRatio, + 16 * window.devicePixelRatio, + "crop"); if (!avatarUrl) { initialLetter = Avatar.getInitialLetter(this._room ? this._room.name : this.resourceId); avatarUrl = `../../${Avatar.defaultAvatarUrlForString(this._room ? this._room.roomId : this.resourceId)}`; @@ -290,7 +294,8 @@ class UserPillPart extends PillPart { let avatarUrl = Avatar.avatarUrlForMember( this._member, 16 * window.devicePixelRatio, - 16 * window.devicePixelRatio); + 16 * window.devicePixelRatio, + "crop"); let initialLetter = ""; if (avatarUrl === defaultAvatarUrl) { // the url from defaultAvatarUrlForString is meant to go in an img element, From 486ce3ae9103ec9c28e94cdca5ab6cb6f6e3dfc2 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Thu, 23 Apr 2020 03:08:50 +0000 Subject: [PATCH 088/162] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (2296 of 2296 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/zh_Hant/ --- src/i18n/strings/zh_Hant.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 2a34e8140f..b2e6c35e71 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -2397,5 +2397,10 @@ "Currently indexing: %(currentRoom)s": "目前正在建立索引:%(currentRoom)s", "Send a bug report with logs": "傳送有紀錄檔的臭蟲回報", "Please supply a widget URL or embed code": "請提供小工具 URL 或嵌入程式碼", - "Unable to query secret storage status": "無法查詢秘密儲存空間狀態" + "Unable to query secret storage status": "無法查詢秘密儲存空間狀態", + "Verify this login": "驗證此登入", + "Confirm your identity by verifying this login from one of your other sessions, granting it access to encrypted messages.": "透過驗證這個從您的其他工作階段而來的登入來確認您的身份,並授予其對加密訊息的存取權限。", + "This requires the latest Riot on your other devices:": "這需要在您的其他裝置上使用最新的 Riot:", + "or another cross-signing capable Matrix client": "或另一個有交叉簽章功能的 Matrix 客戶端", + "Use Recovery Passphrase or Key": "使用復原通關密語或金鑰" } From 9b66ae614a57fa6da9babb4deefcefd25cbc3248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20C?= Date: Thu, 23 Apr 2020 06:28:42 +0000 Subject: [PATCH 089/162] Translated using Weblate (French) Currently translated at 100.0% (2296 of 2296 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 6ea4755dee..a7b09ea8ac 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -2398,5 +2398,10 @@ "Currently indexing: %(currentRoom)s": "En train d’indexer : %(currentRoom)s", "Please supply a widget URL or embed code": "Veuillez fournir l’URL ou le code d’intégration du widget", "Send a bug report with logs": "Envoyer un rapport d’anomalie avec les journaux", - "Unable to query secret storage status": "Impossible de demander le statut du coffre secret" + "Unable to query secret storage status": "Impossible de demander le statut du coffre secret", + "Verify this login": "Vérifier cette connexion", + "Confirm your identity by verifying this login from one of your other sessions, granting it access to encrypted messages.": "Confirmez votre identité en vérifiant cette connexion depuis une de vos autres sessions, cela lui permettra d’avoir accès aux messages chiffrés.", + "This requires the latest Riot on your other devices:": "Ceci nécessite la dernière version de Riot sur vos autres appareils :", + "or another cross-signing capable Matrix client": "ou un autre client Matrix compatible avec la signature croisée", + "Use Recovery Passphrase or Key": "Utiliser la phrase secrète ou la clé de récupération" } From 970d3403187f51a71d42ad0b312e3499ad72de08 Mon Sep 17 00:00:00 2001 From: random Date: Thu, 23 Apr 2020 08:21:21 +0000 Subject: [PATCH 090/162] Translated using Weblate (Italian) Currently translated at 100.0% (2296 of 2296 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/it/ --- src/i18n/strings/it.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index 3b7ae2e00f..78020c7bb8 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -2395,5 +2395,10 @@ "Please enter your recovery passphrase a second time to confirm.": "Inserisci di nuovo la password di ripristino per confermarla.", "Repeat your recovery passphrase...": "Ripeti la password di ripristino...", "Secure your backup with a recovery passphrase": "Proteggi il backup con una password di ripristino", - "Currently indexing: %(currentRoom)s": "Attualmente si indicizzano: %(currentRoom)s" + "Currently indexing: %(currentRoom)s": "Attualmente si indicizzano: %(currentRoom)s", + "Verify this login": "Verifica questo accesso", + "Confirm your identity by verifying this login from one of your other sessions, granting it access to encrypted messages.": "Conferma la tua identità verificando questo accesso da una delle tue altre sessioni, dandogli l'accesso ai messaggi cifrati.", + "This requires the latest Riot on your other devices:": "È richiesta l'ultima versione di Riot sui tuoi altri dispositivi:", + "or another cross-signing capable Matrix client": "o un altro client Matrix che supporti la firma incrociata", + "Use Recovery Passphrase or Key": "Usa la password di ripristino o la chiave" } From 18176cdc5b4b39fca738b9597391a1766d52659e Mon Sep 17 00:00:00 2001 From: Tirifto Date: Thu, 23 Apr 2020 13:10:20 +0000 Subject: [PATCH 091/162] Translated using Weblate (Esperanto) Currently translated at 96.3% (2209 of 2295 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/eo/ --- src/i18n/strings/eo.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json index 582b635ee1..42a6ed52ca 100644 --- a/src/i18n/strings/eo.json +++ b/src/i18n/strings/eo.json @@ -2289,5 +2289,10 @@ "In encrypted rooms, verify all users to ensure it’s secure.": "En ĉifritaj ĉambroj, kontroli ĉiujn uzantojn por certigi, ke ili sekuras.", "Verified": "Kontrolita", "Verification cancelled": "Kontrolo nuliĝis", - "Compare emoji": "Kompari bildsignojn" + "Compare emoji": "Kompari bildsignojn", + "Use Single Sign On to continue": "Daŭrigi per ununura saluto", + "Confirm adding this email address by using Single Sign On to prove your identity.": "Konfirmi aldonon de ĉi tiu retpoŝtadreso, uzante ununuran saluton por pruvi vian identecon.", + "Single Sign On": "Ununura saluto", + "Confirm adding email": "Konfirmi aldonon de retpoŝtadreso", + "Click the button below to confirm adding this email address.": "Klaku la ĉi-suban butonon por konfirmi aldonon de ĉi tiu retpoŝtadreso." } From 90dcfe0b017fbfff7af4c6aab0d1b3bc30fa518c Mon Sep 17 00:00:00 2001 From: Szimszon Date: Thu, 23 Apr 2020 14:13:58 +0000 Subject: [PATCH 092/162] Translated using Weblate (Hungarian) Currently translated at 99.8% (2290 of 2295 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 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 3cff0a013e..e215afd6a3 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -2388,5 +2388,7 @@ "Repeat your recovery passphrase...": "Ismételd meg a visszaállítási jelmondatot…", "Secure your backup with a recovery passphrase": "Védd a mentést a visszaállítási jelmondattal", "Currently indexing: %(currentRoom)s": "Indexelés alatt: %(currentRoom)s", - "Send a bug report with logs": "Hibajelentés beküldése naplóval" + "Send a bug report with logs": "Hibajelentés beküldése naplóval", + "Please supply a widget URL or embed code": "Add meg a kisalkalmazás URL-jét vagy a beágyazott kódot", + "Verify this login": "Belépés ellenőrzése" } From f768b23b384ea3412f8b339fdaf296d5c19e46ec Mon Sep 17 00:00:00 2001 From: Szimszon Date: Thu, 23 Apr 2020 14:19:23 +0000 Subject: [PATCH 093/162] Translated using Weblate (Hungarian) Currently translated at 100.0% (2295 of 2295 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 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index e215afd6a3..b1db06fa4b 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -2390,5 +2390,10 @@ "Currently indexing: %(currentRoom)s": "Indexelés alatt: %(currentRoom)s", "Send a bug report with logs": "Hibajelentés beküldése naplóval", "Please supply a widget URL or embed code": "Add meg a kisalkalmazás URL-jét vagy a beágyazott kódot", - "Verify this login": "Belépés ellenőrzése" + "Verify this login": "Belépés ellenőrzése", + "Confirm your identity by verifying this login from one of your other sessions, granting it access to encrypted messages.": "Erősítsd meg ebben a bejelentkezésben a személyazonosságodat egy másik munkamenetből, hogy hozzáférhess a titkosított üzenetekhez.", + "This requires the latest Riot on your other devices:": "A Riot legújabb kliensére van ehhez szükséged a többi eszközödön:", + "or another cross-signing capable Matrix client": "vagy másik eszközök közötti hitelesítésre alkalmas Matrix kliensre", + "Use Recovery Passphrase or Key": "Használd a Visszaállítási Jelmondatot vagy Kulcsot", + "Unable to query secret storage status": "A biztonsági tároló állapotát nem lehet lekérdezni" } From 5af3d83cc7781bb5be0d61ffc4fa20579611bd23 Mon Sep 17 00:00:00 2001 From: "J. Ryan Stinnett" Date: Thu, 23 Apr 2020 18:14:30 +0100 Subject: [PATCH 094/162] Fix recovery link on login verification flow This fixes the recovery link to go to the right place. Fixes https://github.com/vector-im/riot-web/issues/13346 --- src/components/structures/auth/SetupEncryptionBody.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/structures/auth/SetupEncryptionBody.js b/src/components/structures/auth/SetupEncryptionBody.js index 13fa270a9c..26534c6e02 100644 --- a/src/components/structures/auth/SetupEncryptionBody.js +++ b/src/components/structures/auth/SetupEncryptionBody.js @@ -131,7 +131,7 @@ export default class SetupEncryptionBody extends React.Component {
- + {_t("Use Recovery Passphrase or Key")} From efaf4fbbda17198a14e0c0d9c86f53142e1d89ca Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Thu, 23 Apr 2020 15:22:54 -0600 Subject: [PATCH 095/162] Decode dollar signs in safe widget URLs before rendering/templating Fixes https://github.com/vector-im/riot-web/issues/13344 --- src/components/views/elements/AppTile.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/views/elements/AppTile.js b/src/components/views/elements/AppTile.js index 60382b5606..bf9054771c 100644 --- a/src/components/views/elements/AppTile.js +++ b/src/components/views/elements/AppTile.js @@ -636,7 +636,10 @@ export default class AppTile extends React.Component { if (ALLOWED_APP_URL_SCHEMES.includes(parsedWidgetUrl.protocol)) { safeWidgetUrl = url.format(parsedWidgetUrl); } - return safeWidgetUrl; + + // Replace all the dollar signs back to dollar signs as they don't affect HTTP at all. + // We also need the dollar signs in-tact for variable substitution. + return safeWidgetUrl.replace(/%24/g, '$'); } _getTileTitle() { From 28865e27bc30ba73b7fc1b4f4c0483a41b6b2a7e Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Thu, 23 Apr 2020 15:24:20 -0600 Subject: [PATCH 096/162] Don't overwrite the 'domain' data key for all widgets Some widgets, which aren't Jitsi widgets, might need this to be something else. --- src/components/views/elements/AppTile.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/components/views/elements/AppTile.js b/src/components/views/elements/AppTile.js index bf9054771c..366669a276 100644 --- a/src/components/views/elements/AppTile.js +++ b/src/components/views/elements/AppTile.js @@ -569,12 +569,14 @@ export default class AppTile extends React.Component { * * @returns {string} url with temlate variables replaced */ - _templatedUrl(u) { + _templatedUrl(u, widgetType: string) { + const targetData = {}; + if (WidgetType.JITSI.matches(widgetType)) { + targetData['domain'] = 'jitsi.riot.im'; // v1 jitsi widgets have this hardcoded + } const myUserId = MatrixClientPeg.get().credentials.userId; const myUser = MatrixClientPeg.get().getUser(myUserId); - const vars = Object.assign({ - domain: "jitsi.riot.im", // v1 widgets have this hardcoded - }, this.props.app.data, { + const vars = Object.assign(targetData, this.props.app.data, { 'matrix_user_id': myUserId, 'matrix_room_id': this.props.room.roomId, 'matrix_display_name': myUser ? myUser.displayName : myUserId, @@ -611,18 +613,19 @@ export default class AppTile extends React.Component { } else { url = this._getSafeUrl(this.state.widgetUrl); } - return this._templatedUrl(url); + return this._templatedUrl(url, this.props.app.type); } _getPopoutUrl() { if (WidgetType.JITSI.matches(this.props.app.type)) { return this._templatedUrl( WidgetUtils.getLocalJitsiWrapperUrl({forLocalRender: false}), + this.props.app.type ); } else { // use app.url, not state.widgetUrl, because we want the one without // the wURL params for the popped-out version. - return this._templatedUrl(this._getSafeUrl(this.props.app.url)); + return this._templatedUrl(this._getSafeUrl(this.props.app.url), this.props.app.type); } } From 50783c2432968817aead3ae6228c6a07b7436fb6 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Thu, 23 Apr 2020 23:25:53 -0600 Subject: [PATCH 097/162] Appease the linter --- src/components/views/elements/AppTile.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/views/elements/AppTile.js b/src/components/views/elements/AppTile.js index 366669a276..6a5dfc97e0 100644 --- a/src/components/views/elements/AppTile.js +++ b/src/components/views/elements/AppTile.js @@ -566,6 +566,7 @@ export default class AppTile extends React.Component { * Replace the widget template variables in a url with their values * * @param {string} u The URL with template variables + * @param {string} widgetType The widget's type * * @returns {string} url with temlate variables replaced */ @@ -620,7 +621,7 @@ export default class AppTile extends React.Component { if (WidgetType.JITSI.matches(this.props.app.type)) { return this._templatedUrl( WidgetUtils.getLocalJitsiWrapperUrl({forLocalRender: false}), - this.props.app.type + this.props.app.type, ); } else { // use app.url, not state.widgetUrl, because we want the one without From a15db97b778d458864bafca2e2dca97819262b56 Mon Sep 17 00:00:00 2001 From: Imre Kristoffer Eilertsen Date: Fri, 24 Apr 2020 02:03:01 +0000 Subject: [PATCH 098/162] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegi?= =?UTF-8?q?an=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 49.2% (1130 of 2295 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/nb_NO/ --- src/i18n/strings/nb_NO.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/nb_NO.json b/src/i18n/strings/nb_NO.json index c6772b9467..da3b56ccc5 100644 --- a/src/i18n/strings/nb_NO.json +++ b/src/i18n/strings/nb_NO.json @@ -1109,7 +1109,7 @@ "%(name)s accepted": "%(name)s aksepterte", "%(name)s declined": "%(name)s avslo", "%(name)s cancelled": "%(name)s avbrøt", - "%(name)s wants to verify": "%(name) ønsker å verifisere", + "%(name)s wants to verify": "%(name)s ønsker å verifisere", "Failed to copy": "Mislyktes i å kopiere", "Submit logs": "Send inn loggføringer", "Failed to remove widget": "Mislyktes i å fjerne modulen", From 972f9d354d2a5a671f47b4173c3600dfc950fd96 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@googlemail.com> Date: Fri, 24 Apr 2020 12:25:19 +0100 Subject: [PATCH 099/162] Revert "Update emojibase for fixed emoji codepoints and Emoji 13 support" --- package.json | 4 ++-- yarn.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 7be54d235a..67907c0d98 100644 --- a/package.json +++ b/package.json @@ -64,8 +64,8 @@ "create-react-class": "^15.6.0", "diff-dom": "^4.1.3", "diff-match-patch": "^1.0.4", - "emojibase-data": "^5.0.1", - "emojibase-regex": "^4.0.1", + "emojibase-data": "^4.0.2", + "emojibase-regex": "^3.0.0", "escape-html": "^1.0.3", "file-saver": "^1.3.3", "filesize": "3.5.6", diff --git a/yarn.lock b/yarn.lock index d92da5a76f..a47752b1f3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3077,15 +3077,15 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emojibase-data@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/emojibase-data/-/emojibase-data-5.0.1.tgz#ce6fe36b4affd3578e0be8779211018a2fdae960" - integrity sha512-rYWlogJ2q5P78U8Xx1vhsXHcYKu1wFnr7+o6z9QHssZ1SsJLTCkJINZIPHRFWuDreAUK457TkqHpdOXElu0fzA== +emojibase-data@^4.0.2: + version "4.2.1" + resolved "https://registry.yarnpkg.com/emojibase-data/-/emojibase-data-4.2.1.tgz#3d1f0c69ddbb2ca7b7014f5e34654190802a40df" + integrity sha512-O0vxoPMgVkRq/uII/gdAjz9RwNv6ClJrd3J9QCCRC4btZRmeut/qohC/Fi+NNXUcjY08RWNTvxSnq/vij8hvrw== -emojibase-regex@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/emojibase-regex/-/emojibase-regex-4.0.1.tgz#a2cd4bbb42825422da9ec72f15e970bc2c90b46a" - integrity sha512-S42UHkFfz15i4NNz+wi9iMKFo+B6Kalc6PJLpYX0BUANViXw4vSyYZMFdBGRLduSabWHuEcTLZl9xOa2YP3eJw== +emojibase-regex@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/emojibase-regex/-/emojibase-regex-3.2.1.tgz#122935958c9a49c96bb29ac69ccbbac0b2e7022d" + integrity sha512-VAX2Rc2U/alu5q6P2cET2alzC63o1Uarm6Ea/b3ab+KOzxZT4JKmB0tCU1sTZvfNKa16KMLCK2k7hJBHJq4vWQ== emojis-list@^2.0.0: version "2.1.0" From 8c414014e622a49bdeee264df0524b925b1fbb26 Mon Sep 17 00:00:00 2001 From: Michael Albert Date: Fri, 24 Apr 2020 08:10:02 +0000 Subject: [PATCH 100/162] Translated using Weblate (German) Currently translated at 77.2% (1771 of 2295 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/de/ --- src/i18n/strings/de_DE.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 87d56f915d..ee38d2f324 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1832,5 +1832,11 @@ "This bridge is managed by .": "Diese Brücke wird von verwaltet.", "Workspace: %(networkName)s": "Arbeitsbereich: %(networkName)s", "Channel: %(channelName)s": "Kanal: %(channelName)s", - "Show less": "Weniger zeigen" + "Show less": "Weniger zeigen", + "Warning: You should only do this on a trusted computer.": "Achtung: Du solltest das nur auf einem vertrauenswürdigen Gerät tun.", + "Warning: You should only set up key backup from a trusted computer.": "Achtung: Du solltest die Schlüsselsicherung nur auf einem vertrauenswürdigen Gerät einrichten.", + "Regain access to your account and recover encryption keys stored in this session. Without them, you won’t be able to read all of your secure messages in any session.": "Melde dich an um die ausschließlich in dieser Sitzung gespeicherten Verschlüsselungsschlüssel wiederherzustellen. Du benötigst sie, um deine verschlüsselten Nachrichten in jeder Sitzung zu lesen.", + "Forgotten your password?": "Passwort vergessen?", + "You're signed out": "Du wurdest abgemeldet", + "Warning: Your personal data (including encryption keys) is still stored in this session. Clear it if you're finished using this session, or want to sign in to another account.": "Achtung: Deine persönlichen Daten (inclusive der Verschlüsselungsschlüssel) sind noch in dieser Sitzung gespeichert. Lösche diese Daten wenn du die Sitzung nicht mehr benötigst oder dich mit einem anderen Konto anmelden möchtest." } From bbce37b92f8c1684e0427d6afa096e58e9e9061d Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 24 Apr 2020 15:39:54 +0100 Subject: [PATCH 101/162] Make icon change in SetupEncryptionDialog Fixes https://github.com/vector-im/riot-web/issues/13368 --- .../views/dialogs/SetupEncryptionDialog.js | 49 ++++++++++++++++--- 1 file changed, 41 insertions(+), 8 deletions(-) diff --git a/src/components/views/dialogs/SetupEncryptionDialog.js b/src/components/views/dialogs/SetupEncryptionDialog.js index f32a289a29..71b7574551 100644 --- a/src/components/views/dialogs/SetupEncryptionDialog.js +++ b/src/components/views/dialogs/SetupEncryptionDialog.js @@ -14,16 +14,49 @@ See the License for the specific language governing permissions and limitations under the License. */ +import React from 'react'; +import PropTypes from 'prop-types'; import SetupEncryptionBody from '../../structures/auth/SetupEncryptionBody'; import BaseDialog from './BaseDialog'; import { _t } from '../../../languageHandler'; +import { SetupEncryptionStore, PHASE_DONE } from '../../../stores/SetupEncryptionStore'; -export default function SetupEncryptionDialog({onFinished}) { - return - - ; +function iconFromPhase(phase) { + if (phase === PHASE_DONE) { + return require("../../../../res/img/e2e/verified.svg"); + } else { + return require("../../../../res/img/e2e/warning.svg"); + } +} + +export default class SetupEncryptionDialog extends React.Component { + static propTypes = { + onFinished: PropTypes.func.isRequired, + }; + + constructor() { + super(); + + this.store = SetupEncryptionStore.sharedInstance(); + this.store.on("update", this._onStoreUpdate); + this.state = {icon: iconFromPhase(this.store.phase)}; + } + + componentWillUnmount() { + this.store.removeListener("update", this._onStoreUpdate); + } + + _onStoreUpdate = () => { + this.setState({icon: iconFromPhase(this.store.phase)}); + }; + + render() { + return + + ; + } } From a1e174d8b89b79c35e1d5f705194476841bdb907 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 24 Apr 2020 15:58:28 +0100 Subject: [PATCH 102/162] Fix incorrect toast if security setup skipped DevieListener didn't wait for the user's device list to be downloaded so it would think the user didn't have cross-signing set up. Also clear the rest of the state on stop(). Fixes https://github.com/vector-im/riot-web/issues/13372 --- src/DeviceListener.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/DeviceListener.js b/src/DeviceListener.js index 4ec2ec0fa0..41f249b335 100644 --- a/src/DeviceListener.js +++ b/src/DeviceListener.js @@ -66,6 +66,9 @@ export default class DeviceListener { MatrixClientPeg.get().removeListener('sync', this._onSync); } this._dismissed.clear(); + this._dismissedThisDeviceToast = false; + this._keyBackupInfo = null; + this._keyBackupFetchedAt = null; } dismissVerification(deviceId) { @@ -146,6 +149,8 @@ export default class DeviceListener { ToastStore.sharedInstance().dismissToast(THIS_DEVICE_TOAST_KEY); } else { if (!crossSigningReady) { + // make sure our keys are finished downlaoding + await cli.downloadKeys([cli.getUserId()]); // cross signing isn't enabled - nag to enable it // There are 3 different toasts for: if (cli.getStoredCrossSigningForUser(cli.getUserId())) { From 117322b3b5e60a1f74298d71bdb9561e7a6a76e1 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Fri, 24 Apr 2020 10:01:00 -0600 Subject: [PATCH 103/162] Remove invite only padlocks feature flag Fixes https://github.com/vector-im/riot-web/issues/13366 Only known issue on this is https://github.com/vector-im/riot-web/issues/12148 This has been pre-approved by Product. --- src/components/views/rooms/InviteOnlyIcon.js | 5 ----- src/i18n/strings/en_EN.json | 1 - src/settings/Settings.js | 6 ------ 3 files changed, 12 deletions(-) diff --git a/src/components/views/rooms/InviteOnlyIcon.js b/src/components/views/rooms/InviteOnlyIcon.js index acaa12303b..b02f9843d9 100644 --- a/src/components/views/rooms/InviteOnlyIcon.js +++ b/src/components/views/rooms/InviteOnlyIcon.js @@ -17,7 +17,6 @@ limitations under the License. import React from 'react'; import { _t } from '../../../languageHandler'; import * as sdk from '../../../index'; -import SettingsStore from '../../../settings/SettingsStore'; export default class InviteOnlyIcon extends React.Component { constructor() { @@ -39,10 +38,6 @@ export default class InviteOnlyIcon extends React.Component { render() { const classes = this.props.collapsedPanel ? "mx_InviteOnlyIcon_small": "mx_InviteOnlyIcon_large"; - if (!SettingsStore.isFeatureEnabled("feature_invite_only_padlocks")) { - return null; - } - const Tooltip = sdk.getComponent("elements.Tooltip"); let tooltip; if (this.state.hover) { diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 3eac055054..bd4c8f58c8 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -404,7 +404,6 @@ "Support adding custom themes": "Support adding custom themes", "Enable cross-signing to verify per-user instead of per-session": "Enable cross-signing to verify per-user instead of per-session", "Show info about bridges in room settings": "Show info about bridges in room settings", - "Show padlocks on invite only rooms": "Show padlocks on invite only rooms", "Enable Emoji suggestions while typing": "Enable Emoji suggestions while typing", "Use compact timeline layout": "Use compact timeline layout", "Show a placeholder for removed messages": "Show a placeholder for removed messages", diff --git a/src/settings/Settings.js b/src/settings/Settings.js index 928b1985fa..5c6d843349 100644 --- a/src/settings/Settings.js +++ b/src/settings/Settings.js @@ -158,12 +158,6 @@ export const SETTINGS = { displayName: _td("Show info about bridges in room settings"), default: false, }, - "feature_invite_only_padlocks": { - isFeature: true, - supportedLevels: LEVELS_FEATURE, - displayName: _td("Show padlocks on invite only rooms"), - default: true, - }, "MessageComposerInput.suggestEmoji": { supportedLevels: LEVELS_ACCOUNT_SETTINGS, displayName: _td('Enable Emoji suggestions while typing'), From 6460f6303cb63644a262e16384e06888a4dd3e06 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 24 Apr 2020 17:36:02 +0100 Subject: [PATCH 104/162] Move store subscribe to didmount --- src/components/views/dialogs/SetupEncryptionDialog.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/views/dialogs/SetupEncryptionDialog.js b/src/components/views/dialogs/SetupEncryptionDialog.js index 71b7574551..d7723de588 100644 --- a/src/components/views/dialogs/SetupEncryptionDialog.js +++ b/src/components/views/dialogs/SetupEncryptionDialog.js @@ -38,10 +38,13 @@ export default class SetupEncryptionDialog extends React.Component { super(); this.store = SetupEncryptionStore.sharedInstance(); - this.store.on("update", this._onStoreUpdate); this.state = {icon: iconFromPhase(this.store.phase)}; } + componentDidMount() { + this.store.on("update", this._onStoreUpdate); + } + componentWillUnmount() { this.store.removeListener("update", this._onStoreUpdate); } From 4fc8fc9d6ce885f95050d333483e2bd45f284c73 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 26 Apr 2020 12:52:17 +0100 Subject: [PATCH 105/162] cap width of editable item list item to leave space for its X remove button Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- res/css/views/elements/_EditableItemList.scss | 3 +++ 1 file changed, 3 insertions(+) diff --git a/res/css/views/elements/_EditableItemList.scss b/res/css/views/elements/_EditableItemList.scss index ef60f006cc..f089fa3dc2 100644 --- a/res/css/views/elements/_EditableItemList.scss +++ b/res/css/views/elements/_EditableItemList.scss @@ -53,6 +53,9 @@ limitations under the License. .mx_EditableItem_item { flex: auto 1 0; order: 1; + width: calc(100% - 14px); // leave space for the remove button + overflow-x: hidden; + text-overflow: ellipsis; } .mx_EditableItemList_label { From ba7b39dcc7cc891ddb0cd545adf997e995ba0d90 Mon Sep 17 00:00:00 2001 From: Txopi Date: Sun, 26 Apr 2020 16:16:29 +0000 Subject: [PATCH 106/162] Translated using Weblate (Basque) Currently translated at 100.0% (2294 of 2294 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/eu/ --- src/i18n/strings/eu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/strings/eu.json b/src/i18n/strings/eu.json index 1a1abbd9a5..184f6293cc 100644 --- a/src/i18n/strings/eu.json +++ b/src/i18n/strings/eu.json @@ -1353,7 +1353,7 @@ "Want more than a community? Get your own server": "Komunitate bat baino gehiago nahi duzu? Eskuratu zure zerbitzari propioa", "Could not load user profile": "Ezin izan da erabiltzaile-profila kargatu", "You cannot modify widgets in this room.": "Ezin dituzu gela honetako trepetak aldatu.", - "%(senderName)s revoked the invitation for %(targetDisplayName)s to join the room.": "%(senderName)s erabiltzaileak %(targetDisplayName)s geñara elkartzeko gonbidapena errefusatu du.", + "%(senderName)s revoked the invitation for %(targetDisplayName)s to join the room.": "%(senderName)s erabiltzaileak %(targetDisplayName)s gelara elkartzeko gonbidapena errefusatu du.", "Upgrade this room to the recommended room version": "Bertsio-berritu gela hau aholkatutako bertsiora", "Upgrading this room will shut down the current instance of the room and create an upgraded room with the same name.": "Gela hau bertsio-berritzeak gelaren oraingo instantzia itzaliko du eta izen bereko beste gela berri bat sortuko du.", "Failed to revoke invite": "Gonbidapena indargabetzeak huts egin du", From e02d06154546f4d9fee3dcc34dd9e321dd4b36e3 Mon Sep 17 00:00:00 2001 From: Osoitz Date: Sun, 26 Apr 2020 16:54:22 +0000 Subject: [PATCH 107/162] Translated using Weblate (Basque) Currently translated at 100.0% (2294 of 2294 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/eu/ --- src/i18n/strings/eu.json | 48 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/src/i18n/strings/eu.json b/src/i18n/strings/eu.json index 184f6293cc..6548ea33d1 100644 --- a/src/i18n/strings/eu.json +++ b/src/i18n/strings/eu.json @@ -1948,7 +1948,7 @@ "Encryption upgraded": "Zifratzea eguneratuta", "Encryption setup complete": "Zifratzearen ezarpena egina", "There are unknown sessions in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "Saio ezezagunak daude gela honetan: egiaztatu gabe aurrera jarraitzen baduzu, baten batek zure deian kuxkuxeatu lezake.", - "Setting up keys": "Gakoak ezartzea", + "Setting up keys": "Gakoak ezartzen", "Verify this session": "Egiaztatu saio hau", "Encryption upgrade available": "Zifratze eguneratzea eskuragarri", "Unverified session": "Egiaztatu gabeko saioa", @@ -1978,7 +1978,7 @@ "Channel: %(channelName)s": "Kanala: %(channelName)s", "Show less": "Erakutsi gutxiago", "Changing password will currently reset any end-to-end encryption keys on all sessions, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Pasahitza aldatzean oraingo muturretik muturrerako zifratze gako guztiak ezeztatuko ditu saio guztietan, zifratutako txaten historiala ezin izango da irakurri ez badituzu aurretik zure geletako gakoak esportatzen eta gero berriro inportatzen. Etorkizunean hau hobetuko da.", - "Your account has a cross-signing identity in secret storage, but it is not yet trusted by this session.": "Zure kontua zeharkako sinatze identitate bat du biltegi sekretuan, baina saio honek ez du oraindik fidagarritzat.", + "Your account has a cross-signing identity in secret storage, but it is not yet trusted by this session.": "Zure kontuak zeharkako sinatze identitate bat du biltegi sekretuan, baina saio honek ez du oraindik fidagarritzat.", "in memory": "memorian", "Your homeserver does not support session management.": "Zure hasiera-zerbitzariak ez du saio kudeaketa onartzen.", "Unable to load session list": "Ezin izan da saioen zerrenda kargatu", @@ -2343,5 +2343,47 @@ "Create a Group Chat": "Sortu talde-txata", "Self-verification request": "Auto-egiaztaketa eskaria", "Delete sessions|other": "Ezabatu saioak", - "Delete sessions|one": "Ezabatu saioa" + "Delete sessions|one": "Ezabatu saioa", + "If you cancel now, you won't complete your operation.": "Orain ezeztatzen baduzu, ez duzu eragiketa burutuko.", + "Failed to set topic": "Ezin izan da mintzagaia ezarri", + "Command failed": "Aginduak huts egin du", + "Could not find user in room": "Ezin izan da erabiltzailea gelan aurkitu", + "Please supply a widget URL or embed code": "Eman trepetaren URLa edo txertatu kodea", + "Send a bug report with logs": "Bidali akats txostena egunkariekin", + "Enable cross-signing to verify per-user instead of per-session": "Gaitu zeharkako sinadura erabiltzaileko edo saioko egiaztatzeko", + "Keep recovery passphrase in memory for this session": "Mantendu berreskuratze pasa-esaldia memorian saio honentzat", + "Can't load this message": "Ezin izan da mezu hau kargatu", + "Submit logs": "Bidali egunkariak", + "Reminder: Your browser is unsupported, so your experience may be unpredictable.": "Oroigarria: Ez dugu zure nabigatzailearentzako euskarririk, ezin da zure esperientzia nolakoa izango den aurreikusi.", + "Unable to upload": "Ezin izan da igo", + "Verify other session": "Egiaztatu beste saioa", + "Unable to access secret storage. Please verify that you entered the correct recovery passphrase.": "Ezin izan da biltegi sekretura sartu. Egiaztatu berreskuratze pasa-esaldi zuzena sartu duzula.", + "Warning: You should only do this on a trusted computer.": "Abisua:: Hau fidagarritzat jotzen duzun ordenagailu batetik egin beharko zenuke beti.", + "Access your secure message history and your cross-signing identity for verifying other sessions by entering your recovery passphrase.": "Atzitu zure mezu seguruen historiala eta zeharkako sinatzerako identitatea beste saioak egiaztatzeko zure berreskuratze pasa-esaldia sartuz.", + "If you've forgotten your recovery passphrase you can use your recovery key or set up new recovery options.": "Zure berreskuratze pasa-esaldia ahaztu baduzu berreskuratze-gakoa erabili dezakezu edo berreskuratze aukera berriak ezarri ditzakezu.", + "Backup could not be decrypted with this recovery key: please verify that you entered the correct recovery key.": "Ezin izan da babes-kopia deszifratu berreskuratze-gako honekin: egiaztatu berreskuratze-gako egokia sartu duzula.", + "Backup could not be decrypted with this recovery passphrase: please verify that you entered the correct recovery passphrase.": "Ezin izan da babes-kopia deszifratu berreskuratze pasa-esaldi honekin: egiaztatu berreskuratze berreskuratze pasa-esaldia ondo idatzi duzula.", + "Verify this login": "Egiaztatu saio hau", + "Syncing...": "Sinkronizatzen…", + "Signing In...": "Saioa hasten...", + "If you've joined lots of rooms, this might take a while": "Gela askotara elkartu bazara, honek denbora behar lezake", + "Confirm your identity by verifying this login from one of your other sessions, granting it access to encrypted messages.": "Baieztatu zure identitatea saio hau zure beste saio batetik egiaztatuz, mezu zifratuetara sarbidea emanez.", + "This requires the latest Riot on your other devices:": "Honek zure beste gailuetan azken Riot bertsioa eskatzen du:", + "or another cross-signing capable Matrix client": "edo zeharkako sinadurarako gai den beste Matrix bezero bat", + "Use Recovery Passphrase or Key": "Erabili berreskuratze pasa-esaldia edo gakoa", + "Great! This recovery passphrase looks strong enough.": "Bikain! Berreskuratze pasa-esaldi hau sendoa dirudi.", + "Set a recovery passphrase to secure encrypted information and recover it if you log out. This should be different to your account password:": "Ezarri berreskuratze pasa-esaldia zifratutako informazioa babesteko eta, saioa amaitzekotan, berreskuratzeko. Hau ez luke zure kontuaren pasahitzaren berdina izan behar:", + "Enter a recovery passphrase": "Sartu berreskuratze pasa-esaldia", + "Back up encrypted message keys": "Egin zifratutako mezuen gakoen babes-kopia", + "Enter your recovery passphrase a second time to confirm it.": "Sartu zure berreskuratze pasa-esaldia berriro baieztatzeko.", + "Confirm your recovery passphrase": "Berretsi berreskuratze pasa-esaldia", + "Your recovery key is a safety net - you can use it to restore access to your encrypted messages if you forget your recovery passphrase.": "Zure berreskuratze-gakoa badaezpadakoa da, pasa-esaldia ahazten baduzu zure zifratutako mezuak berreskuratzeko erabili dezakezu.", + "Unable to query secret storage status": "Ezin izan da biltegi sekretuaren egoera kontsultatu", + "Confirm recovery passphrase": "Berretsi berreskuratze pasa-esaldia", + "We'll store an encrypted copy of your keys on our server. Secure your backup with a recovery passphrase.": "Zure gakoen kopia zifratu bat gordeko dugu gure zerbitzarian. Babestu zure babes-kopia berreskuratze pasa-esaldi batekin.", + "Enter a recovery passphrase...": "Sartu berreskuratze pasa-esaldia...", + "Please enter your recovery passphrase a second time to confirm.": "Sartu zure berreskuratze pasa-esaldia berriro baieztatzeko.", + "Repeat your recovery passphrase...": "Errepikatu zure berreskuratze pasa-esaldia...", + "Secure your backup with a recovery passphrase": "Babestu zure babeskopia berreskuratze pasa-esaldi batekin", + "Currently indexing: %(currentRoom)s": "Orain indexatzen: %(currentRoom)s" } From 6de03f425d8806bbf264b018ff855db396abb995 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanislav=20Luke=C5=A1?= Date: Sat, 25 Apr 2020 11:08:28 +0000 Subject: [PATCH 108/162] Translated using Weblate (Czech) Currently translated at 93.8% (2152 of 2294 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/cs/ --- src/i18n/strings/cs.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json index a3314dd920..52c90cc3d7 100644 --- a/src/i18n/strings/cs.json +++ b/src/i18n/strings/cs.json @@ -1406,7 +1406,7 @@ "Error updating flair": "Nepovedlo se změnit příslušnost ke skupině", "There was an error updating the flair for this room. The server may not allow it or a temporary error occurred.": "Pro tuto místnost se nepovedlo změnit příslušnost ke skupině. Možná to server neumožňuje, nebo došlo k dočasné chybě.", "reacted with %(shortName)s": "Uživatel reagoval s %(shortName)s", - "edited": "pozměněno", + "edited": "upraveno", "Maximize apps": "Maximalizovat aplikace", "Rotate Left": "Otočit doleva", "Rotate counter-clockwise": "Otočit proti směru hodinových ručiček", @@ -1550,7 +1550,7 @@ "Show advanced": "Zobrazit pokročilé možnosti", "Block users on other matrix homeservers from joining this room (This setting cannot be changed later!)": "Zamezit uživatelům jiných domovských serverů, aby do místnosti vstoupili (nelze později změnit!)", "Your homeserver doesn't seem to support this feature.": "Váš domovský server asi tuto funkci nepodporuje.", - "Message edits": "Editování zpráv", + "Message edits": "Úpravy zpráv", "Please fill why you're reporting.": "Vyplňte prosím co chcete nahlásit.", "Report Content to Your Homeserver Administrator": "Nahlásit obsah správci vašeho domovského serveru", "Reporting this message will send its unique 'event ID' to the administrator of your homeserver. If messages in this room are encrypted, your homeserver administrator will not be able to read the message text or view any files or images.": "Nahlášení této zprávy pošle její jedinečné 'event ID' správci vašeho domovského serveru. Pokud jsou zprávy šifrované, správce nebude mít možnost přečíst text zprávy ani se podívat na soubory nebo obrázky.", @@ -1645,7 +1645,7 @@ "%(name)s wants to verify": "%(name)s chce ověřit", "You sent a verification request": "Poslali jste požadavek na ověření", "Show all": "Zobrazit vše", - "Edited at %(date)s. Click to view edits.": "Pozměněno v %(date)s. Klinutím zobrazíte změny.", + "Edited at %(date)s. Click to view edits.": "Upraveno v %(date)s. Klinutím zobrazíte změny.", "Frequently Used": "Často používané", "Smileys & People": "Obličeje & Lidé", "Animals & Nature": "Zvířata & Příroda", From 2babe9cde2a6227cb8c89473b3f7fbb0a2e95c05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Priit=20J=C3=B5er=C3=BC=C3=BCt?= Date: Sat, 25 Apr 2020 22:28:10 +0000 Subject: [PATCH 109/162] Translated using Weblate (Estonian) Currently translated at 6.4% (146 of 2294 strings) Translation: Riot Web/matrix-react-sdk Translate-URL: https://translate.riot.im/projects/riot-web/matrix-react-sdk/et/ --- src/i18n/strings/et.json | 149 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 148 insertions(+), 1 deletion(-) diff --git a/src/i18n/strings/et.json b/src/i18n/strings/et.json index 0967ef424b..5d60c1c5d9 100644 --- a/src/i18n/strings/et.json +++ b/src/i18n/strings/et.json @@ -1 +1,148 @@ -{} +{ + "This email address is already in use": "See e-posti aadress on juba kasutusel", + "This phone number is already in use": "See telefoninumber on juba kasutusel", + "Confirm": "Kinnita", + "Add Email Address": "Lisa e-posti aadress", + "Failed to verify email address: make sure you clicked the link in the email": "E-posti aadressi kontrollimine ei õnnestunud: palun vaata, et sa kindlasti klõpsisid saabunud kirjas olnud viidet", + "The platform you're on": "Sinu kasutatav arvutisüsteem", + "The version of Riot": "Riot'i versioon", + "Whether or not you're logged in (we don't record your username)": "Kas sa oled sisseloginud või mitte (me ei salvesta sinu kasutajanime)", + "Your language of choice": "Sinu keelevalik", + "Your homeserver's URL": "Sinu koduserveri aadress", + "e.g. ": "näiteks ", + "Your user agent": "Sinu kasutajaagent", + "Your device resolution": "Sinu seadme resolutsioon", + "Analytics": "Analüütika", + "The information being sent to us to help make Riot better includes:": "Riot'i arendamiseks meile saadetava info hulgas on:", + "Error": "Viga", + "Unable to load! Check your network connectivity and try again.": "Laadimine ei õnnestunud! Kontrolli oma võrguühendust ja proovi uuesti.", + "Dismiss": "Loobu", + "Call Failed": "Kõne ebaõnnestus", + "There are unknown sessions in this room: if you proceed without verifying them, it will be possible for someone to eavesdrop on your call.": "Selles jututoas on teadmata sessioone: kui sa jätkad ilma nende verifitseerimiseta, siis kolmas osapool võib kuulata seda kõnet pealt.", + "Review Sessions": "Vaata sessioonid üle", + "Call Anyway": "Helista ikkagi", + "Answer Anyway": "Vasta ikkagi", + "Call": "Helista", + "Answer": "Vasta", + "Call Timeout": "Kõne aegumine", + "The remote side failed to pick up": "Teine osapool ei võtnud kõnet vastu", + "Call failed due to misconfigured server": "Kõne ebaõnnestus valesti seadistatud serveri tõttu", + "Cancel": "Loobu", + "Send anyway": "Saada siiski", + "Send": "Saada", + "Jan": "jaan", + "Feb": "veeb", + "Mar": "mär", + "Apr": "apr", + "May": "mai", + "Jun": "jun", + "Jul": "jul", + "Aug": "aug", + "Sep": "sep", + "Oct": "okt", + "Nov": "nov", + "Dec": "dets", + "PM": "PL", + "AM": "EL", + "%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s", + "Verify this session": "Verifitseeri see sessioon", + "Which rooms would you like to add to this community?": "Milliseid jututubasid sooviksid lisada siia kogukonda?", + "Show these rooms to non-members on the community page and room list?": "Kas näitan neid jututubasid kogukonna lehel ja tubade loendis mitte-liikmetele?", + "Add rooms to the community": "Lisa siia kogukonda jututubasid", + "Failed to add the following rooms to %(groupId)s:": "Järgnevate jututubade lisamine %(groupId)s kogukonda ebaõnnestus:", + "Changes your avatar in all rooms": "Muuda oma tunnuspilti kõikides jututubades", + "Ask this user to verify their session, or manually verify it below.": "Palu nimetatud kasutajal verifitseerida see sessioon või tee seda alljärgnevas käsitsi.", + "Manually Verify by Text": "Verifitseeri käsitsi etteantud teksti abil", + "Interactively verify by Emoji": "Verifitseeri interaktiivselt Emoji abil", + "Enable big emoji in chat": "Kasuta vestlustes suuri emoji'sid", + "Order rooms by name": "Järjesta jututoad nime alusel", + "Show rooms with unread notifications first": "Järjesta lugemata teadetega jututoad esimesena", + "Show shortcuts to recently viewed rooms above the room list": "Näita viimati külastatud jututubade viiteid jututubade loendi kohal", + "Enable message search in encrypted rooms": "Võta kasutusele sõnumite otsing krüptitud jututubades", + "When rooms are upgraded": "Kui jututubasid uuendatakse", + "Verify this session by completing one of the following:": "Verifitseeri see sessioon täites ühe alljärgnevatest:", + "Verify this user by confirming the following emoji appear on their screen.": "Verifitseeri see kasutaja tehes kindlaks et järgnev emoji kuvatakse tema ekraanil.", + "Verify this session by confirming the following number appears on its screen.": "Verifitseeri see sessioon tehes kindlaks, et järgnev number kuvatakse tema ekraanil.", + "For help with using Riot, click here or start a chat with our bot using the button below.": "Riot'i kasutamisega seotud abiteabe otsimiseks klõpsi seda viidet või vajutades järgnevat nuppu alusta vestlust meie robotiga.", + "Chat with Riot Bot": "Vestle Riot'i robotiga", + "Start a chat": "Alusta vestlust", + "Invite to this room": "Kutsu siia jututuppa", + "Voice call": "Häälkõne", + "Video call": "Videokõne", + "Hangup": "Katkesta kõne", + "Upload file": "Lae fail üles", + "Send an encrypted reply…": "Saada krüptitud vastus…", + "Send a reply…": "Saada vastus…", + "Send an encrypted message…": "Saada krüptitud sõnum…", + "Send a message…": "Saada sõnum…", + "Send a reply (unencrypted)…": "Saada krüptimata vastus…", + "Send a message (unencrypted)…": "Saada krüpteerimata sõnum…", + "The conversation continues here.": "Vestlus jätkub siin.", + "Recent rooms": "Hiljutised jututoad", + "No rooms to show": "Ei saa kuvada ühtegi jututuba", + "Direct Messages": "Isiklikud sõnumid", + "Start chat": "Alusta vestlust", + "Rooms": "Jututoad", + "Do you want to chat with %(user)s?": "Kas sa soovid vestelda %(user)s'ga?", + " wants to chat": " soovib vestelda", + "All Rooms": "Kõik jututoad", + "In encrypted rooms, like this one, URL previews are disabled by default to ensure that your homeserver (where the previews are generated) cannot gather information about links you see in this room.": "Krüptitud jututubades, nagu see praegune, URL'ide eelvaated ei ole vaikimisi kasutusel. See tagab, et sinu koduserver (kus eelvaated luuakse) ei saaks koguda teavet viidete kohta, mida sa siin jututoas näed.", + "In encrypted rooms, your messages are secured and only you and the recipient have the unique keys to unlock them.": "Krüptitud jututubades sinu sõnumid on turvatud ning vaid sinul ja sõnumi saajal on unikaalsed võtmed nende kuvamiseks.", + "In encrypted rooms, verify all users to ensure it’s secure.": "Krüptitud jututubades turvalisuse tagamiseks verifitseeri kõik kasutajad.", + "Verification timed out.": "Verifitseerimine aegus.", + "You cancelled verification on your other session.": "Sina tühistasid verifitseerimise oma teises sessioonis.", + "%(displayName)s cancelled verification.": "%(displayName)s tühistas verifitseerimise.", + "You cancelled verification.": "Sina tühistasid verifitseerimise.", + "Verification cancelled": "Verifitseerimine tühistatud", + "Compare emoji": "Võrdle emoji'sid", + "Sunday": "Pühapäev", + "Monday": "Esmaspäev", + "Tuesday": "Teisipäev", + "Wednesday": "Kolmapäev", + "Thursday": "Neljapäev", + "Friday": "Reede", + "Saturday": "Laupäev", + "Today": "Täna", + "Yesterday": "Eile", + "View Source": "Vaata lähtekoodi", + "Encryption enabled": "Krüptimine on kasutusel", + "Add rooms to this community": "Lisa siia kogukonda jututubasid", + "Create new room": "Loo uus jututuba", + "Unblacklist": "Eemalda mustast nimekirjast", + "Blacklist": "Kanna musta nimekirja", + "Unverify": "Eemalda õigeks tunnistamine", + "Verify...": "Tunnista õigeks...", + "Join": "Liitu", + "No results": "Tulemusi pole", + "Please create a new issue on GitHub so that we can investigate this bug.": "Selle vea uurimiseks palun loo uus veateade meie GitHub'is.", + "collapse": "ahenda", + "expand": "laienda", + "Communities": "Kogukonnad", + "You cannot delete this image. (%(code)s)": "Sa ei saa seda pilti eemaldada, (%(code)s)", + "Uploaded on %(date)s by %(user)s": "Üles laetud %(date)s %(user)s poolt", + "Rotate Left": "Pööra vasakule", + "Rotate counter-clockwise": "Pööra vastupäeva", + "Rotate Right": "Pööra paremale", + "Rotate clockwise": "Pööra päripäeva", + "All rooms": "Kõik jututoad", + "Enter the name of a new server you want to explore.": "Sisesta uue serveri nimi mida tahad uurida.", + "Matrix rooms": "Matrix'i jututoad", + "Explore Room State": "Uuri jututoa olekut", + "Explore Account Data": "Uuri konto andmeid", + "Private Chat": "Privaatne vestlus", + "Public Chat": "Avalik vestlus", + "Other users can invite you to rooms using your contact details": "Teades sinu kontaktinfot võivad teised kutsuda sind osalema jututubades", + "Add rooms to the community summary": "Lisa jututoad kogukonna ülevaatesse", + "Which rooms would you like to add to this summary?": "Milliseid jututubasid sooviksid lisada sellesse ülevaatesse?", + "Failed to add the following rooms to the summary of %(groupId)s:": "Järgmiste jututubade lisamine %(groupId)s kogukonna ülevaatesse ebaõnnestus:", + "These rooms are displayed to community members on the community page. Community members can join the rooms by clicking on them.": "Neid jututubasid kuvatakse kogukonna liikmetele kogukonna lehel. Liikmed saavad nimetatud jututubadega liituda neil klõpsides.", + "Featured Rooms:": "Esiletõstetud jututoad:", + "Explore Public Rooms": "Sirvi avalikke jututubasid", + "Explore": "Uuri", + "Filter rooms…": "Filtreeri jututubasid…", + "Create a community to group together users and rooms! Build a custom homepage to mark out your space in the Matrix universe.": "Liites kokku kasutajaid ja jututubasid loo oma kogukond! Loo kogukonna koduleht, et märkida oma koht Matrix'i universumis.", + "Explore rooms": "Uuri jututubasid", + "If you've joined lots of rooms, this might take a while": "Kui oled liitunud paljude jututubadega, siis see võib natuke aega võtta", + "If disabled, messages from encrypted rooms won't appear in search results.": "Kui see seadistus pole kasutusel, siis krüptitud jututubade sõnumeid otsing ei vaata.", + "Indexed rooms:": "Indekseeritud jututoad:" +} From b0fa823c12fd28e596694ed3347b6f8b8d834d13 Mon Sep 17 00:00:00 2001 From: Michael Albert Date: Mon, 27 Apr 2020 08:04:35 +0000 Subject: [PATCH 110/162] Translated using Weblate (German) Currently translated at 77.9% (1787 of 2294 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 | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index ee38d2f324..e928282fa8 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -1795,7 +1795,7 @@ "Single Sign On": "Single Sign-On", "Confirm adding email": "Bestätige das Hinzfugen der Email-Addresse", "Confirm adding this phone number by using Single Sign On to prove your identity.": "Bestätige das Hinzufügen dieser Telefonnumer, indem du deine Identität mittels Single Sign-On nachweist.", - "Click the button below to confirm adding this phone number.": "Betätige unten die Schaltfläche um das Hinzfügen dieser Telefonnummer zu bestätigen.", + "Click the button below to confirm adding this phone number.": "Betätige unten die Schaltfläche um das Hinzufügen dieser Telefonnummer zu bestätigen.", "If you cancel now, you won't complete your operation.": "Wenn du jetzt abbrichst, wirst du deinen Vorgang nicht fertigstellen.", "%(name)s is requesting verification": "%(name)s fordert eine Verifizierung an", "Failed to set topic": "Das Festlegen des Themas ist fehlgeschlagen", @@ -1838,5 +1838,22 @@ "Regain access to your account and recover encryption keys stored in this session. Without them, you won’t be able to read all of your secure messages in any session.": "Melde dich an um die ausschließlich in dieser Sitzung gespeicherten Verschlüsselungsschlüssel wiederherzustellen. Du benötigst sie, um deine verschlüsselten Nachrichten in jeder Sitzung zu lesen.", "Forgotten your password?": "Passwort vergessen?", "You're signed out": "Du wurdest abgemeldet", - "Warning: Your personal data (including encryption keys) is still stored in this session. Clear it if you're finished using this session, or want to sign in to another account.": "Achtung: Deine persönlichen Daten (inclusive der Verschlüsselungsschlüssel) sind noch in dieser Sitzung gespeichert. Lösche diese Daten wenn du die Sitzung nicht mehr benötigst oder dich mit einem anderen Konto anmelden möchtest." + "Warning: Your personal data (including encryption keys) is still stored in this session. Clear it if you're finished using this session, or want to sign in to another account.": "Achtung: Deine persönlichen Daten (inclusive der Verschlüsselungsschlüssel) sind noch in dieser Sitzung gespeichert. Lösche diese Daten wenn du die Sitzung nicht mehr benötigst oder dich mit einem anderen Konto anmelden möchtest.", + "Confirm deleting these sessions by using Single Sign On to prove your identity.|other": "Bestätige das Löschen dieser Sitzung indem du dich mittels Single Sign-On anmeldest um deine Identität nachzuweisen.", + "Confirm deleting these sessions by using Single Sign On to prove your identity.|one": "Bestätige das Löschen dieser Sitzung indem du dich mittels Single Sign-On anmeldest um deine Identität nachzuweisen.", + "Confirm deleting these sessions": "Bestätige das Löschen dieser Sitzungen", + "Click the button below to confirm deleting these sessions.|other": "Klicke den Button um das Löschen dieser Sitzungen zu bestätigen.", + "Click the button below to confirm deleting these sessions.|one": "Klicke den Button um das Löschen dieser Sitzung zu bestätigen.", + "Clear all data in this session?": "Alle Daten dieser Sitzung löschen?", + "Clear all data": "Daten löschen", + "Confirm your account deactivation by using Single Sign On to prove your identity.": "Bestätige das Löschen deines Kontos indem du dich mittels Single Sign-On anmeldest um deine Identität nachzuweisen.", + "Confirm account deactivation": "Konto löschen bestätigen", + "Confirm your identity by entering your account password below.": "Bestätige deine Identität indem du dein Passwort unten eingibst.", + "Confirm your identity by verifying this login from one of your other sessions, granting it access to encrypted messages.": "Bestätige deine Identität indem du diesen Login von einer deiner anderen Sitzungen verifizierst um Zugriff auf deine verschlüsselten Nachrichten zu erhalten.", + "Enter your account password to confirm the upgrade:": "Gib dein Passwort ein um die Aktualisierung zu bestätigen:", + "You'll need to authenticate with the server to confirm the upgrade.": "Du musst dich am Server authentifizieren um die Aktualisierung zu bestätigen.", + "Enter your recovery passphrase a second time to confirm it.": "Gib deine Wiederherstellungspassphrase zur Bestätigung erneut ein.", + "Confirm your recovery passphrase": "Bestätige deine Wiederherstellungspassphrase", + "Confirm recovery passphrase": "Bestätige die Wiederherstellungspassphrase", + "Please enter your recovery passphrase a second time to confirm.": "Bitte gib deine Wiederherstellungspassphrase ein zweites Mal ein um sie zu bestätigen." } From 92005b15d83306d2057bc2718106b7875656a296 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Tue, 31 Mar 2020 16:02:23 +0100 Subject: [PATCH 111/162] Fix event tiles to smoothly resize with font. --- res/css/views/rooms/_EventTile.scss | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/res/css/views/rooms/_EventTile.scss b/res/css/views/rooms/_EventTile.scss index 0dc60226b8..a6cff9cfb0 100644 --- a/res/css/views/rooms/_EventTile.scss +++ b/res/css/views/rooms/_EventTile.scss @@ -114,10 +114,9 @@ limitations under the License. clear: both; position: relative; padding-left: 65px; /* left gutter */ - padding-top: 4px; - padding-bottom: 2px; + padding-top: 3px; + padding-bottom: 3px; border-radius: 4px; - min-height: 24px; line-height: $font-22px; } From e2aef3a62b3e5671dff014424656090f2d269321 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Fri, 3 Apr 2020 17:53:49 +0100 Subject: [PATCH 112/162] Fix pills. This was a hard pill to swallow --- res/css/views/elements/_RichText.scss | 35 +++++++++---------- res/css/views/rooms/_Autocomplete.scss | 9 ++--- .../views/rooms/_BasicMessageComposer.scss | 13 +++---- src/components/views/avatars/BaseAvatar.js | 22 ++++++++---- 4 files changed, 43 insertions(+), 36 deletions(-) diff --git a/res/css/views/elements/_RichText.scss b/res/css/views/elements/_RichText.scss index e01b1f8938..cb0c2eacc1 100644 --- a/res/css/views/elements/_RichText.scss +++ b/res/css/views/elements/_RichText.scss @@ -6,11 +6,14 @@ .mx_RoomPill, .mx_GroupPill, .mx_AtRoomPill { - border-radius: 16px; - display: inline-block; - height: 20px; + display: inline-flex; + align-items: center; + vertical-align: middle; + border-radius: $font-16px; + height: $font-16px; line-height: $font-20px; - padding-left: 5px; + padding-left: 0; + padding-right: 0.5em; } a.mx_Pill { @@ -19,6 +22,11 @@ a.mx_Pill { overflow: hidden; vertical-align: text-bottom; max-width: calc(100% - 1ch); + height: $font-24px; +} + +.mx_Pill { + padding: 0.3rem; } /* More specific to override `.markdown-body a` text-decoration */ @@ -31,8 +39,7 @@ a.mx_Pill { .mx_UserPill { color: $primary-fg-color; background-color: $other-user-pill-bg-color; - padding-right: 5px; -} + } .mx_UserPill_selected { background-color: $accent-color !important; @@ -45,7 +52,6 @@ a.mx_Pill { .mx_MessageComposer_input .mx_AtRoomPill { color: $accent-fg-color; background-color: $mention-user-pill-bg-color; - padding-right: 5px; } /* More specific to override `.markdown-body a` color */ @@ -55,15 +61,6 @@ a.mx_Pill { .mx_GroupPill { color: $accent-fg-color; background-color: $rte-room-pill-color; - padding-right: 5px; -} - -/* More specific to override `.markdown-body a` color */ -.mx_EventTile_content .markdown-body a.mx_GroupPill, -.mx_GroupPill { - color: $accent-fg-color; - background-color: $rte-group-pill-color; - padding-right: 5px; } .mx_EventTile_body .mx_UserPill, @@ -77,8 +74,10 @@ a.mx_Pill { .mx_GroupPill .mx_BaseAvatar, .mx_AtRoomPill .mx_BaseAvatar { position: relative; - left: -3px; - top: 2px; + display: inline-flex; + align-items: center; + border-radius: 10rem; + margin-right: 0.24rem; } .mx_Markdown_BOLD { diff --git a/res/css/views/rooms/_Autocomplete.scss b/res/css/views/rooms/_Autocomplete.scss index e5316f5a46..a4aebdb708 100644 --- a/res/css/views/rooms/_Autocomplete.scss +++ b/res/css/views/rooms/_Autocomplete.scss @@ -31,9 +31,10 @@ } .mx_Autocomplete_Completion_pill { - border-radius: 17px; - height: 34px; - padding: 0px 5px; + box-sizing: border-box; + border-radius: 2rem; + height: $font-34px; + padding: 0.4rem; display: flex; user-select: none; cursor: pointer; @@ -42,7 +43,7 @@ } .mx_Autocomplete_Completion_pill > * { - margin: 0 3px; + margin-right: 0.3rem; } /* styling for common completion elements */ diff --git a/res/css/views/rooms/_BasicMessageComposer.scss b/res/css/views/rooms/_BasicMessageComposer.scss index e9013eb7b7..e126e523a6 100644 --- a/res/css/views/rooms/_BasicMessageComposer.scss +++ b/res/css/views/rooms/_BasicMessageComposer.scss @@ -46,22 +46,19 @@ limitations under the License. &.mx_BasicMessageComposer_input_shouldShowPillAvatar { span.mx_UserPill, span.mx_RoomPill { - padding-left: 21px; position: relative; // avatar psuedo element &::before { - position: absolute; - left: 2px; - top: 2px; content: var(--avatar-letter); - width: 16px; - height: 16px; + width: $font-16px; + height: $font-16px; + margin-right: 0.24rem; background: var(--avatar-background), $avatar-bg-color; color: $avatar-initial-color; background-repeat: no-repeat; - background-size: 16px; - border-radius: 8px; + background-size: $font-16px; + border-radius: $font-16px; text-align: center; font-weight: normal; line-height: $font-16px; diff --git a/src/components/views/avatars/BaseAvatar.js b/src/components/views/avatars/BaseAvatar.js index 3e3a2e6bd9..d9336a81e7 100644 --- a/src/components/views/avatars/BaseAvatar.js +++ b/src/components/views/avatars/BaseAvatar.js @@ -164,9 +164,9 @@ export default createReactClass({ const initialLetter = AvatarLogic.getInitialLetter(name); const textNode = ( @@ -174,7 +174,11 @@ export default createReactClass({ const imgNode = ( + aria-hidden="true" + style={{ + width: width/15 + "rem", + height: height/15 + "rem" + }} /> ); if (onClick != null) { return ( @@ -202,7 +206,10 @@ export default createReactClass({ src={imageUrl} onClick={onClick} onError={this.onError} - width={width} height={height} + style={{ + width: width/15 + "rem", + height: height/15 + "rem" + }} title={title} alt="" inputRef={inputRef} {...otherProps} /> @@ -213,7 +220,10 @@ export default createReactClass({ className="mx_BaseAvatar mx_BaseAvatar_image" src={imageUrl} onError={this.onError} - width={width} height={height} + style={{ + width: width/15 + "rem", + height: height/15 + "rem" + }} title={title} alt="" ref={inputRef} {...otherProps} /> From 334f529c2660907827b2b336aad27c743b78b5cb Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Mon, 6 Apr 2020 16:23:16 +0100 Subject: [PATCH 113/162] Scale room tile heights. --- res/css/views/rooms/_RoomTile.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/css/views/rooms/_RoomTile.scss b/res/css/views/rooms/_RoomTile.scss index de018bf178..5bc7d5624d 100644 --- a/res/css/views/rooms/_RoomTile.scss +++ b/res/css/views/rooms/_RoomTile.scss @@ -20,7 +20,7 @@ limitations under the License. flex-direction: row; align-items: center; cursor: pointer; - height: 34px; + height: $font-34px; margin: 0; padding: 0 8px 0 10px; position: relative; From e03442048ce7dd42662f49ccccdbed160e18efac Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Mon, 6 Apr 2020 16:23:52 +0100 Subject: [PATCH 114/162] Scale read receipt images --- res/css/views/rooms/_EventTile.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/res/css/views/rooms/_EventTile.scss b/res/css/views/rooms/_EventTile.scss index a6cff9cfb0..77bfa85862 100644 --- a/res/css/views/rooms/_EventTile.scss +++ b/res/css/views/rooms/_EventTile.scss @@ -310,6 +310,8 @@ div.mx_EventTile_notSent.mx_EventTile_redacted .mx_UnknownBody { .mx_EventTile_readAvatars .mx_BaseAvatar { position: absolute; display: inline-block; + height: $font-14px; + width: $font-14px; } .mx_EventTile_readAvatarRemainder { From 5113723154c4e69efdc564cc80a52e63e1d0b256 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Mon, 6 Apr 2020 16:48:35 +0100 Subject: [PATCH 115/162] Fix avatar alignment for room state events --- res/css/views/rooms/_EventTile.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/css/views/rooms/_EventTile.scss b/res/css/views/rooms/_EventTile.scss index 77bfa85862..1c781eec20 100644 --- a/res/css/views/rooms/_EventTile.scss +++ b/res/css/views/rooms/_EventTile.scss @@ -45,7 +45,7 @@ limitations under the License. } .mx_EventTile.mx_EventTile_info .mx_EventTile_avatar { - top: 8px; + top: $font-8px; left: 65px; } From 3f56ed393d84122013078e5ffa609b5450397acf Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Mon, 6 Apr 2020 16:49:44 +0100 Subject: [PATCH 116/162] Use a function to convert to rem. --- src/components/views/avatars/BaseAvatar.js | 19 ++++++++++--------- src/utils/rem.js | 20 ++++++++++++++++++++ 2 files changed, 30 insertions(+), 9 deletions(-) create mode 100644 src/utils/rem.js diff --git a/src/components/views/avatars/BaseAvatar.js b/src/components/views/avatars/BaseAvatar.js index d9336a81e7..a17124b9ad 100644 --- a/src/components/views/avatars/BaseAvatar.js +++ b/src/components/views/avatars/BaseAvatar.js @@ -24,6 +24,7 @@ import * as AvatarLogic from '../../../Avatar'; import SettingsStore from "../../../settings/SettingsStore"; import AccessibleButton from '../elements/AccessibleButton'; import MatrixClientContext from "../../../contexts/MatrixClientContext"; +import toRem from "../../../utils/rem"; export default createReactClass({ displayName: 'BaseAvatar', @@ -164,9 +165,9 @@ export default createReactClass({ const initialLetter = AvatarLogic.getInitialLetter(name); const textNode = ( @@ -176,8 +177,8 @@ export default createReactClass({ alt="" title={title} onError={this.onError} aria-hidden="true" style={{ - width: width/15 + "rem", - height: height/15 + "rem" + width: toRem(width), + height: toRem(height) }} /> ); if (onClick != null) { @@ -207,8 +208,8 @@ export default createReactClass({ onClick={onClick} onError={this.onError} style={{ - width: width/15 + "rem", - height: height/15 + "rem" + width: toRem(width), + height: toRem(height) }} title={title} alt="" inputRef={inputRef} @@ -221,8 +222,8 @@ export default createReactClass({ src={imageUrl} onError={this.onError} style={{ - width: width/15 + "rem", - height: height/15 + "rem" + width: toRem(width), + height: toRem(height) }} title={title} alt="" ref={inputRef} diff --git a/src/utils/rem.js b/src/utils/rem.js new file mode 100644 index 0000000000..0ba430950c --- /dev/null +++ b/src/utils/rem.js @@ -0,0 +1,20 @@ +/* +Copyright 2020 The Matrix.org Foundation C.I.C. + +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. +*/ + +// converts a pixel value to rem. +export default function(pixel_val) { + return pixel_val / 15 + "rem" +} From ff1544b783af17e10219dc960eec3d84abf1594f Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Mon, 6 Apr 2020 16:51:07 +0100 Subject: [PATCH 117/162] Fix read receipt horizontal spacing at scale --- src/components/views/rooms/ReadReceiptMarker.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/views/rooms/ReadReceiptMarker.js b/src/components/views/rooms/ReadReceiptMarker.js index be0ca1f8d6..85d443d55a 100644 --- a/src/components/views/rooms/ReadReceiptMarker.js +++ b/src/components/views/rooms/ReadReceiptMarker.js @@ -23,6 +23,7 @@ import { _t } from '../../../languageHandler'; import {formatDate} from '../../../DateUtils'; import Velociraptor from "../../../Velociraptor"; import * as sdk from "../../../index"; +import toRem from "../../../utils/rem"; let bounce = false; try { @@ -148,7 +149,7 @@ export default createReactClass({ // start at the old height and in the old h pos startStyles.push({ top: startTopOffset+"px", - left: oldInfo.left+"px" }); + left: toRem(oldInfo.left) }); const reorderTransitionOpts = { duration: 100, @@ -181,7 +182,7 @@ export default createReactClass({ } const style = { - left: this.props.leftOffset+'px', + left: toRem(this.props.leftOffset), top: '0px', visibility: this.props.hidden ? 'hidden' : 'visible', }; From b921159da80650b05326c4784548f4f25ce7dc89 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Mon, 6 Apr 2020 17:47:12 +0100 Subject: [PATCH 118/162] Fix room header vertical alignment --- res/css/views/rooms/_RoomHeader.scss | 2 -- 1 file changed, 2 deletions(-) diff --git a/res/css/views/rooms/_RoomHeader.scss b/res/css/views/rooms/_RoomHeader.scss index 969106c9ea..80f6c40f39 100644 --- a/res/css/views/rooms/_RoomHeader.scss +++ b/res/css/views/rooms/_RoomHeader.scss @@ -173,8 +173,6 @@ limitations under the License. .mx_RoomHeader_avatar { flex: 0; - width: 28px; - height: 28px; margin: 0 7px; position: relative; } From cef6868f0225b5340b2e82e5cddc6d811752bfb4 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Mon, 6 Apr 2020 20:52:36 +0100 Subject: [PATCH 119/162] Resize room list scroll section. This fix isn't perfect. Currently the scroll view is slightly smaller than the list of rooms. I think it has something to do with the how the heigh is calculate in js, considering it has some assumptions about the height of each bar and the padding. However room items are the only things which change with respect to the root value. Therefore the item list is actually taller than the computed pixel value of the list converted to rems. I'll look into it. --- src/components/structures/RoomSubList.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/structures/RoomSubList.js b/src/components/structures/RoomSubList.js index 2ae2d71100..1e3e15b4ec 100644 --- a/src/components/structures/RoomSubList.js +++ b/src/components/structures/RoomSubList.js @@ -32,6 +32,7 @@ import RoomTile from "../views/rooms/RoomTile"; import LazyRenderList from "../views/elements/LazyRenderList"; import {_t} from "../../languageHandler"; import {RovingTabIndexWrapper} from "../../accessibility/RovingTabIndex"; +import toRem from "../../utils/rem"; // turn this on for drop & drag console debugging galore const debug = false; @@ -383,7 +384,7 @@ export default class RoomSubList extends React.PureComponent { setHeight = (height) => { if (this._subList.current) { - this._subList.current.style.height = `${height}px`; + this._subList.current.style.height = toRem(height); } this._updateLazyRenderHeight(height); }; From f59bd538b4446a3f309f6951e942f4f3954a254a Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Tue, 7 Apr 2020 14:21:21 +0100 Subject: [PATCH 120/162] Resize toggle switches with font --- res/css/views/elements/_ToggleSwitch.scss | 34 +++++++++++------------ 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/res/css/views/elements/_ToggleSwitch.scss b/res/css/views/elements/_ToggleSwitch.scss index 1f4445b88c..9a07e01978 100644 --- a/res/css/views/elements/_ToggleSwitch.scss +++ b/res/css/views/elements/_ToggleSwitch.scss @@ -16,12 +16,19 @@ limitations under the License. .mx_ToggleSwitch { transition: background-color 0.20s ease-out 0.1s; - width: 48px; - height: 24px; - border-radius: 14px; + + width: $font-48px; + height: $font-20px; + border-radius: 1.5rem; + padding: 2px; + background-color: $togglesw-off-color; - position: relative; opacity: 0.5; + + display: flex; + flex-direction: row; + flex: 0 0 auto; + align-items: center; } .mx_ToggleSwitch_enabled { @@ -35,19 +42,12 @@ limitations under the License. .mx_ToggleSwitch_ball { transition: left 0.15s ease-out 0.1s; - margin: 2px; - width: 20px; - height: 20px; - border-radius: 20px; + width: $font-20px; + height: $font-20px; + border-radius: $font-20px; background-color: $togglesw-ball-color; - position: absolute; - top: 0; } -.mx_ToggleSwitch_on > .mx_ToggleSwitch_ball { - left: 23px; // 48px switch - 20px ball - 5px padding = 23px -} - -.mx_ToggleSwitch:not(.mx_ToggleSwitch_on) > .mx_ToggleSwitch_ball { - left: 2px; -} +.mx_ToggleSwitch_on { + flex-direction: row-reverse; +} \ No newline at end of file From 633c6f6b5ebdac7b8c2d4c2f23983f5444b6216e Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Tue, 7 Apr 2020 15:07:34 +0100 Subject: [PATCH 121/162] Fix settings when scaling up --- res/css/views/elements/_ToggleSwitch.scss | 2 +- res/css/views/settings/tabs/_SettingsTab.scss | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/res/css/views/elements/_ToggleSwitch.scss b/res/css/views/elements/_ToggleSwitch.scss index 9a07e01978..073bf5c00b 100644 --- a/res/css/views/elements/_ToggleSwitch.scss +++ b/res/css/views/elements/_ToggleSwitch.scss @@ -17,7 +17,7 @@ limitations under the License. .mx_ToggleSwitch { transition: background-color 0.20s ease-out 0.1s; - width: $font-48px; + width: $font-44px; height: $font-20px; border-radius: 1.5rem; padding: 2px; diff --git a/res/css/views/settings/tabs/_SettingsTab.scss b/res/css/views/settings/tabs/_SettingsTab.scss index 1fbfb35927..e3a61e6825 100644 --- a/res/css/views/settings/tabs/_SettingsTab.scss +++ b/res/css/views/settings/tabs/_SettingsTab.scss @@ -63,7 +63,7 @@ limitations under the License. display: inline-block; font-size: $font-14px; color: $primary-fg-color; - max-width: calc(100% - 48px); // Force word wrap instead of colliding with the switch + max-width: calc(100% - $font-48px); // Force word wrap instead of colliding with the switch box-sizing: border-box; padding-right: 10px; } From 0fe0d728f1a329a6584025f5b5c2c23161a70ba1 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Tue, 7 Apr 2020 15:23:19 +0100 Subject: [PATCH 122/162] lint --- res/css/views/elements/_RichText.scss | 2 +- res/css/views/elements/_ToggleSwitch.scss | 4 ++-- src/utils/rem.js | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/res/css/views/elements/_RichText.scss b/res/css/views/elements/_RichText.scss index cb0c2eacc1..21d01fdd51 100644 --- a/res/css/views/elements/_RichText.scss +++ b/res/css/views/elements/_RichText.scss @@ -39,7 +39,7 @@ a.mx_Pill { .mx_UserPill { color: $primary-fg-color; background-color: $other-user-pill-bg-color; - } +} .mx_UserPill_selected { background-color: $accent-color !important; diff --git a/res/css/views/elements/_ToggleSwitch.scss b/res/css/views/elements/_ToggleSwitch.scss index 073bf5c00b..7c65fbc90d 100644 --- a/res/css/views/elements/_ToggleSwitch.scss +++ b/res/css/views/elements/_ToggleSwitch.scss @@ -21,7 +21,7 @@ limitations under the License. height: $font-20px; border-radius: 1.5rem; padding: 2px; - + background-color: $togglesw-off-color; opacity: 0.5; @@ -50,4 +50,4 @@ limitations under the License. .mx_ToggleSwitch_on { flex-direction: row-reverse; -} \ No newline at end of file +} diff --git a/src/utils/rem.js b/src/utils/rem.js index 0ba430950c..1f18c9de05 100644 --- a/src/utils/rem.js +++ b/src/utils/rem.js @@ -15,6 +15,6 @@ limitations under the License. */ // converts a pixel value to rem. -export default function(pixel_val) { - return pixel_val / 15 + "rem" +export default function(pixelVal) { + return pixelVal / 15 + "rem"; } From aac90e4eb15363e49ab86c79e9d85d7063d26368 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Tue, 7 Apr 2020 15:41:41 +0100 Subject: [PATCH 123/162] Room memebers avatars scale --- res/css/views/rooms/_EntityTile.scss | 2 -- 1 file changed, 2 deletions(-) diff --git a/res/css/views/rooms/_EntityTile.scss b/res/css/views/rooms/_EntityTile.scss index 966d2c4e70..8db71f297c 100644 --- a/res/css/views/rooms/_EntityTile.scss +++ b/res/css/views/rooms/_EntityTile.scss @@ -69,8 +69,6 @@ limitations under the License. padding-right: 12px; padding-top: 4px; padding-bottom: 4px; - width: 36px; - height: 36px; position: relative; } From 969f0e9e0d762a6da8a96cbfcd710654ec66168b Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Tue, 7 Apr 2020 16:08:59 +0100 Subject: [PATCH 124/162] Commuity seleciton bar vertical alignment scale fix --- res/css/structures/_TagPanel.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/res/css/structures/_TagPanel.scss b/res/css/structures/_TagPanel.scss index 0065ffa502..f5c4c4c698 100644 --- a/res/css/structures/_TagPanel.scss +++ b/res/css/structures/_TagPanel.scss @@ -110,13 +110,13 @@ limitations under the License. .mx_TagPanel .mx_TagTile.mx_TagTile_selected::before { content: ''; - height: 56px; + height: calc(100% + 16px); background-color: $accent-color; width: 5px; position: absolute; left: -15px; border-radius: 0 3px 3px 0; - top: -8px; // (56 - 40)/2 + top: -8px; // (16px / 2) } .mx_TagPanel .mx_TagTile.mx_AccessibleButton:focus { From 997fe62e5c7402c91999b599722cbbe157cf3c33 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Tue, 7 Apr 2020 16:27:26 +0100 Subject: [PATCH 125/162] FIx lanugage selection alignment at scale. --- res/css/views/elements/_Dropdown.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/res/css/views/elements/_Dropdown.scss b/res/css/views/elements/_Dropdown.scss index 32a68d5252..dd8511cc42 100644 --- a/res/css/views/elements/_Dropdown.scss +++ b/res/css/views/elements/_Dropdown.scss @@ -67,6 +67,8 @@ limitations under the License. text-overflow: ellipsis; white-space: nowrap; flex: 1; + display: inline-flex; + align-items: center; } .mx_Dropdown_option div { From 18db25f601606e34fbf26d2728aa16b02c84d1e8 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Tue, 7 Apr 2020 17:13:09 +0100 Subject: [PATCH 126/162] Fix test --- test/components/views/messages/TextualBody-test.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/components/views/messages/TextualBody-test.js b/test/components/views/messages/TextualBody-test.js index 4ad46586ae..7801995254 100644 --- a/test/components/views/messages/TextualBody-test.js +++ b/test/components/views/messages/TextualBody-test.js @@ -206,7 +206,8 @@ describe("", () => { 'Hey ' + '' + 'Member' + + 'style=\"width: 1.0666666666666667rem; height: 1.0666666666666667rem;\" ' + + 'title="@member:domain.bla" alt="" aria-hidden="true">Member' + ''); }); }); From fd25170c57977168142dd5b436aa300ffd4083b9 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Tue, 7 Apr 2020 17:23:07 +0100 Subject: [PATCH 127/162] lint test --- test/components/views/messages/TextualBody-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/components/views/messages/TextualBody-test.js b/test/components/views/messages/TextualBody-test.js index 7801995254..59671327ce 100644 --- a/test/components/views/messages/TextualBody-test.js +++ b/test/components/views/messages/TextualBody-test.js @@ -206,7 +206,7 @@ describe("", () => { 'Hey ' + '' + 'Member' + ''); }); From 352ae555f8ad91fe07302a5303154832fbf35bb7 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Tue, 7 Apr 2020 17:41:18 +0100 Subject: [PATCH 128/162] Fix community line height --- res/css/structures/_TagPanel.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/css/structures/_TagPanel.scss b/res/css/structures/_TagPanel.scss index f5c4c4c698..4a78c8df92 100644 --- a/res/css/structures/_TagPanel.scss +++ b/res/css/structures/_TagPanel.scss @@ -69,7 +69,7 @@ limitations under the License. height: 100%; } .mx_TagPanel .mx_TagPanel_tagTileContainer > div { - height: 40px; + height: $font-40px; padding: 10px 0 9px 0; } From 6338325d5cdb7e59044db957475be37f281f9af3 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Tue, 14 Apr 2020 16:35:38 +0100 Subject: [PATCH 129/162] Use rem instead of em. --- res/css/views/elements/_RichText.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/css/views/elements/_RichText.scss b/res/css/views/elements/_RichText.scss index 21d01fdd51..d46d07e82b 100644 --- a/res/css/views/elements/_RichText.scss +++ b/res/css/views/elements/_RichText.scss @@ -13,7 +13,7 @@ height: $font-16px; line-height: $font-20px; padding-left: 0; - padding-right: 0.5em; + padding-right: 0.5rem; } a.mx_Pill { From c7c94933eee593ebd8124681a1f41291e0c1e71c Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Tue, 14 Apr 2020 16:45:21 +0100 Subject: [PATCH 130/162] Use font-variable instead of rem --- res/css/_font-sizes.scss | 7 +++++++ res/css/views/elements/_RichText.scss | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/res/css/_font-sizes.scss b/res/css/_font-sizes.scss index ad9e2e7103..b37b2eb3c2 100644 --- a/res/css/_font-sizes.scss +++ b/res/css/_font-sizes.scss @@ -14,6 +14,13 @@ See the License for the specific language governing permissions and limitations under the License. */ +$font-1px: 0.067rem; +$font-2px: 0.133rem; +$font-3px: 0.200rem; +$font-4px: 0.267rem; +$font-5px: 0.333rem; +$font-6px: 0.400rem; +$font-7px: 0.467rem; $font-8px: 0.533rem; $font-9px: 0.600rem; $font-10px: 0.667rem; diff --git a/res/css/views/elements/_RichText.scss b/res/css/views/elements/_RichText.scss index d46d07e82b..5b5759b794 100644 --- a/res/css/views/elements/_RichText.scss +++ b/res/css/views/elements/_RichText.scss @@ -26,7 +26,7 @@ a.mx_Pill { } .mx_Pill { - padding: 0.3rem; + padding: $font-5px; } /* More specific to override `.markdown-body a` text-decoration */ From 5dc7703740cb7256ec0ec0dcd4046bab5a482b23 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Tue, 14 Apr 2020 17:07:59 +0100 Subject: [PATCH 131/162] Undo superfluous delete --- res/css/views/elements/_RichText.scss | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/res/css/views/elements/_RichText.scss b/res/css/views/elements/_RichText.scss index 5b5759b794..b933b1b828 100644 --- a/res/css/views/elements/_RichText.scss +++ b/res/css/views/elements/_RichText.scss @@ -29,6 +29,13 @@ a.mx_Pill { padding: $font-5px; } +/* More specific to override `.markdown-body a` color */ +.mx_EventTile_content .markdown-body a.mx_GroupPill, +.mx_GroupPill { + color: $accent-fg-color; + background-color: $rte-group-pill-color; +} + /* More specific to override `.markdown-body a` text-decoration */ .mx_EventTile_content .markdown-body a.mx_Pill { text-decoration: none; From a0b610c576f7902d384519ce7f1160da38eaee42 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Tue, 14 Apr 2020 17:32:24 +0100 Subject: [PATCH 132/162] Skinnier pills are easier to swallow --- res/css/views/elements/_RichText.scss | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/res/css/views/elements/_RichText.scss b/res/css/views/elements/_RichText.scss index b933b1b828..1fa04595f9 100644 --- a/res/css/views/elements/_RichText.scss +++ b/res/css/views/elements/_RichText.scss @@ -10,10 +10,9 @@ align-items: center; vertical-align: middle; border-radius: $font-16px; - height: $font-16px; - line-height: $font-20px; + line-height: $font-15px; padding-left: 0; - padding-right: 0.5rem; + padding-right: $font-5px; } a.mx_Pill { @@ -22,11 +21,10 @@ a.mx_Pill { overflow: hidden; vertical-align: text-bottom; max-width: calc(100% - 1ch); - height: $font-24px; } .mx_Pill { - padding: $font-5px; + padding: $font-1px; } /* More specific to override `.markdown-body a` color */ From 41fd9ee015b049473ff48811c6b231d3cb434010 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Thu, 16 Apr 2020 19:15:34 +0100 Subject: [PATCH 133/162] FIx unread count --- res/css/structures/_RoomSubList.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/css/structures/_RoomSubList.scss b/res/css/structures/_RoomSubList.scss index 2e0c94263e..2c53258b08 100644 --- a/res/css/structures/_RoomSubList.scss +++ b/res/css/structures/_RoomSubList.scss @@ -74,7 +74,7 @@ limitations under the License. .mx_RoomSubList_badge > div { flex: 0 0 auto; - border-radius: 8px; + border-radius: $font-16px; font-weight: 600; font-size: $font-12px; padding: 0 5px; From 7502c2d9d178f234ad1505419583744050be46e8 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Thu, 16 Apr 2020 20:12:53 +0100 Subject: [PATCH 134/162] Scale user photo upload with font size --- res/css/_font-sizes.scss | 1 + res/css/views/settings/_AvatarSetting.scss | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/res/css/_font-sizes.scss b/res/css/_font-sizes.scss index b37b2eb3c2..5cd19ce620 100644 --- a/res/css/_font-sizes.scss +++ b/res/css/_font-sizes.scss @@ -67,4 +67,5 @@ $font-49px: 3.267rem; $font-50px: 3.333rem; $font-51px: 3.400rem; $font-52px: 3.467rem; +$font-88px: 5.887rem; $font-400px: 26.667rem; diff --git a/res/css/views/settings/_AvatarSetting.scss b/res/css/views/settings/_AvatarSetting.scss index 35dba90f85..9fa10907b4 100644 --- a/res/css/views/settings/_AvatarSetting.scss +++ b/res/css/views/settings/_AvatarSetting.scss @@ -15,13 +15,13 @@ limitations under the License. */ .mx_AvatarSetting_avatar { - width: 88px; - height: 88px; + width: $font-88px; + height: $font-88px; margin-left: 13px; position: relative; & > * { - width: 88px; + width: $font-88px; box-sizing: border-box; } @@ -63,7 +63,7 @@ limitations under the License. & > img, .mx_AvatarSetting_avatarPlaceholder { display: block; - height: 88px; + height: $font-88px; border-radius: 4px; } From c3ba7a8c91e90edebf0d1e908186ff96ce4f3543 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Thu, 16 Apr 2020 20:13:13 +0100 Subject: [PATCH 135/162] Tweak read receipt remainder text --- src/components/views/rooms/EventTile.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/views/rooms/EventTile.js b/src/components/views/rooms/EventTile.js index f67877373e..af14f6922c 100644 --- a/src/components/views/rooms/EventTile.js +++ b/src/components/views/rooms/EventTile.js @@ -34,6 +34,7 @@ import {ALL_RULE_TYPES} from "../../../mjolnir/BanList"; import * as ObjectUtils from "../../../ObjectUtils"; import MatrixClientContext from "../../../contexts/MatrixClientContext"; import {E2E_STATE} from "./E2EIcon"; +import torem from "../../../utils/rem"; const eventTileTypes = { 'm.room.message': 'messages.MessageEvent', @@ -473,7 +474,7 @@ export default createReactClass({ if (remainder > 0) { remText = { remainder }+ + style={{ right: "calc(" + torem(-left) + " + " + receiptOffset + "px)" }}>{ remainder }+ ; } } From 669562b90cbce4df756324a52bdeca0e81e42236 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Tue, 21 Apr 2020 15:49:19 +0100 Subject: [PATCH 136/162] Extra right padding in user pills --- res/css/views/elements/_RichText.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/res/css/views/elements/_RichText.scss b/res/css/views/elements/_RichText.scss index 1fa04595f9..b45b567db7 100644 --- a/res/css/views/elements/_RichText.scss +++ b/res/css/views/elements/_RichText.scss @@ -25,6 +25,7 @@ a.mx_Pill { .mx_Pill { padding: $font-1px; + padding-right: $font-6px; } /* More specific to override `.markdown-body a` color */ From a772d959a71161fda8903de0c0ce477a0bca77a5 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Mon, 27 Apr 2020 11:09:03 +0100 Subject: [PATCH 137/162] Remove redundent padding property and use em --- res/css/views/elements/_RichText.scss | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/res/css/views/elements/_RichText.scss b/res/css/views/elements/_RichText.scss index b45b567db7..453cf4c7f9 100644 --- a/res/css/views/elements/_RichText.scss +++ b/res/css/views/elements/_RichText.scss @@ -12,7 +12,6 @@ border-radius: $font-16px; line-height: $font-15px; padding-left: 0; - padding-right: $font-5px; } a.mx_Pill { @@ -25,7 +24,7 @@ a.mx_Pill { .mx_Pill { padding: $font-1px; - padding-right: $font-6px; + padding-right: 0.4em; } /* More specific to override `.markdown-body a` color */ From b4dcd50d5656593bfa6d94347b7047b472b02ca0 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Mon, 27 Apr 2020 11:13:19 +0100 Subject: [PATCH 138/162] Use camel case on import --- src/components/views/rooms/EventTile.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/views/rooms/EventTile.js b/src/components/views/rooms/EventTile.js index af14f6922c..a64fd82eb5 100644 --- a/src/components/views/rooms/EventTile.js +++ b/src/components/views/rooms/EventTile.js @@ -34,7 +34,7 @@ import {ALL_RULE_TYPES} from "../../../mjolnir/BanList"; import * as ObjectUtils from "../../../ObjectUtils"; import MatrixClientContext from "../../../contexts/MatrixClientContext"; import {E2E_STATE} from "./E2EIcon"; -import torem from "../../../utils/rem"; +import toRem from "../../../utils/rem"; const eventTileTypes = { 'm.room.message': 'messages.MessageEvent', @@ -474,7 +474,7 @@ export default createReactClass({ if (remainder > 0) { remText = { remainder }+ + style={{ right: "calc(" + toRem(-left) + " + " + receiptOffset + "px)" }}>{ remainder }+ ; } } From ca0cede1aa51219fa952fc2e93fa4dc4739ddb79 Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 27 Apr 2020 14:25:47 +0100 Subject: [PATCH 139/162] Add a link from settings / devices to your user profile Temporarily until you can verify devices in settings Fixes https://github.com/vector-im/riot-web/issues/13401 --- src/components/views/dialogs/UserSettingsDialog.js | 2 +- .../settings/tabs/user/SecurityUserSettingsTab.js | 12 ++++++++++++ src/i18n/strings/en_EN.json | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/components/views/dialogs/UserSettingsDialog.js b/src/components/views/dialogs/UserSettingsDialog.js index b135d5f5f6..210773c524 100644 --- a/src/components/views/dialogs/UserSettingsDialog.js +++ b/src/components/views/dialogs/UserSettingsDialog.js @@ -89,7 +89,7 @@ export default class UserSettingsDialog extends React.Component { tabs.push(new Tab( _td("Security & Privacy"), "mx_UserSettingsDialog_securityIcon", - , + , )); if (SdkConfig.get()['showLabsSettings'] || SettingsStore.getLabsFeatures().length > 0) { tabs.push(new Tab( diff --git a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js index 2a2bbbdb52..8c158b7799 100644 --- a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js +++ b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js @@ -52,6 +52,10 @@ export class IgnoredUser extends React.Component { } export default class SecurityUserSettingsTab extends React.Component { + static propTypes = { + closeSettingsFn: PropTypes.func.isRequired, + }; + constructor() { super(); @@ -107,6 +111,11 @@ export default class SecurityUserSettingsTab extends React.Component { ); }; + _onGoToUserProfileClick = () => { + // close the settings dialog & let the default action run (ie. navigate to the link) + this.props.closeSettingsFn(); + } + _onUserUnignored = async (userId) => { const {ignoredUserIds, waitingUnignored} = this.state; const currentlyIgnoredUserIds = ignoredUserIds.filter(e => !waitingUnignored.includes(e)); @@ -311,6 +320,9 @@ export default class SecurityUserSettingsTab extends React.Component { return (
{_t("Security & Privacy")}
+ + {_t("Verify your devices in your User Profile")} +
{_t("Sessions")}
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index bd4c8f58c8..bee1b1a732 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -845,6 +845,7 @@ "Message search": "Message search", "Cross-signing": "Cross-signing", "Security & Privacy": "Security & Privacy", + "Verify your devices in your User Profile": "Verify your devices in your User Profile", "Sessions": "Sessions", "A session's public name is visible to people you communicate with": "A session's public name is visible to people you communicate with", "Riot collects anonymous analytics to allow us to improve the application.": "Riot collects anonymous analytics to allow us to improve the application.", From 03d89361cd45a87a6c7ed22612e33e7b50d42b09 Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 27 Apr 2020 14:35:32 +0100 Subject: [PATCH 140/162] Update to (almost) match design --- .../tabs/user/SecurityUserSettingsTab.js | 16 ++++++++++++---- src/i18n/strings/en_EN.json | 4 +++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js index 8c158b7799..4c7378de53 100644 --- a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js +++ b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js @@ -320,11 +320,19 @@ export default class SecurityUserSettingsTab extends React.Component { return (
{_t("Security & Privacy")}
- - {_t("Verify your devices in your User Profile")} -
- {_t("Sessions")} + {_t("Where you’re logged in")} + + {_t( + "Manage the names of and sign out of your sessions below or " + + "verify them in your User Profile.", {}, + { + a: sub => {sub} + } + )} +
{_t("A session's public name is visible to people you communicate with")} diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index bee1b1a732..30a796429c 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -845,8 +845,9 @@ "Message search": "Message search", "Cross-signing": "Cross-signing", "Security & Privacy": "Security & Privacy", + "Where you’re logged in": "Where you’re logged in", + "Manage the names of and sign out of your sessions below or verify them in your User Profile.": "Manage the names of and sign out of your sessions below or verify them in your User Profile.", "Verify your devices in your User Profile": "Verify your devices in your User Profile", - "Sessions": "Sessions", "A session's public name is visible to people you communicate with": "A session's public name is visible to people you communicate with", "Riot collects anonymous analytics to allow us to improve the application.": "Riot collects anonymous analytics to allow us to improve the application.", "Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.": "Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.", @@ -1031,6 +1032,7 @@ "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.": "You will not be able to undo this change as you are promoting the user to have the same power level as yourself.", "Are you sure?": "Are you sure?", "No sessions with registered encryption keys": "No sessions with registered encryption keys", + "Sessions": "Sessions", "Jump to read receipt": "Jump to read receipt", "Mention": "Mention", "Invite": "Invite", From 4e38b63b82f87a73eb91749a6d219cd0cc94b7c2 Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 27 Apr 2020 14:38:22 +0100 Subject: [PATCH 141/162] Update i18n --- src/i18n/strings/en_EN.json | 1 - 1 file changed, 1 deletion(-) diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 30a796429c..4655ea1f14 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -847,7 +847,6 @@ "Security & Privacy": "Security & Privacy", "Where you’re logged in": "Where you’re logged in", "Manage the names of and sign out of your sessions below or verify them in your User Profile.": "Manage the names of and sign out of your sessions below or verify them in your User Profile.", - "Verify your devices in your User Profile": "Verify your devices in your User Profile", "A session's public name is visible to people you communicate with": "A session's public name is visible to people you communicate with", "Riot collects anonymous analytics to allow us to improve the application.": "Riot collects anonymous analytics to allow us to improve the application.", "Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.": "Privacy is important to us, so we don't collect any personal or identifiable data for our analytics.", From 5d4aa03c8e9421fae9232e2aa7dd5e6ab5f6bd58 Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 27 Apr 2020 14:43:17 +0100 Subject: [PATCH 142/162] Lint --- .../views/settings/tabs/user/SecurityUserSettingsTab.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js index 4c7378de53..1a74bbdf93 100644 --- a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js +++ b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js @@ -329,8 +329,8 @@ export default class SecurityUserSettingsTab extends React.Component { { a: sub => {sub} - } + >{sub}, + }, )}
From 2f68f608c5dc58c187c4c7f16a28f4c96b4864ff Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Mon, 27 Apr 2020 17:30:28 +0200 Subject: [PATCH 143/162] add 15pct value of accent color for FormButton backgrounds so the button in the toasts has the correct background color --- res/themes/light-custom/css/_custom.scss | 1 + src/theme.js | 1 + 2 files changed, 2 insertions(+) diff --git a/res/themes/light-custom/css/_custom.scss b/res/themes/light-custom/css/_custom.scss index e4a08277f9..505fc3733b 100644 --- a/res/themes/light-custom/css/_custom.scss +++ b/res/themes/light-custom/css/_custom.scss @@ -17,6 +17,7 @@ limitations under the License. // // --accent-color $accent-color: var(--accent-color); +$accent-bg-color: var(--accent-color-15pct); $button-bg-color: var(--accent-color); $button-link-fg-color: var(--accent-color); $button-primary-bg-color: var(--accent-color); diff --git a/src/theme.js b/src/theme.js index 442a89e25f..6bd81cc021 100644 --- a/src/theme.js +++ b/src/theme.js @@ -148,6 +148,7 @@ function setCustomThemeVars(customTheme) { style.setProperty(`--${name}`, hexColor); // uses #rrggbbaa to define the color with alpha values at 0% and 50% style.setProperty(`--${name}-0pct`, hexColor + "00"); + style.setProperty(`--${name}-15pct`, hexColor + "26"); style.setProperty(`--${name}-50pct`, hexColor + "7F"); } } From b1870660d8d9282cbd1a47e6b0a2c4e05d5dc230 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Mon, 27 Apr 2020 17:31:22 +0200 Subject: [PATCH 144/162] support theming username colors --- res/themes/light-custom/css/_custom.scss | 9 +++++++++ src/theme.js | 20 +++++++++++++++++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/res/themes/light-custom/css/_custom.scss b/res/themes/light-custom/css/_custom.scss index 505fc3733b..64c4cac7e3 100644 --- a/res/themes/light-custom/css/_custom.scss +++ b/res/themes/light-custom/css/_custom.scss @@ -125,3 +125,12 @@ $notice-primary-color: var(--warning-color); $pinned-unread-color: var(--warning-color); $warning-color: var(--warning-color); $button-danger-disabled-bg-color: var(--warning-color-50pct); // still needs alpha at 0.5 + +$username-variant1-color: var(--username-colors_1, $username-variant1-color); +$username-variant2-color: var(--username-colors_2, $username-variant2-color); +$username-variant3-color: var(--username-colors_3, $username-variant3-color); +$username-variant4-color: var(--username-colors_4, $username-variant4-color); +$username-variant5-color: var(--username-colors_5, $username-variant5-color); +$username-variant6-color: var(--username-colors_6, $username-variant6-color); +$username-variant7-color: var(--username-colors_7, $username-variant7-color); +$username-variant8-color: var(--username-colors_8, $username-variant8-color); diff --git a/src/theme.js b/src/theme.js index 6bd81cc021..b7fbe40df4 100644 --- a/src/theme.js +++ b/src/theme.js @@ -141,17 +141,31 @@ export function enumerateThemes() { return Object.assign({}, customThemeNames, BUILTIN_THEMES); } + function setCustomThemeVars(customTheme) { const {style} = document.body; - if (customTheme.colors) { - for (const [name, hexColor] of Object.entries(customTheme.colors)) { - style.setProperty(`--${name}`, hexColor); + + function setCSSVariable(name, hexColor, doPct = true) { + style.setProperty(`--${name}`, hexColor); + if (doPct) { // uses #rrggbbaa to define the color with alpha values at 0% and 50% style.setProperty(`--${name}-0pct`, hexColor + "00"); style.setProperty(`--${name}-15pct`, hexColor + "26"); style.setProperty(`--${name}-50pct`, hexColor + "7F"); } } + + if (customTheme.colors) { + for (const [name, value] of Object.entries(customTheme.colors)) { + if (Array.isArray(value)) { + for (let i = 0; i < value.length; i += 1) { + setCSSVariable(`${name}_${i}`, value[i], false); + } + } else { + setCSSVariable(name, value); + } + } + } } function getCustomTheme(themeName) { From b567b95fadf828e2c8e5038268a8664877e24d8f Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Mon, 27 Apr 2020 17:10:38 +0100 Subject: [PATCH 145/162] Lint --- src/components/views/avatars/BaseAvatar.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/components/views/avatars/BaseAvatar.js b/src/components/views/avatars/BaseAvatar.js index a17124b9ad..329d0b29a4 100644 --- a/src/components/views/avatars/BaseAvatar.js +++ b/src/components/views/avatars/BaseAvatar.js @@ -165,9 +165,11 @@ export default createReactClass({ const initialLetter = AvatarLogic.getInitialLetter(name); const textNode = ( @@ -223,7 +225,7 @@ export default createReactClass({ onError={this.onError} style={{ width: toRem(width), - height: toRem(height) + height: toRem(height), }} title={title} alt="" ref={inputRef} From c995e2e021ec20b9418e8b51ffc9d5c835e268cc Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Mon, 27 Apr 2020 17:29:03 +0100 Subject: [PATCH 146/162] Fix info avatar --- src/components/views/avatars/BaseAvatar.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/views/avatars/BaseAvatar.js b/src/components/views/avatars/BaseAvatar.js index 329d0b29a4..79296cf0cd 100644 --- a/src/components/views/avatars/BaseAvatar.js +++ b/src/components/views/avatars/BaseAvatar.js @@ -210,8 +210,8 @@ export default createReactClass({ onClick={onClick} onError={this.onError} style={{ - width: toRem(width), - height: toRem(height) + width: {width}, + height: {height}, }} title={title} alt="" inputRef={inputRef} From 00c0212c0308b56f08e06068a88f1600ebdb87a2 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Mon, 27 Apr 2020 17:35:52 +0100 Subject: [PATCH 147/162] Revert previous fix --- src/components/views/avatars/BaseAvatar.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/views/avatars/BaseAvatar.js b/src/components/views/avatars/BaseAvatar.js index 79296cf0cd..81fbc08c0f 100644 --- a/src/components/views/avatars/BaseAvatar.js +++ b/src/components/views/avatars/BaseAvatar.js @@ -210,8 +210,8 @@ export default createReactClass({ onClick={onClick} onError={this.onError} style={{ - width: {width}, - height: {height}, + width: toRem(width), + height: toRem(height), }} title={title} alt="" inputRef={inputRef} From 55084e918cb93dcccd2200ea578f70ef29ead6d7 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Mon, 27 Apr 2020 17:40:37 +0100 Subject: [PATCH 148/162] Really fix info avatar --- res/css/views/right_panel/_UserInfo.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/res/css/views/right_panel/_UserInfo.scss b/res/css/views/right_panel/_UserInfo.scss index a4d88f9882..b125476ed0 100644 --- a/res/css/views/right_panel/_UserInfo.scss +++ b/res/css/views/right_panel/_UserInfo.scss @@ -98,8 +98,8 @@ limitations under the License. position: absolute; top: 0; left: 0; - width: 100%; - height: 100%; + width: 100% !important; + height: 100% !important; } .mx_UserInfo_avatar .mx_BaseAvatar_initial { From da7a2f2f6231a338216dee99401ec5d3f6a4578f Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 27 Apr 2020 17:50:50 +0100 Subject: [PATCH 149/162] only clear on continuations where the clear isn't done by SenderProfile Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- res/css/views/rooms/_EventTile.scss | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/res/css/views/rooms/_EventTile.scss b/res/css/views/rooms/_EventTile.scss index 0dc60226b8..8e4571047d 100644 --- a/res/css/views/rooms/_EventTile.scss +++ b/res/css/views/rooms/_EventTile.scss @@ -110,8 +110,11 @@ limitations under the License. user-select: none; } -.mx_EventTile_line, .mx_EventTile_reply { +.mx_EventTile_continuation .mx_EventTile_line { clear: both; +} + +.mx_EventTile_line, .mx_EventTile_reply { position: relative; padding-left: 65px; /* left gutter */ padding-top: 4px; From a5ee99b858b73a6b1bd12bb6f3a8cd467a50f403 Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 27 Apr 2020 18:33:54 +0100 Subject: [PATCH 150/162] Aggregate device verification toasts into one toast 'Review' now opens the only place we can verify our own devices: our user info. --- src/DeviceListener.js | 43 ++++++++----------- .../views/toasts/UnverifiedSessionToast.js | 29 +++---------- src/i18n/strings/en_EN.json | 3 +- 3 files changed, 27 insertions(+), 48 deletions(-) diff --git a/src/DeviceListener.js b/src/DeviceListener.js index 41f249b335..a7b259e179 100644 --- a/src/DeviceListener.js +++ b/src/DeviceListener.js @@ -20,12 +20,9 @@ import * as sdk from './index'; import { _t } from './languageHandler'; import ToastStore from './stores/ToastStore'; -function toastKey(deviceId) { - return 'unverified_session_' + deviceId; -} - const KEY_BACKUP_POLL_INTERVAL = 5 * 60 * 1000; const THIS_DEVICE_TOAST_KEY = 'setupencryption'; +const OTHER_DEVICES_TOAST_KEY = 'reviewsessions'; export default class DeviceListener { static sharedInstance() { @@ -34,8 +31,6 @@ export default class DeviceListener { } constructor() { - // set of device IDs we're currently showing toasts for - this._activeNagToasts = new Set(); // device IDs for which the user has dismissed the verify toast ('Later') this._dismissed = new Set(); // has the user dismissed any of the various nag toasts to setup encryption on this device? @@ -71,8 +66,11 @@ export default class DeviceListener { this._keyBackupFetchedAt = null; } - dismissVerification(deviceId) { - this._dismissed.add(deviceId); + async dismissVerifications() { + const cli = MatrixClientPeg.get(); + const devices = await cli.getStoredDevicesForUser(cli.getUserId()); + this._dismissed = new Set(devices.filter(d => d.deviceId !== cli.deviceId).map(d => d.deviceId)); + this._recheck(); } @@ -202,33 +200,28 @@ export default class DeviceListener { // as long as cross-signing isn't ready, // you can't see or dismiss any device toasts if (crossSigningReady) { - const newActiveToasts = new Set(); + const unverifiedDeviceIds = new Set(); const devices = await cli.getStoredDevicesForUser(cli.getUserId()); for (const device of devices) { if (device.deviceId == cli.deviceId) continue; const deviceTrust = await cli.checkDeviceTrust(cli.getUserId(), device.deviceId); - if (deviceTrust.isCrossSigningVerified() || this._dismissed.has(device.deviceId)) { - ToastStore.sharedInstance().dismissToast(toastKey(device.deviceId)); - } else { - this._activeNagToasts.add(device.deviceId); - ToastStore.sharedInstance().addOrReplaceToast({ - key: toastKey(device.deviceId), - title: _t("Unverified login. Was this you?"), - icon: "verification_warning", - props: { device }, - component: sdk.getComponent("toasts.UnverifiedSessionToast"), - }); - newActiveToasts.add(device.deviceId); + if (!deviceTrust.isCrossSigningVerified() && !this._dismissed.has(device.deviceId)) { + unverifiedDeviceIds.add(device.deviceId); } } - // clear any other outstanding toasts (eg. logged out devices) - for (const deviceId of this._activeNagToasts) { - if (!newActiveToasts.has(deviceId)) ToastStore.sharedInstance().dismissToast(toastKey(deviceId)); + if (unverifiedDeviceIds.size > 0) { + ToastStore.sharedInstance().addOrReplaceToast({ + key: OTHER_DEVICES_TOAST_KEY, + title: _t("Review where you’re logged in"), + icon: "verification_warning", + component: sdk.getComponent("toasts.UnverifiedSessionToast"), + }); + } else { + ToastStore.sharedInstance().dismissToast(OTHER_DEVICES_TOAST_KEY); } - this._activeNagToasts = newActiveToasts; } } } diff --git a/src/components/views/toasts/UnverifiedSessionToast.js b/src/components/views/toasts/UnverifiedSessionToast.js index cb0cadcdc8..587a54164d 100644 --- a/src/components/views/toasts/UnverifiedSessionToast.js +++ b/src/components/views/toasts/UnverifiedSessionToast.js @@ -18,6 +18,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { _t } from '../../../languageHandler'; import Modal from "../../../Modal"; +import dis from "../../../dispatcher"; import { MatrixClientPeg } from '../../../MatrixClientPeg'; import DeviceListener from '../../../DeviceListener'; import NewSessionReviewDialog from '../dialogs/NewSessionReviewDialog'; @@ -26,29 +27,17 @@ import { replaceableComponent } from '../../../utils/replaceableComponent'; @replaceableComponent("views.toasts.UnverifiedSessionToast") export default class UnverifiedSessionToast extends React.PureComponent { - static propTypes = { - toastKey: PropTypes.string.isRequired, - device: PropTypes.object.isRequired, - }; - _onLaterClick = () => { - const { device } = this.props; - DeviceListener.sharedInstance().dismissVerification(device.deviceId); + DeviceListener.sharedInstance().dismissVerifications(); }; _onReviewClick = async () => { - const { device } = this.props; + DeviceListener.sharedInstance().dismissVerifications(); - Modal.createTrackedDialog('New Session Review', 'Starting dialog', NewSessionReviewDialog, { + dis.dispatch({ + action: 'view_user_info', userId: MatrixClientPeg.get().getUserId(), - device, - onFinished: (r) => { - if (!r) { - /* This'll come back false if the user clicks "this wasn't me" and saw a warning dialog */ - this._onLaterClick(); - } - }, - }, null, /* priority = */ false, /* static = */ true); + }); }; render() { @@ -56,11 +45,7 @@ export default class UnverifiedSessionToast extends React.PureComponent { return (
- - {device.getDisplayName()} - - ({device.deviceId}) - + {_t("Verify your other sessions")}
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index bd4c8f58c8..b662fcc4d3 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -105,7 +105,7 @@ "Verify this session": "Verify this session", "Encryption upgrade available": "Encryption upgrade available", "Set up encryption": "Set up encryption", - "Unverified login. Was this you?": "Unverified login. Was this you?", + "Review where you’re logged in": "Review where you’re logged in", "Who would you like to add to this community?": "Who would you like to add to this community?", "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID": "Warning: any person you add to a community will be publicly visible to anyone who knows the community ID", "Invite new community members": "Invite new community members", @@ -564,6 +564,7 @@ "Upgrade": "Upgrade", "Verify": "Verify", "Later": "Later", + "Verify your other sessions": "Verify your other sessions", "Review": "Review", "From %(deviceName)s (%(deviceId)s)": "From %(deviceName)s (%(deviceId)s)", "Decline (%(counter)s)": "Decline (%(counter)s)", From 3bdd24ce83efa1267e4e76a40e9bcf42f4359f05 Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 27 Apr 2020 18:34:48 +0100 Subject: [PATCH 151/162] Make close button work from user info view Adds more hacks so that the close button does something vagauely plausible in all situations. --- src/components/structures/RightPanel.js | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/components/structures/RightPanel.js b/src/components/structures/RightPanel.js index f5bdfdf40d..d5369b8492 100644 --- a/src/components/structures/RightPanel.js +++ b/src/components/structures/RightPanel.js @@ -26,6 +26,7 @@ import dis from '../../dispatcher'; import RateLimitedFunc from '../../ratelimitedfunc'; import { showGroupInviteDialog, showGroupAddRoomDialog } from '../../GroupAddressPicker'; import GroupStore from '../../stores/GroupStore'; +import RoomViewStore from '../../stores/RoomViewStore'; import SettingsStore from "../../settings/SettingsStore"; import {RIGHT_PANEL_PHASES, RIGHT_PANEL_PHASES_NO_ARGS} from "../../stores/RightPanelStorePhases"; import RightPanelStore from "../../stores/RightPanelStore"; @@ -221,10 +222,26 @@ export default class RightPanel extends React.Component { case RIGHT_PANEL_PHASES.EncryptionPanel: if (SettingsStore.getValue("feature_cross_signing")) { const onClose = () => { - dis.dispatch({ - action: "view_user", - member: this.state.phase === RIGHT_PANEL_PHASES.EncryptionPanel ? this.state.member : null, - }); + // XXX: There are three different ways of 'closing' this panel depending on what state + // things are in... this knows far more than it should do about the state of the rest + // of the app and is generally a bit silly. + if (this.props.user) { + // If we have a user prop then we're displaying a user from the 'user' page type + // in LoggedInView, so need to change the page type to close the panel (we switch + // to the home page which is not obviosuly the correct thing to do, but I'm not sure + // anything else is - we could hide the close button altogether?) + dis.dispatch({ + action: "view_home_page", + }); + } else { + // Otherwise we have got our user from RoomViewStore which means we're being shown + // within a room, so go back to the member panel if we were in the encryption panel, + // or the member list if we were in the member panel... phew. + dis.dispatch({ + action: "view_user", + member: this.state.phase === RIGHT_PANEL_PHASES.EncryptionPanel ? this.state.member : null, + }); + } }; panel = Date: Mon, 27 Apr 2020 19:35:38 +0200 Subject: [PATCH 152/162] Use color values for default avatar backgrounds We still need to convert them to URLs for the notification icon, so use a canvas (with a cache in front of it) to do that. --- res/img/03b381.png | Bin 169 -> 0 bytes res/img/368bd6.png | Bin 171 -> 0 bytes res/img/ac3ba8.png | Bin 170 -> 0 bytes src/Avatar.js | 28 ++++++++++++++++++++++++++-- 4 files changed, 26 insertions(+), 2 deletions(-) delete mode 100644 res/img/03b381.png delete mode 100644 res/img/368bd6.png delete mode 100644 res/img/ac3ba8.png diff --git a/res/img/03b381.png b/res/img/03b381.png deleted file mode 100644 index cf28fc7e5972c64194cf0d3523f88ccc4029b0b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEEa{HEjtmSN`?>!lvI6-Do-U3d z5u9%?ZR9i7itjH?&t;ucLK6VpHaVC8 diff --git a/res/img/368bd6.png b/res/img/368bd6.png deleted file mode 100644 index a2700bd0aefa3f3240ba4bae80953d9968bd78e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEEa{HEjtmSN`?>!lvI6-@o-U3d z5u9%?ZR9 Q8PGNcPgg&ebxsLQ0Ia4vrT_o{ diff --git a/res/img/ac3ba8.png b/res/img/ac3ba8.png deleted file mode 100644 index 031471d85a1d9cf5ab90194d788c26a1b90f8de7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEEa{HEjtmSN`?>!lvI6;uo-U3d z5u9%?ZR9Sv=ZSPn8FZ?)L{C=6=YlpuJS%gCv-`-AW z(ppd}?GwPdCBK<-Rl~Pj14q#d`*_t>Fx}dIkR{aNx7myZTp9P-K#I*h>X_~YE;#!f PXc>d2tDnm{r-UW|94|Wi diff --git a/src/Avatar.js b/src/Avatar.js index 217b196348..52bdbc1a50 100644 --- a/src/Avatar.js +++ b/src/Avatar.js @@ -53,13 +53,37 @@ export function avatarUrlForUser(user, width, height, resizeMethod) { return url; } +function urlForColor(color) { + const size = 40; + const canvas = document.createElement("canvas"); + canvas.width = size; + canvas.height = size; + const ctx = canvas.getContext("2d"); + ctx.fillStyle = color; + ctx.fillRect(0, 0, size, size); + return canvas.toDataURL(); +} + +// XXX: Ideally we'd clear this cache when the theme changes +// but since this function is at global scope, it's a bit +// hard to install a listener here, even if there were a clear event to listen to +const colorToDataURLCache = new Map(); + export function defaultAvatarUrlForString(s) { - const images = ['03b381', '368bd6', 'ac3ba8']; + const defaultColors = ['#03b381', '#368bd6', '#ac3ba8']; let total = 0; for (let i = 0; i < s.length; ++i) { total += s.charCodeAt(i); } - return require('../res/img/' + images[total % images.length] + '.png'); + const colorIndex = total % defaultColors.length; + // overwritten color value in custom themes + const color = defaultColors[colorIndex]; + let dataUrl = colorToDataURLCache.get(color); + if (!dataUrl) { + dataUrl = urlForColor(color); + colorToDataURLCache.set(color, dataUrl); + } + return dataUrl; } /** From 66067719f47f94774374ee7233f856ae3c4887a7 Mon Sep 17 00:00:00 2001 From: Jorik Schellekens Date: Mon, 27 Apr 2020 18:36:05 +0100 Subject: [PATCH 153/162] Small fixes --- res/css/views/avatars/_MemberStatusMessageAvatar.scss | 2 +- res/css/views/context_menus/_TopLeftMenu.scss | 6 +++--- res/css/views/right_panel/_UserInfo.scss | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/res/css/views/avatars/_MemberStatusMessageAvatar.scss b/res/css/views/avatars/_MemberStatusMessageAvatar.scss index c101a5d8a8..975b4e5ce9 100644 --- a/res/css/views/avatars/_MemberStatusMessageAvatar.scss +++ b/res/css/views/avatars/_MemberStatusMessageAvatar.scss @@ -17,7 +17,7 @@ limitations under the License. .mx_MessageComposer_avatar .mx_BaseAvatar { padding: 2px; border: 1px solid transparent; - border-radius: 15px; + border-radius: 100%; } .mx_MessageComposer_avatar .mx_BaseAvatar_initial { diff --git a/res/css/views/context_menus/_TopLeftMenu.scss b/res/css/views/context_menus/_TopLeftMenu.scss index 973c306695..e0f5dd47bd 100644 --- a/res/css/views/context_menus/_TopLeftMenu.scss +++ b/res/css/views/context_menus/_TopLeftMenu.scss @@ -72,10 +72,10 @@ limitations under the License. .mx_AccessibleButton::after { mask-repeat: no-repeat; mask-position: 0 center; - mask-size: 16px; + mask-size: $font-16px; position: absolute; - width: 16px; - height: 16px; + width: $font-16px; + height: $font-16px; content: ""; top: 5px; left: 14px; diff --git a/res/css/views/right_panel/_UserInfo.scss b/res/css/views/right_panel/_UserInfo.scss index b125476ed0..26b81e94f3 100644 --- a/res/css/views/right_panel/_UserInfo.scss +++ b/res/css/views/right_panel/_UserInfo.scss @@ -109,7 +109,7 @@ limitations under the License. justify-content: center; // override the calculated sizes so that the letter isn't HUGE - font-size: 56px !important; + font-size: 6rem !important; width: 100% !important; transition: font-size 0.5s; } From 196931000343e9fe1281ac0a480e8d35e24dbdf1 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Mon, 27 Apr 2020 19:38:27 +0200 Subject: [PATCH 154/162] support overriding avatar background color from custom theme --- src/Avatar.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Avatar.js b/src/Avatar.js index 52bdbc1a50..8084f30f33 100644 --- a/src/Avatar.js +++ b/src/Avatar.js @@ -77,7 +77,9 @@ export function defaultAvatarUrlForString(s) { } const colorIndex = total % defaultColors.length; // overwritten color value in custom themes - const color = defaultColors[colorIndex]; + const cssVariable = `--avatar-background-colors_${colorIndex}`; + const cssValue = document.body.style.getPropertyValue(cssVariable); + const color = cssValue || defaultColors[colorIndex]; let dataUrl = colorToDataURLCache.get(color); if (!dataUrl) { dataUrl = urlForColor(color); From 76e04fbdfae00b8f29a29442ac1f1511a7cb6f7f Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Mon, 27 Apr 2020 19:39:07 +0200 Subject: [PATCH 155/162] update comment --- src/theme.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/theme.js b/src/theme.js index b7fbe40df4..ab5974f207 100644 --- a/src/theme.js +++ b/src/theme.js @@ -148,7 +148,7 @@ function setCustomThemeVars(customTheme) { function setCSSVariable(name, hexColor, doPct = true) { style.setProperty(`--${name}`, hexColor); if (doPct) { - // uses #rrggbbaa to define the color with alpha values at 0% and 50% + // uses #rrggbbaa to define the color with alpha values at 0%, 15% and 50% style.setProperty(`--${name}-0pct`, hexColor + "00"); style.setProperty(`--${name}-15pct`, hexColor + "26"); style.setProperty(`--${name}-50pct`, hexColor + "7F"); From ff1fd15e72cce44c095cad470ad54bbbd375a97f Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 27 Apr 2020 20:31:14 +0100 Subject: [PATCH 156/162] Use the New Session review dialog for verifying our own devices --- src/components/views/right_panel/UserInfo.js | 34 +++++++---- src/verification.js | 63 +++++++++++--------- 2 files changed, 59 insertions(+), 38 deletions(-) diff --git a/src/components/views/right_panel/UserInfo.js b/src/components/views/right_panel/UserInfo.js index b87617c9d4..d3e8e81ebe 100644 --- a/src/components/views/right_panel/UserInfo.js +++ b/src/components/views/right_panel/UserInfo.js @@ -191,17 +191,29 @@ function DeviceItem({userId, device}) { device.getDisplayName(); let trustedLabel = null; if (userTrust.isVerified()) trustedLabel = isVerified ? _t("Trusted") : _t("Not trusted"); - return ( - -
-
{deviceName}
-
{trustedLabel}
- - ); + + + if (isVerified) { + return ( +
+
+
{deviceName}
+
{trustedLabel}
+
+ ); + } else { + return ( + +
+
{deviceName}
+
{trustedLabel}
+ + ); + } } function DevicesSection({devices, userId, loading}) { diff --git a/src/verification.js b/src/verification.js index ca839940e5..ed56b0e7ef 100644 --- a/src/verification.js +++ b/src/verification.js @@ -23,6 +23,7 @@ import {RIGHT_PANEL_PHASES} from "./stores/RightPanelStorePhases"; import {findDMForUser} from './createRoom'; import {accessSecretStorage} from './CrossSigningManager'; import SettingsStore from './settings/SettingsStore'; +import NewSessionReviewDialog from './components/views/dialogs/NewSessionReviewDialog'; import {verificationMethods} from 'matrix-js-sdk/src/crypto'; async function enable4SIfNeeded() { @@ -68,33 +69,41 @@ export async function verifyDevice(user, device) { return; } } - Modal.createTrackedDialog("Verification warning", "unverified session", UntrustedDeviceDialog, { - user, - device, - onFinished: async (action) => { - if (action === "sas") { - const verificationRequestPromise = cli.legacyDeviceVerification( - user.userId, - device.deviceId, - verificationMethods.SAS, - ); - dis.dispatch({ - action: "set_right_panel_phase", - phase: RIGHT_PANEL_PHASES.EncryptionPanel, - refireParams: {member: user, verificationRequestPromise}, - }); - } else if (action === "legacy") { - const ManualDeviceKeyVerificationDialog = sdk.getComponent("dialogs.ManualDeviceKeyVerificationDialog"); - Modal.createTrackedDialog("Legacy verify session", "legacy verify session", - ManualDeviceKeyVerificationDialog, - { - userId: user.userId, - device, - }, - ); - } - }, - }); + + if (user.userId === cli.getUserId()) { + Modal.createTrackedDialog('New Session Review', 'Starting dialog', NewSessionReviewDialog, { + userId: user.userId, + device, + }); + } else { + Modal.createTrackedDialog("Verification warning", "unverified session", UntrustedDeviceDialog, { + user, + device, + onFinished: async (action) => { + if (action === "sas") { + const verificationRequestPromise = cli.legacyDeviceVerification( + user.userId, + device.deviceId, + verificationMethods.SAS, + ); + dis.dispatch({ + action: "set_right_panel_phase", + phase: RIGHT_PANEL_PHASES.EncryptionPanel, + refireParams: {member: user, verificationRequestPromise}, + }); + } else if (action === "legacy") { + const ManualDeviceKeyVerificationDialog = sdk.getComponent("dialogs.ManualDeviceKeyVerificationDialog"); + Modal.createTrackedDialog("Legacy verify session", "legacy verify session", + ManualDeviceKeyVerificationDialog, + { + userId: user.userId, + device, + }, + ); + } + }, + }); + } } export async function legacyVerifyUser(user) { From 7e956514a239b3a15cb3f9235533db506bf6d69c Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 27 Apr 2020 20:35:39 +0100 Subject: [PATCH 157/162] Lint --- src/components/structures/RightPanel.js | 4 ++-- src/components/views/toasts/UnverifiedSessionToast.js | 5 ----- src/verification.js | 3 ++- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/components/structures/RightPanel.js b/src/components/structures/RightPanel.js index d5369b8492..3fec5aa25f 100644 --- a/src/components/structures/RightPanel.js +++ b/src/components/structures/RightPanel.js @@ -26,7 +26,6 @@ import dis from '../../dispatcher'; import RateLimitedFunc from '../../ratelimitedfunc'; import { showGroupInviteDialog, showGroupAddRoomDialog } from '../../GroupAddressPicker'; import GroupStore from '../../stores/GroupStore'; -import RoomViewStore from '../../stores/RoomViewStore'; import SettingsStore from "../../settings/SettingsStore"; import {RIGHT_PANEL_PHASES, RIGHT_PANEL_PHASES_NO_ARGS} from "../../stores/RightPanelStorePhases"; import RightPanelStore from "../../stores/RightPanelStore"; @@ -239,7 +238,8 @@ export default class RightPanel extends React.Component { // or the member list if we were in the member panel... phew. dis.dispatch({ action: "view_user", - member: this.state.phase === RIGHT_PANEL_PHASES.EncryptionPanel ? this.state.member : null, + member: this.state.phase === RIGHT_PANEL_PHASES.EncryptionPanel ? + this.state.member : null, }); } }; diff --git a/src/components/views/toasts/UnverifiedSessionToast.js b/src/components/views/toasts/UnverifiedSessionToast.js index 587a54164d..886e3c4c20 100644 --- a/src/components/views/toasts/UnverifiedSessionToast.js +++ b/src/components/views/toasts/UnverifiedSessionToast.js @@ -15,13 +15,10 @@ limitations under the License. */ import React from 'react'; -import PropTypes from 'prop-types'; import { _t } from '../../../languageHandler'; -import Modal from "../../../Modal"; import dis from "../../../dispatcher"; import { MatrixClientPeg } from '../../../MatrixClientPeg'; import DeviceListener from '../../../DeviceListener'; -import NewSessionReviewDialog from '../dialogs/NewSessionReviewDialog'; import FormButton from '../elements/FormButton'; import { replaceableComponent } from '../../../utils/replaceableComponent'; @@ -41,8 +38,6 @@ export default class UnverifiedSessionToast extends React.PureComponent { }; render() { - const { device } = this.props; - return (
{_t("Verify your other sessions")} diff --git a/src/verification.js b/src/verification.js index ed56b0e7ef..630da01091 100644 --- a/src/verification.js +++ b/src/verification.js @@ -92,7 +92,8 @@ export async function verifyDevice(user, device) { refireParams: {member: user, verificationRequestPromise}, }); } else if (action === "legacy") { - const ManualDeviceKeyVerificationDialog = sdk.getComponent("dialogs.ManualDeviceKeyVerificationDialog"); + const ManualDeviceKeyVerificationDialog = + sdk.getComponent("dialogs.ManualDeviceKeyVerificationDialog"); Modal.createTrackedDialog("Legacy verify session", "legacy verify session", ManualDeviceKeyVerificationDialog, { From 19fc6a93ec7004f6554bfffef82908512db88f1b Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 28 Apr 2020 10:41:35 +0200 Subject: [PATCH 158/162] fix tests --- src/Avatar.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Avatar.js b/src/Avatar.js index 8084f30f33..2e176e569e 100644 --- a/src/Avatar.js +++ b/src/Avatar.js @@ -59,6 +59,10 @@ function urlForColor(color) { canvas.width = size; canvas.height = size; const ctx = canvas.getContext("2d"); + // bail out when using jsdom in unit tests + if (!ctx) { + return ""; + } ctx.fillStyle = color; ctx.fillRect(0, 0, size, size); return canvas.toDataURL(); From 90326955ba364a3957357f1d6f386abfc1746019 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 28 Apr 2020 09:42:39 +0100 Subject: [PATCH 159/162] No need for a set here - bool is fine --- src/DeviceListener.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/DeviceListener.js b/src/DeviceListener.js index a7b259e179..ad2553ca3c 100644 --- a/src/DeviceListener.js +++ b/src/DeviceListener.js @@ -200,7 +200,7 @@ export default class DeviceListener { // as long as cross-signing isn't ready, // you can't see or dismiss any device toasts if (crossSigningReady) { - const unverifiedDeviceIds = new Set(); + const haveUnverifiedDevices = false; const devices = await cli.getStoredDevicesForUser(cli.getUserId()); for (const device of devices) { @@ -208,11 +208,12 @@ export default class DeviceListener { const deviceTrust = await cli.checkDeviceTrust(cli.getUserId(), device.deviceId); if (!deviceTrust.isCrossSigningVerified() && !this._dismissed.has(device.deviceId)) { - unverifiedDeviceIds.add(device.deviceId); + haveUnverifiedDevices = true; + break; } } - if (unverifiedDeviceIds.size > 0) { + if (haveUnverifiedDevices) { ToastStore.sharedInstance().addOrReplaceToast({ key: OTHER_DEVICES_TOAST_KEY, title: _t("Review where you’re logged in"), From 4dca66d140d0111a0ecd41d84465105b56018a63 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 28 Apr 2020 09:43:24 +0100 Subject: [PATCH 160/162] No need for this if statement now --- src/components/views/right_panel/UserInfo.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/components/views/right_panel/UserInfo.js b/src/components/views/right_panel/UserInfo.js index d3e8e81ebe..cafbf05a23 100644 --- a/src/components/views/right_panel/UserInfo.js +++ b/src/components/views/right_panel/UserInfo.js @@ -181,9 +181,7 @@ function DeviceItem({userId, device}) { }); const onDeviceClick = () => { - if (!isVerified) { - verifyDevice(cli.getUser(userId), device); - } + verifyDevice(cli.getUser(userId), device); }; const deviceName = device.ambiguous ? From cad2f4d27da49b88f4524fbedad6d21d3a270894 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 28 Apr 2020 09:49:03 +0100 Subject: [PATCH 161/162] Consts are constant --- src/DeviceListener.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DeviceListener.js b/src/DeviceListener.js index ad2553ca3c..1b451310b9 100644 --- a/src/DeviceListener.js +++ b/src/DeviceListener.js @@ -200,7 +200,7 @@ export default class DeviceListener { // as long as cross-signing isn't ready, // you can't see or dismiss any device toasts if (crossSigningReady) { - const haveUnverifiedDevices = false; + let haveUnverifiedDevices = false; const devices = await cli.getStoredDevicesForUser(cli.getUserId()); for (const device of devices) { From 4978f8a2a9be4dc5e71fccda432f41d254dd27bf Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 28 Apr 2020 10:59:10 +0200 Subject: [PATCH 162/162] validate hex color --- src/Avatar.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Avatar.js b/src/Avatar.js index 2e176e569e..8393ce02b2 100644 --- a/src/Avatar.js +++ b/src/Avatar.js @@ -53,6 +53,13 @@ export function avatarUrlForUser(user, width, height, resizeMethod) { return url; } +function isValidHexColor(color) { + return typeof color === "string" && + (color.length === 7 || color.lengh === 9) && + color.charAt(0) === "#" && + !color.substr(1).split("").some(c => isNaN(parseInt(c, 16))); +} + function urlForColor(color) { const size = 40; const canvas = document.createElement("canvas"); @@ -86,8 +93,14 @@ export function defaultAvatarUrlForString(s) { const color = cssValue || defaultColors[colorIndex]; let dataUrl = colorToDataURLCache.get(color); if (!dataUrl) { - dataUrl = urlForColor(color); - colorToDataURLCache.set(color, dataUrl); + // validate color as this can come from account_data + // with custom theming + if (isValidHexColor(color)) { + dataUrl = urlForColor(color); + colorToDataURLCache.set(color, dataUrl); + } else { + dataUrl = ""; + } } return dataUrl; }