summary refs log tree commit diff
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2021-06-12 15:05:07 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2021-06-12 15:05:07 +0200
commit7d5e82c888e9ed2d644a3c7145d1f7d4c3807f15 (patch)
tree275d56a0089d0a26e5c005f7f77ac4de9b8bb07f
parentPersist sidebar sizes (diff)
parentTranslated using Weblate (Esperanto) (diff)
downloadnheko-7d5e82c888e9ed2d644a3c7145d1f7d4c3807f15.tar.xz
Merge branch 'master' into qml-roomlist
-rw-r--r--README.md9
-rw-r--r--io.github.NhekoReborn.Nheko.yaml4
-rw-r--r--resources/langs/nheko_de.ts81
-rw-r--r--resources/langs/nheko_eo.ts533
-rw-r--r--resources/langs/nheko_es.ts10
-rw-r--r--resources/langs/nheko_et.ts22
-rw-r--r--resources/langs/nheko_fi.ts144
-rw-r--r--resources/langs/nheko_it.ts122
-rw-r--r--resources/langs/nheko_pt_BR.ts2721
-rw-r--r--resources/langs/nheko_ru.ts208
-rw-r--r--resources/qml/MessageView.qml24
-rw-r--r--src/RegisterPage.cpp144
-rw-r--r--src/RegisterPage.h6
-rw-r--r--src/Utils.cpp7
-rw-r--r--src/Utils.h4
-rw-r--r--src/timeline/TimelineViewManager.cpp3
16 files changed, 3438 insertions, 604 deletions
diff --git a/README.md b/README.md

index 87ed7f8b..9904ebd8 100644 --- a/README.md +++ b/README.md
@@ -114,6 +114,15 @@ with [homebrew](https://brew.sh/): ```sh brew install --cask nheko ``` + +#### Windows + +with [Chocolatey](https://chocolatey.org/): + +```posh +choco install nheko-reborn +``` + ### FAQ ## diff --git a/io.github.NhekoReborn.Nheko.yaml b/io.github.NhekoReborn.Nheko.yaml
index d8ea05dc..2661ea6f 100644 --- a/io.github.NhekoReborn.Nheko.yaml +++ b/io.github.NhekoReborn.Nheko.yaml
@@ -16,7 +16,9 @@ finish-args: - --socket=wayland - --socket=x11 - --talk-name=org.freedesktop.Notifications - - --talk-name=org.kde.StatusNotifierWatcher + - --talk-name=org.freedesktop.secrets + - --talk-name=org.freedesktop.StatusNotifierItem + - --talk-name=org.kde.* cleanup: - /include - /bin/mdb* diff --git a/resources/langs/nheko_de.ts b/resources/langs/nheko_de.ts
index 40cabcbe..8265b546 100644 --- a/resources/langs/nheko_de.ts +++ b/resources/langs/nheko_de.ts
@@ -17,22 +17,22 @@ <message> <location line="+67"/> <source>You are screen sharing</source> - <translation>Du hast deinen Bildschirm freigegeben</translation> + <translation>Du teilst deinen Bildschirm</translation> </message> <message> <location line="+17"/> <source>Hide/Show Picture-in-Picture</source> - <translation>Bild in Bild anzeigen/verstecken</translation> + <translation>Bild-in-Bild Teilen/Verstecken</translation> </message> <message> <location line="+13"/> <source>Unmute Mic</source> - <translation>Stummschaltung aufheben</translation> + <translation>Stummschaltung Aufheben</translation> </message> <message> <location line="+0"/> <source>Mute Mic</source> - <translation>Mikrophon stummschalten</translation> + <translation>Mikrofon stumm schalten</translation> </message> </context> <context> @@ -151,12 +151,12 @@ <message> <location line="+412"/> <source>Confirm join</source> - <translation>Beitreten bestätigen</translation> + <translation>Beitritt bestätigen</translation> </message> <message> <location line="+1"/> <source>Do you really want to join %1?</source> - <translation>Willst du wirklich %1 betreten?</translation> + <translation>Möchtest du wirklich %1 beitreten?</translation> </message> <message> <location line="+44"/> @@ -172,7 +172,7 @@ <message> <location line="-323"/> <source>Do you really want to invite %1 (%2)?</source> - <translation>Willst du wirklich %1 (%2) einladen?</translation> + <translation>Nutzer %1 (%2) wirklich einladen?</translation> </message> <message> <location line="+11"/> @@ -187,12 +187,12 @@ <message> <location line="+1"/> <source>Do you really want to kick %1 (%2)?</source> - <translation>Willst du wirklich %1 (%2) kicken?</translation> + <translation>Nutzer %1 (%2) wirklich kicken?</translation> </message> <message> <location line="+16"/> <source>Kicked user: %1</source> - <translation>%1 wurde gekickt.</translation> + <translation>Gekickter Benutzer: %1</translation> </message> <message> <location line="+10"/> @@ -202,7 +202,7 @@ <message> <location line="+1"/> <source>Do you really want to ban %1 (%2)?</source> - <translation>Willst du wirklich %1 (%2) aus dem Raum verbannen?</translation> + <translation>Nutzer %1 (%2) wirklich bannen?</translation> </message> <message> <location line="+11"/> @@ -212,7 +212,7 @@ <message> <location line="+5"/> <source>Banned user: %1</source> - <translation>%1 wurde gebannt.</translation> + <translation>Gebannter Nutzer: %1</translation> </message> <message> <location line="+10"/> @@ -222,7 +222,7 @@ <message> <location line="+1"/> <source>Do you really want to unban %1 (%2)?</source> - <translation>Willst du wirklich den Bann von %1 (%2) zurückziehen?</translation> + <translation>Bann des Nutzers %1 (%2) wirklich aufheben?</translation> </message> <message> <location line="+11"/> @@ -232,7 +232,7 @@ <message> <location line="+5"/> <source>Unbanned user: %1</source> - <translation>Verbannung von %1 wurde aufgehoben.</translation> + <translation>Verbannung aufgehoben: %1</translation> </message> <message> <location line="+227"/> @@ -247,7 +247,7 @@ <message> <location line="+13"/> <source>Incompatible cache version</source> - <translation>Inkompatible Cacheversion</translation> + <translation>Inkompatible Version des Caches</translation> </message> <message> <location line="+1"/> @@ -283,7 +283,7 @@ <message> <location line="+5"/> <source>You joined the room</source> - <translation>Du bist dem Raum beigetreten.</translation> + <translation>Du hast den Raum betreten</translation> </message> <message> <location line="+6"/> @@ -506,12 +506,12 @@ <message> <location line="+2"/> <source>Encrypted by an unverified device, but you have trusted that user so far.</source> - <translation type="unfinished"></translation> + <translation>Von einem unverifizierten Gerät verschlüsselt, Sie haben dem Nutzer jedoch früher schon vertraut.</translation> </message> <message> <location line="+2"/> <source>Encrypted by an unverified device</source> - <translation type="unfinished"></translation> + <translation>Von einem unverifizierten Gerät verschlüsselt</translation> </message> </context> <context> @@ -598,7 +598,7 @@ <message> <location filename="../qml/ForwardCompleter.qml" line="+44"/> <source>Forward Message</source> - <translation type="unfinished"></translation> + <translation>Nachricht weiterleiten</translation> </message> </context> <context> @@ -645,10 +645,10 @@ You can also put your homeserver address there, if your server doesn&apos;t support .well-known lookup. Example: @user:server.my If Nheko fails to discover your homeserver, it will show you a field to enter the server manually.</source> - <translation>Dein Anmeldename. Eine mxid sollte mit einem @ anfangen, gefolgt von dem Benutzernamen. Nach dem Benutzernamen sollten ein Doppelpunkt (:) under der Servername folgen. -Nach dem Doppelpunkt kann alternativ die Serveradresse (mit oder ohne Port) angegeben werden, wenn der Server nicht per .well-known auffindbar ist. + <translation>Dein Anmeldename sollte mit einem @ anfangen, gefolgt von deinem Benutzernamen. Nach deinem Benutzernamen sollte ein Doppelpunkt (:) und der Servername folgen. +Nach dem Doppelpunkt kann alternativ die Serveradresse (mit oder ohne Port) angegeben werden, wenn der Server nicht via .well-known auffindbar ist. Beispiel: @benutzer:dein.server -Wenn Nheko deinen Server nicht automatisch erkennen kann, wird es dich nach dem Server fragen.</translation> +Wenn Nheko deinen Server nicht automatisch erkennen kann, bekommst du eine Eingabemaske gezeigt in die du die Serverdaten manuell eintragen kannst.</translation> </message> <message> <location line="+25"/> @@ -668,7 +668,7 @@ Wenn Nheko deinen Server nicht automatisch erkennen kann, wird es dich nach dem <message> <location line="+2"/> <source>A name for this device, which will be shown to others, when verifying your devices. If none is provided a default is used.</source> - <translation>Ein Name für dieses Gerät. Dieser wird der anderen Seite gezeigt, wenn das Gerät verifiziert wird. Wenn nichts angeben wurde, wird einer generiert.</translation> + <translation>Ein Name für dieses Gerät, das der anderen Seite gezeigt wird, wenn das Gerät verifiziert wird. Wird nichts angegeben, wird einer generiert.</translation> </message> <message> <location line="+4"/> @@ -785,7 +785,7 @@ Beispiel: https://mein.server:8787</translation> <message> <location line="+0"/> <source>removed topic</source> - <translation>Raumthema wurde entfernt</translation> + <translation>Thema wurde entfernt</translation> </message> <message> <location line="+9"/> @@ -1124,7 +1124,7 @@ Beispiel: https://mein.server:8787</translation> <message> <location line="+13"/> <source>Cancel edit</source> - <translation>Editieren abbrechen</translation> + <translation>Bearbeiten abbrechen</translation> </message> </context> <context> @@ -1266,7 +1266,7 @@ Beispiel: https://mein.server:8787</translation> <location line="+1"/> <source>Encryption is currently experimental and things might break unexpectedly. &lt;br&gt; Please take note that it can&apos;t be disabled afterwards.</source> - <translation>Verschlüsselung ist aktuell experimentell und kann in verschiedenen Fällen zu Fehlern führen.&lt;br&gt;Verschlüsselung kann nachträglich nicht deaktiviert werden.</translation> + <translation>Verschlüsselung ist derzeit experimentell und könnte unerwartete Probleme verursachen.&lt;br&gt;Bitte beachte, dass dies später nicht mehr deaktiviert werden kann.</translation> </message> <message> <location line="+17"/> @@ -1278,9 +1278,7 @@ Beispiel: https://mein.server:8787</translation> <source>Whether or not the client should respond automatically with the session keys upon request. Use with caution, this is a temporary measure to test the E2E implementation until device verification is completed.</source> - <translation>Ob Nheko automatisch auf Schlüsselanfragen antwortet. Dies ist ein temporärer -Workaround um, solange die Ende-zu-Ende Verschlüsselung unvollständig ist, um -Schlüssel auszutauschen, wenn der normale Weg nicht zu funktionieren scheint.</translation> + <translation>Soll der Client automatisch mit den Sitzungsschlüsseln auf Anfragen antworten oder nicht? Bitte mit Vorsicht benutzen, dies ist eine vorübergehende Maßnahme, um die Ende-zu-Ende-Implementierung zu testen, bis die Geräteverifizierung abgeschlossen ist.</translation> </message> <message> <location line="+21"/> @@ -1325,13 +1323,13 @@ Schlüssel auszutauschen, wenn der normale Weg nicht zu funktionieren scheint.</ <message> <location line="+5"/> <source>Error while reading file: %1</source> - <translation>Fehler beim Lesen der DateI: %1</translation> + <translation>Fehler beim Lesen der Datei: %1</translation> </message> <message> <location line="+34"/> <location line="+20"/> <source>Failed to upload image: %s</source> - <translation>Hochladen der Bilddatei fehlgeschlagen: %s</translation> + <translation>Hochladen des Bildes fehlgeschlagen: %s</translation> </message> </context> <context> @@ -1349,23 +1347,23 @@ Schlüssel auszutauschen, wenn der normale Weg nicht zu funktionieren scheint.</ <message> <location line="+20"/> <source>Frame rate:</source> - <translation>Wiederholungsrate:</translation> + <translation>Bildrate:</translation> </message> <message> <location line="+19"/> <source>Include your camera picture-in-picture</source> - <translation>Eigene Kamera als Bild-im-Bild anzeigen</translation> + <translation>Deine Kamera Bild-in-Bild anzeigen</translation> </message> <message> <location line="+12"/> <source>Request remote camera</source> - <translation>Kamera der Gegenstelle anfragen</translation> + <translation>Entfernte Kamera anfragen</translation> </message> <message> <location line="+1"/> <location line="+9"/> <source>View your callee&apos;s camera like a regular video call</source> - <translation>Zeige die Kamera des Angerufen wie in einem normalen Videoanruf an</translation> + <translation>Die Kamera Ihres Gesprächspartners wie bei einem normalen Videoanruf betrachten</translation> </message> <message> <location line="+5"/> @@ -1649,12 +1647,12 @@ Schlüssel auszutauschen, wenn der normale Weg nicht zu funktionieren scheint.</ <message> <location filename="../qml/TimelineView.qml" line="+125"/> <source>Copy</source> - <translation type="unfinished"></translation> + <translation>Kopieren</translation> </message> <message> <location line="+7"/> <source>Copy link location</source> - <translation type="unfinished"></translation> + <translation>Link kopieren</translation> </message> <message> <location line="+8"/> @@ -1679,7 +1677,7 @@ Schlüssel auszutauschen, wenn der normale Weg nicht zu funktionieren scheint.</ <message> <location line="+6"/> <source>Forward</source> - <translation type="unfinished"></translation> + <translation>Weiterleiten</translation> </message> <message> <location line="+9"/> @@ -1714,7 +1712,7 @@ Schlüssel auszutauschen, wenn der normale Weg nicht zu funktionieren scheint.</ <message> <location line="+7"/> <source>Copy link to event</source> - <translation type="unfinished"></translation> + <translation>Link zu Event kopieren</translation> </message> <message> <location line="+57"/> @@ -1871,7 +1869,7 @@ Schlüssel auszutauschen, wenn der normale Weg nicht zu funktionieren scheint.</ <message> <location filename="../../src/ui/UserProfile.cpp" line="+301"/> <source>Select an avatar</source> - <translation>Wähle einen Avatar</translation> + <translation>Avatar wählen</translation> </message> <message> <location line="+0"/> @@ -1993,13 +1991,12 @@ Betrifft nur Nachrichten in verschlüsselten Chats.</translation> <location line="+2"/> <source>When the window loses focus, the timeline will be blurred.</source> - <translation>Verliert das Fenster den Fokus, werden die Nachrichten -verschwommen angezeigt.</translation> + <translation>Die Zeitliste wird unscharf, wenn das Fenster den Fokus verliert.</translation> </message> <message> <location line="+2"/> <source>Privacy screen timeout (in seconds [0 - 3600])</source> - <translation>Zeit bis Blickschutz aktiv wird (in Sekunden [0 - 3600])</translation> + <translation>Sichtschutz-Zeitbegrenzung (in Sekunden [0 - 3600])</translation> </message> <message> <location line="+2"/> diff --git a/resources/langs/nheko_eo.ts b/resources/langs/nheko_eo.ts
index b0740534..c8a5ae27 100644 --- a/resources/langs/nheko_eo.ts +++ b/resources/langs/nheko_eo.ts
@@ -6,18 +6,18 @@ <message> <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/> <source>Calling...</source> - <translation type="unfinished"></translation> + <translation>Vokante…</translation> </message> <message> <location line="+10"/> <location line="+10"/> <source>Connecting...</source> - <translation type="unfinished"></translation> + <translation>Konektante…</translation> </message> <message> <location line="+67"/> <source>You are screen sharing</source> - <translation type="unfinished"></translation> + <translation>Vi vidigas vian ekranon</translation> </message> <message> <location line="+17"/> @@ -27,12 +27,12 @@ <message> <location line="+13"/> <source>Unmute Mic</source> - <translation type="unfinished"></translation> + <translation>Malsilentigi mikrofonon</translation> </message> <message> <location line="+0"/> <source>Mute Mic</source> - <translation type="unfinished"></translation> + <translation>Silentigi mikrofonon</translation> </message> </context> <context> @@ -40,17 +40,17 @@ <message> <location filename="../qml/device-verification/AwaitingVerificationConfirmation.qml" line="+11"/> <source>Awaiting Confirmation</source> - <translation type="unfinished"></translation> + <translation>Atendante konfirmon</translation> </message> <message> <location line="+12"/> <source>Waiting for other side to complete verification.</source> - <translation type="unfinished"></translation> + <translation>Atendante kontrolon venontan de la alia flanko.</translation> </message> <message> <location line="+12"/> <source>Cancel</source> - <translation type="unfinished"></translation> + <translation>Nuligi</translation> </message> </context> <context> @@ -66,12 +66,12 @@ <message> <location filename="../qml/voip/CallInvite.qml" line="+70"/> <source>Video Call</source> - <translation type="unfinished"></translation> + <translation>Vidvoko</translation> </message> <message> <location line="+0"/> <source>Voice Call</source> - <translation type="unfinished"></translation> + <translation>Voĉvoko</translation> </message> <message> <location line="+62"/> @@ -84,37 +84,37 @@ <message> <location filename="../qml/voip/CallInviteBar.qml" line="+64"/> <source>Video Call</source> - <translation type="unfinished"></translation> + <translation>Vidvoko</translation> </message> <message> <location line="+0"/> <source>Voice Call</source> - <translation type="unfinished"></translation> + <translation>Voĉvoko</translation> </message> <message> <location line="+16"/> <source>Devices</source> - <translation type="unfinished"></translation> + <translation>Aparatoj</translation> </message> <message> <location line="+10"/> <source>Accept</source> - <translation type="unfinished"></translation> + <translation>Akcepti</translation> </message> <message> <location line="+12"/> <source>Unknown microphone: %1</source> - <translation type="unfinished"></translation> + <translation>Nekonata mikrofono: %1</translation> </message> <message> <location line="+8"/> <source>Unknown camera: %1</source> - <translation type="unfinished"></translation> + <translation>Nekonata filmilo: %1</translation> </message> <message> <location line="+13"/> <source>Decline</source> - <translation type="unfinished"></translation> + <translation>Rifuzi</translation> </message> <message> <location line="-28"/> @@ -127,7 +127,7 @@ <message> <location filename="../../src/CallManager.cpp" line="+521"/> <source>Entire screen</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Tuta ekrano</translation> </message> </context> <context> @@ -135,13 +135,13 @@ <message> <location filename="../../src/ChatPage.cpp" line="+204"/> <source>Failed to invite user: %1</source> - <translation type="unfinished"></translation> + <translation>Malsukcesis inviti uzanton: %1</translation> </message> <message> <location line="+4"/> <location line="+809"/> <source>Invited user: %1</source> - <translation type="unfinished"></translation> + <translation type="unfinished">Invitita uzanto: %1</translation> </message> <message> <location line="-509"/> @@ -151,12 +151,12 @@ <message> <location line="+412"/> <source>Confirm join</source> - <translation type="unfinished"></translation> + <translation>Konfirmu aliĝon</translation> </message> <message> <location line="+1"/> <source>Do you really want to join %1?</source> - <translation type="unfinished"></translation> + <translation>Ĉu vi certe volas aliĝi al %1?</translation> </message> <message> <location line="+44"/> @@ -168,77 +168,77 @@ <location line="+35"/> <location line="+324"/> <source>Confirm invite</source> - <translation type="unfinished"></translation> + <translation>Konfirmu inviton</translation> </message> <message> <location line="-323"/> <source>Do you really want to invite %1 (%2)?</source> - <translation type="unfinished"></translation> + <translation>Ĉu vi certe volas inviti uzanton %1 (%2)?</translation> </message> <message> <location line="+11"/> <source>Failed to invite %1 to %2: %3</source> - <translation type="unfinished"></translation> + <translation>Malsukcesis inviti uzanton %1 al %2: %3</translation> </message> <message> <location line="+15"/> <source>Confirm kick</source> - <translation type="unfinished"></translation> + <translation>Konfirmu forpelon</translation> </message> <message> <location line="+1"/> <source>Do you really want to kick %1 (%2)?</source> - <translation type="unfinished"></translation> + <translation>Ĉu vi certe volas forpeli uzanton %1 (%2)?</translation> </message> <message> <location line="+16"/> <source>Kicked user: %1</source> - <translation type="unfinished"></translation> + <translation>Forpelis uzanton: %1</translation> </message> <message> <location line="+10"/> <source>Confirm ban</source> - <translation type="unfinished"></translation> + <translation>Konfirmu forbaron</translation> </message> <message> <location line="+1"/> <source>Do you really want to ban %1 (%2)?</source> - <translation type="unfinished"></translation> + <translation>Ĉu vi certe volas forbari uzanton %1 (%2)?</translation> </message> <message> <location line="+11"/> <source>Failed to ban %1 in %2: %3</source> - <translation type="unfinished"></translation> + <translation>Malsukcesis forbari uzanton %1 en %2: %3</translation> </message> <message> <location line="+5"/> <source>Banned user: %1</source> - <translation type="unfinished"></translation> + <translation>Forbaris uzanton: %1</translation> </message> <message> <location line="+10"/> <source>Confirm unban</source> - <translation type="unfinished"></translation> + <translation>Konfirmu malforbaron</translation> </message> <message> <location line="+1"/> <source>Do you really want to unban %1 (%2)?</source> - <translation type="unfinished"></translation> + <translation>Ĉu vi certe volas malforbari uzanton %1 (%2)?</translation> </message> <message> <location line="+11"/> <source>Failed to unban %1 in %2: %3</source> - <translation type="unfinished"></translation> + <translation>Malsukcesis malforbari uzanton %1 en %2: %3</translation> </message> <message> <location line="+5"/> <source>Unbanned user: %1</source> - <translation type="unfinished"></translation> + <translation>Malforbaris uzanton: %1</translation> </message> <message> <location line="+227"/> <source>Do you really want to start a private chat with %1?</source> - <translation type="unfinished"></translation> + <translation>Ĉu vi certe volas komenci privatan babilon kun %1?</translation> </message> <message> <location line="-818"/> @@ -274,12 +274,12 @@ <location line="+34"/> <location line="+123"/> <source>Please try to login again: %1</source> - <translation type="unfinished"></translation> + <translation>Bonvolu provi resaluti: %1</translation> </message> <message> <location line="+51"/> <source>Failed to join room: %1</source> - <translation type="unfinished"></translation> + <translation>Malsukcesis aliĝi al ĉambro: %1</translation> </message> <message> <location line="+5"/> @@ -289,22 +289,22 @@ <message> <location line="+6"/> <source>Failed to remove invite: %1</source> - <translation type="unfinished"></translation> + <translation>Malsukcesis forigi inviton: %1</translation> </message> <message> <location line="+21"/> <source>Room creation failed: %1</source> - <translation type="unfinished"></translation> + <translation>Malsukcesis krei ĉambron: %1</translation> </message> <message> <location line="+18"/> <source>Failed to leave room: %1</source> - <translation type="unfinished"></translation> + <translation>Malsukcesis eliri el ĉambro: %1</translation> </message> <message> <location line="+61"/> <source>Failed to kick %1 from %2: %3</source> - <translation type="unfinished"></translation> + <translation>Malsukcesis forpeli uzanton %1 de %2: %3</translation> </message> </context> <context> @@ -312,7 +312,7 @@ <message> <location filename="../../src/CommunitiesListItem.cpp" line="+30"/> <source>Hide rooms with this tag or from this community</source> - <translation type="unfinished"></translation> + <translation>Kaŝi ĉambrojn kun ĉi tiu etikedo aŭ de ĉi tiu komunumo</translation> </message> <message> <location line="+153"/> @@ -339,12 +339,12 @@ <location line="+2"/> <location line="+2"/> <source> (tag)</source> - <translation type="unfinished"></translation> + <translation> (etikedo)</translation> </message> <message> <location line="+3"/> <source> (community)</source> - <translation type="unfinished"></translation> + <translation> (komunumo)</translation> </message> </context> <context> @@ -352,12 +352,12 @@ <message> <location filename="../../src/ChatPage.cpp" line="+228"/> <source>Decrypt secrets</source> - <translation type="unfinished"></translation> + <translation>Malĉifri sekretojn</translation> </message> <message> <location line="+2"/> <source>Enter your recovery key or passphrase to decrypt your secrets:</source> - <translation type="unfinished"></translation> + <translation>Enigu vian rehavan ŝlosilon aŭ pasfrazon por malĉifri viajn sekretojn:</translation> </message> <message> <location line="+3"/> @@ -367,12 +367,12 @@ <message> <location line="+17"/> <source>Decryption failed</source> - <translation type="unfinished"></translation> + <translation>Malsukcesis malĉifrado</translation> </message> <message> <location line="+1"/> <source>Failed to decrypt secrets with the provided recovery key or passphrase</source> - <translation type="unfinished"></translation> + <translation>Malsukcesis malĉifri sekretojn per la donitaj rehava ŝlosilo aŭ pasfrazo</translation> </message> </context> <context> @@ -380,22 +380,22 @@ <message> <location filename="../qml/device-verification/DigitVerification.qml" line="+11"/> <source>Verification Code</source> - <translation type="unfinished"></translation> + <translation>Kontrolkodo</translation> </message> <message> <location line="+10"/> <source>Please verify the following digits. You should see the same numbers on both sides. If they differ, please press &apos;They do not match!&apos; to abort verification!</source> - <translation type="unfinished"></translation> + <translation>Bonvolu kontroli la sekvantajn ciferojn. Vi devus vidi la samajn numerojn ambaŭflanke. Se ili malsamas, bonvolu premi «Ili ne akordas!» por nuligi la kontrolon!</translation> </message> <message> <location line="+31"/> <source>They do not match!</source> - <translation type="unfinished"></translation> + <translation>Ili ne akordas!</translation> </message> <message> <location line="+13"/> <source>They match!</source> - <translation type="unfinished"></translation> + <translation>Ili akordas!</translation> </message> </context> <context> @@ -403,12 +403,12 @@ <message> <location filename="../../src/ui/RoomSettings.cpp" line="+42"/> <source>Apply</source> - <translation type="unfinished"></translation> + <translation>Apliki</translation> </message> <message> <location line="+1"/> <source>Cancel</source> - <translation type="unfinished"></translation> + <translation>Nuligi</translation> </message> <message> <location line="+10"/> @@ -418,7 +418,7 @@ <message> <location line="+2"/> <source>Topic</source> - <translation type="unfinished"></translation> + <translation>Temo</translation> </message> </context> <context> @@ -426,7 +426,7 @@ <message> <location filename="../qml/emoji/EmojiPicker.qml" line="+59"/> <source>Search</source> - <translation>Trovu</translation> + <translation>Serĉu</translation> </message> <message> <location line="+172"/> @@ -474,22 +474,22 @@ <message> <location filename="../qml/device-verification/EmojiVerification.qml" line="+11"/> <source>Verification Code</source> - <translation type="unfinished"></translation> + <translation>Kontrolkodo</translation> </message> <message> <location line="+10"/> <source>Please verify the following emoji. You should see the same emoji on both sides. If they differ, please press &apos;They do not match!&apos; to abort verification!</source> - <translation type="unfinished"></translation> + <translation>Bonvolu kontroli per la jenaj bildosignoj. Vi devus vidi la samajn bildosignojn ambaŭflanke. Se ili malsamas, bonvolu premi «Ili ne akordas!» por nuligi la kontrolon!</translation> </message> <message> <location line="+376"/> <source>They do not match!</source> - <translation type="unfinished"></translation> + <translation>Ili ne akordas!</translation> </message> <message> <location line="+13"/> <source>They match!</source> - <translation type="unfinished"></translation> + <translation>Ili akordas!</translation> </message> </context> <context> @@ -497,12 +497,12 @@ <message> <location filename="../qml/EncryptionIndicator.qml" line="+34"/> <source>This message is not encrypted!</source> - <translation type="unfinished"></translation> + <translation>Ĉi tiu mesaĝo ne estas ĉifrita!</translation> </message> <message> <location line="+4"/> <source>Encrypted by a verified device</source> - <translation type="unfinished"></translation> + <translation>Ĉifrita de kontrolita aparato</translation> </message> <message> <location line="+2"/> @@ -512,7 +512,7 @@ <message> <location line="+2"/> <source>Encrypted by an unverified device</source> - <translation type="unfinished"></translation> + <translation>Ĉifrita de nekontrolita aparato</translation> </message> </context> <context> @@ -565,33 +565,33 @@ <message> <location filename="../qml/device-verification/Failed.qml" line="+11"/> <source>Verification failed</source> - <translation type="unfinished"></translation> + <translation>Malsukcesis kontrolo</translation> </message> <message> <location line="+15"/> <source>Other client does not support our verification protocol.</source> - <translation type="unfinished"></translation> + <translation>Alia kliento ne subtenas nian kontrolan protokolon.</translation> </message> <message> <location line="+4"/> <source>Key mismatch detected!</source> - <translation type="unfinished"></translation> + <translation>Troviĝis malakordo de ŝlosiloj!</translation> </message> <message> <location line="+2"/> <location line="+4"/> <source>Device verification timed out.</source> - <translation type="unfinished"></translation> + <translation>Trafiĝis tempolimo de aparata kontrolo.</translation> </message> <message> <location line="-2"/> <source>Other party canceled the verification.</source> - <translation type="unfinished"></translation> + <translation>Aliulo nuligis la kontrolon.</translation> </message> <message> <location line="+18"/> <source>Close</source> - <translation type="unfinished"></translation> + <translation>Fermi</translation> </message> </context> <context> @@ -612,7 +612,7 @@ <message> <location line="+0"/> <source>All Files (*)</source> - <translation type="unfinished">Ĉiuj dosieroj (*)</translation> + <translation>Ĉiuj dosieroj (*)</translation> </message> <message> <location line="+418"/> @@ -625,7 +625,7 @@ <message> <location filename="../../src/InviteeItem.cpp" line="+22"/> <source>Remove</source> - <translation type="unfinished"></translation> + <translation>Forigi</translation> </message> </context> <context> @@ -633,12 +633,12 @@ <message> <location filename="../../src/LoginPage.cpp" line="+81"/> <source>Matrix ID</source> - <translation type="unfinished"></translation> + <translation>Identigilo de Matrikso</translation> </message> <message> <location line="+2"/> <source>e.g @joe:matrix.org</source> - <translation type="unfinished"></translation> + <translation>ekz. @tacuo:matrix.org</translation> </message> <message> <location line="+2"/> @@ -646,17 +646,19 @@ You can also put your homeserver address there, if your server doesn&apos;t support .well-known lookup. Example: @user:server.my If Nheko fails to discover your homeserver, it will show you a field to enter the server manually.</source> - <translation type="unfinished">Via ensaluta nomo.</translation> + <translation type="unfinished">Via saluta nomo. Identigilo de Matrikso devus komenciĝi per @ sekvata de la identigilo de uzanto. Post la identigilo, vi devas meti retnomon post :. Vi ankaŭ povas enmeti adreson de via hejmservilo, se via servilo ne subtenas bone-konatan trovmanieron. +Ekzemplo: @uzanto:servilo.mia +Se Nheko malsukcesas trovi vian hejmservilon, ĝi montros kampon por ĝia permana aldono.</translation> </message> <message> <location line="+25"/> <source>Password</source> - <translation type="unfinished">Pasvorto</translation> + <translation>Pasvorto</translation> </message> <message> <location line="+2"/> <source>Your password.</source> - <translation type="unfinished"></translation> + <translation>Via pasvorto.</translation> </message> <message> <location line="+3"/> @@ -667,31 +669,31 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th <location line="+2"/> <source>A name for this device, which will be shown to others, when verifying your devices. If none is provided a default is used.</source> <translatorcomment>Wow, I had to use dictionaries a lot to get this, so there may be a number of mistakes :P</translatorcomment> - <translation>Nomo por ĉi tiu aparato, montrot al aliaj, kiam kontrolant viajn aparatojn. Se neniom provizitis, defaŭlto uzit.</translation> + <translation>Nomo por ĉi tiu aparato, montrota al aliuloj, kiam oni kontrolos viajn aparatojn. Se vi neniun donos, uziĝos nomo implicita.</translation> </message> <message> <location line="+4"/> <source>Homeserver address</source> - <translation type="unfinished"></translation> + <translation>Adreso de hejmservilo</translation> </message> <message> <location line="+1"/> <source>server.my:8787</source> - <translation type="unfinished"></translation> + <translation>servilo.mia:8787</translation> </message> <message> <location line="+1"/> <source>The address that can be used to contact you homeservers client API. Example: https://server.my:8787</source> <translatorcomment>API should be valid for the EO translation of application programming interface.</translatorcomment> - <translation>La adreso tiu uzeblas kontakti la klienta API de via hejmservisto. -Ekzemplo: https://servisto.mia:8787</translation> + <translation>La adreso per kiu kontakteblas la klienta API de via hejmservilo. +Ekzemplo: https://servilo.mia:8787</translation> </message> <message> <location line="+19"/> <source>LOGIN</source> <translatorcomment>Maybe shouldn&apos;t be imperative?</translatorcomment> - <translation>ENSALUTU</translation> + <translation>SALUTI</translation> </message> <message> <location line="+84"/> @@ -699,7 +701,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <location line="+160"/> <location line="+11"/> <source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source> - <translation type="unfinished"></translation> + <translation>Vi enigis nevalidan identigilon de Matrikso ekz. @tacuo:matrix.org</translation> </message> <message> <location line="-132"/> @@ -729,7 +731,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="-171"/> <source>SSO LOGIN</source> - <translation>SSO ENSALUTU</translation> + <translation>UNUNURA SALUTO</translation> </message> <message> <location line="+267"/> @@ -761,7 +763,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <location filename="../qml/delegates/MessageDelegate.qml" line="+110"/> <location line="+9"/> <source>removed</source> - <translation type="unfinished"></translation> + <translation>forigita</translation> </message> <message> <location line="+9"/> @@ -796,32 +798,32 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+12"/> <source>%1 placed a voice call.</source> - <translation type="unfinished"></translation> + <translation>%1 metis voĉvokon.</translation> </message> <message> <location line="+2"/> <source>%1 placed a video call.</source> - <translation type="unfinished"></translation> + <translation>%1 metis vidvokon.</translation> </message> <message> <location line="+2"/> <source>%1 placed a call.</source> - <translation type="unfinished"></translation> + <translation>%1 metis vokon.</translation> </message> <message> <location line="+11"/> <source>%1 answered the call.</source> - <translation type="unfinished"></translation> + <translation>%1 respondis la vokon.</translation> </message> <message> <location line="+9"/> <source>%1 ended the call.</source> - <translation type="unfinished"></translation> + <translation>%1 finis la vokon.</translation> </message> <message> <location line="+9"/> <source>Negotiating call...</source> - <translation type="unfinished"></translation> + <translation>Traktante vokon…</translation> </message> </context> <context> @@ -834,7 +836,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+0"/> <source>Place a call</source> - <translation type="unfinished"></translation> + <translation>Voki</translation> </message> <message> <location line="+25"/> @@ -844,22 +846,22 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+50"/> <source>Write a message...</source> - <translation type="unfinished">Skribu mesaĝon...</translation> + <translation>Skribu mesaĝon…</translation> </message> <message> <location line="+214"/> <source>Emoji</source> - <translation type="unfinished"></translation> + <translation>Bildosignoj</translation> </message> <message> <location line="+16"/> <source>Send</source> - <translation>Sendu</translation> + <translation>Sendi</translation> </message> <message> <location line="+11"/> <source>You don&apos;t have permission to send messages in this room</source> - <translation type="unfinished"></translation> + <translation>Vi ne rajtas sendi mesaĝojn en ĉi tiu ĉambro</translation> </message> </context> <context> @@ -867,22 +869,22 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location filename="../qml/MessageView.qml" line="+82"/> <source>Edit</source> - <translation type="unfinished"></translation> + <translation>Redakti</translation> </message> <message> <location line="+15"/> <source>React</source> - <translation type="unfinished">Reagu</translation> + <translation>Reagi</translation> </message> <message> <location line="+13"/> <source>Reply</source> - <translation type="unfinished">Respondu</translation> + <translation>Respondi</translation> </message> <message> <location line="+11"/> <source>Options</source> - <translation type="unfinished">Ebloj</translation> + <translation>Elektebloj</translation> </message> </context> <context> @@ -890,57 +892,57 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location filename="../qml/device-verification/NewVerificationRequest.qml" line="+11"/> <source>Send Verification Request</source> - <translation type="unfinished"></translation> + <translation>Sendi kontrolpeton</translation> </message> <message> <location line="+0"/> <source>Received Verification Request</source> - <translation type="unfinished"></translation> + <translation>Ricevita kontrolpeto</translation> </message> <message> <location line="+15"/> <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source> - <translation type="unfinished"></translation> + <translation>Por vidigi al aliuloj, kiuj viaj aparatoj vere apartenas al vi, vi povas ilin kontroli. Tio ankaŭ funkciigus memagan savkopiadon de ŝlosiloj. Ĉu vi volas kontroli aparaton %1 nun?</translation> </message> <message> <location line="+2"/> <source>To ensure that no malicious user can eavesdrop on your encrypted communications you can verify the other party.</source> - <translation type="unfinished"></translation> + <translation>Por certigi, ke neniu malica uzanto subaŭskultas vian ĉifritan komunikadon, vi povas kontroli la kunparolanton.</translation> </message> <message> <location line="+3"/> <source>%1 has requested to verify their device %2.</source> - <translation type="unfinished"></translation> + <translation>%1 petis kontrolon de sia aparato %2.</translation> </message> <message> <location line="+2"/> <source>%1 using the device %2 has requested to be verified.</source> - <translation type="unfinished"></translation> + <translation>%1 petis kontrolon per la aparato %2.</translation> </message> <message> <location line="+2"/> <source>Your device (%1) has requested to be verified.</source> - <translation type="unfinished"></translation> + <translation>Via aparato (%1) petis kontrolon.</translation> </message> <message> <location line="+10"/> <source>Cancel</source> - <translation type="unfinished"></translation> + <translation>Nuligi</translation> </message> <message> <location line="+0"/> <source>Deny</source> - <translation type="unfinished"></translation> + <translation>Rifuzi</translation> </message> <message> <location line="+13"/> <source>Start verification</source> - <translation type="unfinished"></translation> + <translation>Komenci kontrolon</translation> </message> <message> <location line="+0"/> <source>Accept</source> - <translation type="unfinished"></translation> + <translation>Akcepti</translation> </message> </context> <context> @@ -950,41 +952,41 @@ Ekzemplo: https://servisto.mia:8787</translation> <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/> <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/> <source>%1 sent an encrypted message</source> - <translation type="unfinished"></translation> + <translation>%1 sendis ĉifritan mesaĝon</translation> </message> <message> <location line="+4"/> <source>* %1 %2</source> <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment> - <translation type="unfinished"></translation> + <translation>* %1 %2</translation> </message> <message> <location line="+5"/> <source>%1 replied: %2</source> <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment> - <translation type="unfinished"></translation> + <translation>%1 respondis: %2</translation> </message> <message> <location line="+4"/> <source>%1: %2</source> <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment> - <translation type="unfinished">%1: %2</translation> + <translation>%1: %2</translation> </message> <message> <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/> <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/> <source>%1 replied with an encrypted message</source> - <translation type="unfinished"></translation> + <translation>%1 respondis per ĉifrita mesaĝo</translation> </message> <message> <location line="+6"/> <source>%1 replied to a message</source> - <translation type="unfinished"></translation> + <translation>%1 respondis al mesaĝo</translation> </message> <message> <location line="+0"/> <source>%1 sent a message</source> - <translation type="unfinished"></translation> + <translation>%1 sendis mesaĝon</translation> </message> </context> <context> @@ -992,7 +994,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location filename="../qml/voip/PlaceCall.qml" line="+48"/> <source>Place a call to %1?</source> - <translation type="unfinished"></translation> + <translation>Ĉu voki al %1?</translation> </message> <message> <location line="+16"/> @@ -1002,22 +1004,22 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+22"/> <source>Voice</source> - <translation type="unfinished"></translation> + <translation>Voĉe</translation> </message> <message> <location line="+13"/> <source>Video</source> - <translation type="unfinished"></translation> + <translation>Vide</translation> </message> <message> <location line="+14"/> <source>Screen</source> - <translation type="unfinished"></translation> + <translation>Ekrane</translation> </message> <message> <location line="+10"/> <source>Cancel</source> - <translation type="unfinished"></translation> + <translation>Nuligi</translation> </message> </context> <context> @@ -1025,7 +1027,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location filename="../qml/delegates/Placeholder.qml" line="+8"/> <source>unimplemented event: </source> - <translation type="unfinished"></translation> + <translation>neprogramita okazo: </translation> </message> </context> <context> @@ -1038,12 +1040,12 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+2"/> <source>profile</source> - <translation type="unfinished"></translation> + <translation>profilo</translation> </message> <message> <location line="+1"/> <source>profile name</source> - <translation type="unfinished"></translation> + <translation>nomo de profilo</translation> </message> </context> <context> @@ -1051,13 +1053,13 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location filename="../../src/RegisterPage.cpp" line="+77"/> <source>Username</source> - <translation>Uzantnomo</translation> + <translation>Uzantonomo</translation> </message> <message> <location line="+2"/> <location line="+287"/> <source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source> - <translation type="unfinished"></translation> + <translation>La uzantonomo devas ne esti malplena, kaj devas enhavi nur la signojn a–z, 0–9, ., _, =, -, kaj /.</translation> </message> <message> <location line="-283"/> @@ -1067,7 +1069,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+3"/> <source>Please choose a secure password. The exact requirements for password strength may depend on your server.</source> - <translation type="unfinished"></translation> + <translation>Bonvolu elekti sekuran pasvorton. Precizaj postuloj por ĝia fortikeco povus dependi de via servilo.</translation> </message> <message> <location line="+4"/> @@ -1077,42 +1079,42 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+4"/> <source>Homeserver</source> - <translation type="unfinished"></translation> + <translation>Hejmservilo</translation> </message> <message> <location line="+2"/> <source>A server that allows registration. Since matrix is decentralized, you need to first find a server you can register on or host your own.</source> - <translation type="unfinished"></translation> + <translation>Servilo, kiu permesas registriĝon. Ĉar Matrikso estas federa, vi bezonas unue trovi servilon, kie vi povus registriĝi, aŭ gastigi vian propran.</translation> </message> <message> <location line="+30"/> <source>REGISTER</source> - <translation>REGISTRU</translation> + <translation>REGISTRIĜI</translation> </message> <message> <location line="+62"/> <source>No supported registration flows!</source> - <translation type="unfinished"></translation> + <translation>Neniuj subtenataj manieroj de registriĝo!</translation> </message> <message> <location line="+210"/> <source>One or more fields have invalid inputs. Please correct those issues and try again.</source> - <translation type="unfinished"></translation> + <translation>Unu aŭ pliaj kampoj havas nevalidajn enigojn. Bonvolu korekti la problemojn kaj reprovi.</translation> </message> <message> <location line="-26"/> <source>Password is not long enough (min 8 chars)</source> - <translation type="unfinished"></translation> + <translation>Pasvorto nesufiĉe longas (almenaŭ 8 signoj)</translation> </message> <message> <location line="+5"/> <source>Passwords don&apos;t match</source> - <translation type="unfinished"></translation> + <translation>Pasvortoj ne akordas</translation> </message> <message> <location line="+5"/> <source>Invalid server name</source> - <translation type="unfinished"></translation> + <translation>Nevalida nomo de servilo</translation> </message> </context> <context> @@ -1120,12 +1122,12 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location filename="../qml/ReplyPopup.qml" line="+49"/> <source>Close</source> - <translation type="unfinished"></translation> + <translation>Fermi</translation> </message> <message> <location line="+13"/> <source>Cancel edit</source> - <translation type="unfinished"></translation> + <translation>Nuligi redakton</translation> </message> </context> <context> @@ -1141,12 +1143,12 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location filename="../../src/RoomInfoListItem.cpp" line="+89"/> <source>Leave room</source> - <translation>Eliru ĉambro</translation> + <translation>Eliri el ĉambro</translation> </message> <message> <location line="+7"/> <source>Tag room as:</source> - <translation type="unfinished"></translation> + <translation>Etikedi ĉambron:</translation> </message> <message> <location line="+18"/> @@ -1158,25 +1160,25 @@ Ekzemplo: https://servisto.mia:8787</translation> <location line="+3"/> <source>Low Priority</source> <comment>Standard matrix tag for low priority rooms</comment> - <translation type="unfinished"></translation> + <translation>Malalta prioritato</translation> </message> <message> <location line="+3"/> <source>Server Notice</source> <comment>Standard matrix tag for server notices</comment> - <translation type="unfinished"></translation> + <translation>Servila avizo</translation> </message> <message> <location line="+12"/> <source>Adds or removes the specified tag.</source> <comment>WhatsThis hint for tag menu actions</comment> - <translation type="unfinished"></translation> + <translation>Aldonas aŭ forigas la donitan etikedon.</translation> </message> <message> <location line="+39"/> <source>New tag...</source> <comment>Add a new tag to the room</comment> - <translation>Nova etikedo...</translation> + <translation>Nova etikedo…</translation> </message> <message> <location line="+4"/> @@ -1193,12 +1195,12 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+169"/> <source>Accept</source> - <translation type="unfinished"></translation> + <translation>Akcepti</translation> </message> <message> <location line="+3"/> <source>Decline</source> - <translation type="unfinished"></translation> + <translation>Rifuzi</translation> </message> </context> <context> @@ -1206,73 +1208,73 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location filename="../qml/RoomSettings.qml" line="+25"/> <source>Room Settings</source> - <translation type="unfinished"></translation> + <translation>Agordoj de ĉambro</translation> </message> <message> <location line="+79"/> <source>%1 member(s)</source> - <translation type="unfinished"></translation> + <translation>%1 ĉambrano(j)</translation> </message> <message> <location line="+43"/> <source>SETTINGS</source> - <translation type="unfinished"></translation> + <translation>AGORDOJ</translation> </message> <message> <location line="+9"/> <source>Notifications</source> - <translation type="unfinished"></translation> + <translation>Sciigoj</translation> </message> <message> <location line="+5"/> <source>Muted</source> - <translation type="unfinished"></translation> + <translation>Neniuj</translation> </message> <message> <location line="+0"/> <source>Mentions only</source> - <translation type="unfinished"></translation> + <translation>Nur mencioj</translation> </message> <message> <location line="+0"/> <source>All messages</source> - <translation type="unfinished"></translation> + <translation>Ĉiuj mesaĝoj</translation> </message> <message> <location line="+15"/> <source>Anyone and guests</source> - <translation type="unfinished"></translation> + <translation>Ĉiu ajn, inkluzive gastojn</translation> </message> <message> <location line="+0"/> <source>Anyone</source> - <translation type="unfinished"></translation> + <translation>Ĉiu ajn</translation> </message> <message> <location line="+0"/> <source>Invited users</source> - <translation type="unfinished"></translation> + <translation>Invititoj</translation> </message> <message> <location line="+9"/> <source>Encryption</source> - <translation type="unfinished"></translation> + <translation>Ĉifrado</translation> </message> <message> <location line="+20"/> <source>End-to-End Encryption</source> - <translation type="unfinished"></translation> + <translation>Tutvoja ĉifrado</translation> </message> <message> <location line="+1"/> <source>Encryption is currently experimental and things might break unexpectedly. &lt;br&gt; Please take note that it can&apos;t be disabled afterwards.</source> - <translation type="unfinished"></translation> + <translation>Ĉifrado nun estas eksperimenta kaj povus rompiĝi neatendite.&lt;br&gt;Bonvole sciu, ke ne eblas ĝin malŝalti poste.</translation> </message> <message> <location line="+17"/> <source>Respond to key requests</source> - <translation type="unfinished"></translation> + <translation>Respondi al petoj de ŝlosiloj</translation> </message> <message> <location line="+5"/> @@ -1284,32 +1286,32 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+21"/> <source>INFO</source> - <translation type="unfinished"></translation> + <translation>INFORMOJ</translation> </message> <message> <location line="+9"/> <source>Internal ID</source> - <translation type="unfinished"></translation> + <translation>Interna identigilo</translation> </message> <message> <location line="+10"/> <source>Room Version</source> - <translation type="unfinished"></translation> + <translation>Versio de ĉambro</translation> </message> <message> <location line="+13"/> <source>OK</source> - <translation type="unfinished">Bone</translation> + <translation>Bone</translation> </message> <message> <location filename="../../src/ui/RoomSettings.cpp" line="+268"/> <source>Failed to enable encryption: %1</source> - <translation type="unfinished"></translation> + <translation>Malsukcesis ŝalti ĉifradon: %1</translation> </message> <message> <location line="+228"/> <source>Select an avatar</source> - <translation type="unfinished"></translation> + <translation>Elektu bildon de ĉambro</translation> </message> <message> <location line="+0"/> @@ -1319,18 +1321,18 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+12"/> <source>The selected file is not an image</source> - <translation type="unfinished"></translation> + <translation>La elektita dosiero ne estas bildo</translation> </message> <message> <location line="+5"/> <source>Error while reading file: %1</source> - <translation type="unfinished"></translation> + <translation>Eraris legado de dosiero: %1</translation> </message> <message> <location line="+34"/> <location line="+20"/> <source>Failed to upload image: %s</source> - <translation type="unfinished"></translation> + <translation>Malsukcesis alŝuti bildon: %s</translation> </message> </context> <context> @@ -1338,17 +1340,17 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location filename="../qml/voip/ScreenShare.qml" line="+30"/> <source>Share desktop with %1?</source> - <translation type="unfinished"></translation> + <translation>Ĉu montri la labortablon al %1?</translation> </message> <message> <location line="+11"/> <source>Window:</source> - <translation type="unfinished"></translation> + <translation>Fenestro:</translation> </message> <message> <location line="+20"/> <source>Frame rate:</source> - <translation type="unfinished"></translation> + <translation>Filmerrapido:</translation> </message> <message> <location line="+19"/> @@ -1369,7 +1371,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+5"/> <source>Hide mouse cursor</source> - <translation type="unfinished"></translation> + <translation>Kaŝi musmontrilon</translation> </message> <message> <location line="+20"/> @@ -1384,7 +1386,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+7"/> <source>Cancel</source> - <translation type="unfinished"></translation> + <translation>Nuligi</translation> </message> </context> <context> @@ -1392,22 +1394,22 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location filename="../../src/SideBarActions.cpp" line="+44"/> <source>User settings</source> - <translation>Uzanta agordoj</translation> + <translation>Agordoj de uzanto</translation> </message> <message> <location line="+7"/> <source>Create new room</source> - <translation>Faru novan ĉambron</translation> + <translation>Fari novan ĉambron</translation> </message> <message> <location line="+1"/> <source>Join a room</source> - <translation>Aliĝu ĉambron</translation> + <translation>Aliĝi ĉambron</translation> </message> <message> <location line="+16"/> <source>Start a new chat</source> - <translation>Komencu novan babilon</translation> + <translation>Komenci novan babilon</translation> </message> <message> <location line="+15"/> @@ -1437,7 +1439,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <location line="+2"/> <source>Read</source> <translatorcomment>Could this simply be &quot;lega&quot;?</translatorcomment> - <translation>Estas lega</translation> + <translation>Estas legita</translation> </message> </context> <context> @@ -1474,22 +1476,22 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+164"/> <source>Save image</source> - <translation type="unfinished"></translation> + <translation>Konservi bildon</translation> </message> <message> <location line="+2"/> <source>Save video</source> - <translation type="unfinished"></translation> + <translation>Konservi filmon</translation> </message> <message> <location line="+2"/> <source>Save audio</source> - <translation type="unfinished"></translation> + <translation>Konservi sonon</translation> </message> <message> <location line="+2"/> <source>Save file</source> - <translation type="unfinished"></translation> + <translation>Konservi dosieron</translation> </message> <message numerus="yes"> <location line="+228"/> @@ -1503,42 +1505,42 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+68"/> <source>%1 opened the room to the public.</source> - <translation type="unfinished"></translation> + <translation>%1 malfermis la ĉambron al publiko.</translation> </message> <message> <location line="+2"/> <source>%1 made this room require and invitation to join.</source> - <translation type="unfinished"></translation> + <translation>%1 ekpostulis inviton por aliĝoj al la ĉamrbo.</translation> </message> <message> <location line="+23"/> <source>%1 made the room open to guests.</source> - <translation type="unfinished"></translation> + <translation>%1 malfermis la ĉambron al gastoj.</translation> </message> <message> <location line="+2"/> <source>%1 has closed the room to guest access.</source> - <translation type="unfinished"></translation> + <translation>%1 fermis la ĉambron al gastoj.</translation> </message> <message> <location line="+23"/> <source>%1 made the room history world readable. Events may be now read by non-joined people.</source> - <translation type="unfinished"></translation> + <translation>%1 legebligis historion de la ĉambro al ĉiu ajn. Okazoj nun legeblos al nealiĝintoj.</translation> </message> <message> <location line="+4"/> <source>%1 set the room history visible to members from this point on.</source> - <translation type="unfinished"></translation> + <translation>%1 videbligis historion de la ĉambro al ĉiuj ĉambranoj ekde nun.</translation> </message> <message> <location line="+3"/> <source>%1 set the room history visible to members since they were invited.</source> - <translation type="unfinished"></translation> + <translation>%1 videbligis historion de la ĉambro al ĉambranoj ekde ties invito.</translation> </message> <message> <location line="+3"/> <source>%1 set the room history visible to members since they joined the room.</source> - <translation type="unfinished"></translation> + <translation>%1 videbligis historion de la ĉambro al ĉambranoj ekde ties aliĝo.</translation> </message> <message> <location line="+22"/> @@ -1549,13 +1551,13 @@ Ekzemplo: https://servisto.mia:8787</translation> <location line="+33"/> <source>%1 was invited.</source> <translatorcomment>%1 estis invitata.</translatorcomment> - <translation></translation> + <translation>%1 estis invitita.</translation> </message> <message> <location line="+19"/> <source>%1 changed their avatar.</source> <translatorcomment>%1 ŝanĝis sian avataron.</translatorcomment> - <translation></translation> + <translation>%1 ŝanĝis sian profilbildon.</translation> </message> <message> <location line="+2"/> @@ -1580,7 +1582,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+3"/> <source>%1 left the room.</source> - <translation>%1 eliris la ĉambro.</translation> + <translation>%1 eliris el la ĉambro.</translation> </message> <message> <location line="+2"/> @@ -1626,7 +1628,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <location line="+2"/> <source>%1 left after having already left!</source> <comment>This is a leave event after the user already left and shouldn&apos;t happen apart from state resets</comment> - <translation>%1 eliris post ili jam eliris!</translation> + <translation>%1 eliris jam elirinte!</translation> </message> <message> <location line="+15"/> @@ -1644,7 +1646,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location filename="../qml/TimelineRow.qml" line="+106"/> <source>Edited</source> - <translation type="unfinished"></translation> + <translation>Redaktita</translation> </message> </context> <context> @@ -1652,72 +1654,72 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location filename="../qml/TimelineView.qml" line="+125"/> <source>Copy</source> - <translation type="unfinished"></translation> + <translation>Kopii</translation> </message> <message> <location line="+7"/> <source>Copy link location</source> - <translation type="unfinished"></translation> + <translation>Kopii celon de ligilo</translation> </message> <message> <location line="+8"/> <source>React</source> - <translation>Reagu</translation> + <translation>Reagi</translation> </message> <message> <location line="+8"/> <source>Reply</source> - <translation>Respondu</translation> + <translation>Respondi</translation> </message> <message> <location line="+7"/> <source>Edit</source> - <translation type="unfinished"></translation> + <translation>Redakti</translation> </message> <message> <location line="+5"/> <source>Read receipts</source> - <translation type="unfinished"></translation> + <translation>Kvitancoj</translation> </message> <message> <location line="+6"/> <source>Forward</source> - <translation type="unfinished"></translation> + <translation>Plusendi</translation> </message> <message> <location line="+9"/> <source>Mark as read</source> - <translation type="unfinished"></translation> + <translation>Marki legita</translation> </message> <message> <location line="+4"/> <source>View raw message</source> - <translation type="unfinished"></translation> + <translation>Vidi krudan mesaĝon</translation> </message> <message> <location line="+8"/> <source>View decrypted raw message</source> - <translation type="unfinished"></translation> + <translation>Vidi malĉifritan krudan mesaĝon</translation> </message> <message> <location line="+6"/> <source>Remove message</source> - <translation type="unfinished"></translation> + <translation>Forigi mesaĝon</translation> </message> <message> <location line="+7"/> <source>Save as</source> - <translation type="unfinished"></translation> + <translation>Konservi kiel</translation> </message> <message> <location line="+7"/> <source>Open in external program</source> - <translation type="unfinished"></translation> + <translation>Malfermi per ekstera programo</translation> </message> <message> <location line="+7"/> <source>Copy link to event</source> - <translation type="unfinished"></translation> + <translation>Kopii ligilon al okazo</translation> </message> <message> <location line="+57"/> @@ -1764,12 +1766,12 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+5"/> <source>Leave room</source> - <translation>Eliru ĉambro</translation> + <translation>Eliri el ĉambro</translation> </message> <message> <location line="+5"/> <source>Settings</source> - <translation type="unfinished">Agordoj</translation> + <translation>Agordoj</translation> </message> </context> <context> @@ -1777,7 +1779,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location filename="../../src/TrayIcon.cpp" line="+112"/> <source>Show</source> - <translation>Montru</translation> + <translation>Montri</translation> </message> <message> <location line="+1"/> @@ -1790,7 +1792,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location filename="../../src/UserInfoWidget.cpp" line="+82"/> <source>Logout</source> - <translation>Elsalutu</translation> + <translation>Adiaŭi</translation> </message> <message> <location line="+20"/> @@ -1874,7 +1876,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location filename="../../src/ui/UserProfile.cpp" line="+301"/> <source>Select an avatar</source> - <translation type="unfinished"></translation> + <translation>Elektu profilbildon</translation> </message> <message> <location line="+0"/> @@ -1884,12 +1886,12 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+12"/> <source>The selected file is not an image</source> - <translation type="unfinished"></translation> + <translation>La elektita dosiero ne estas bildo</translation> </message> <message> <location line="+5"/> <source>Error while reading file: %1</source> - <translation type="unfinished"></translation> + <translation>Eraris legado de dosiero: %1</translation> </message> </context> <context> @@ -1936,7 +1938,7 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+31"/> <source>CALLS</source> - <translation type="unfinished"></translation> + <translation>VOKOJ</translation> </message> <message> <location line="+46"/> @@ -1946,142 +1948,159 @@ Ekzemplo: https://servisto.mia:8787</translation> <message> <location line="+4"/> <source>REQUEST</source> - <translation type="unfinished"></translation> + <translation>PETI</translation> </message> <message> <location line="+1"/> <source>DOWNLOAD</source> - <translation type="unfinished"></translation> + <translation>ELŜUTI</translation> </message> <message> <location line="+27"/> <source>Keep the application running in the background after closing the client window.</source> - <translation type="unfinished"></translation> + <translation>Daŭrigi la aplikaĵon fone post fermo de la klienta fenestro.</translation> </message> <message> <location line="+3"/> <source>Start the application in the background without showing the client window.</source> - <translation type="unfinished"></translation> + <translation>Ekigi la aplikaĵon fone sen montro de la klienta fenestro.</translation> </message> <message> <location line="+4"/> <source>Change the appearance of user avatars in chats. OFF - square, ON - Circle.</source> - <translation type="unfinished"></translation> + <translation>Ŝanĝas la aspekton de profilbildoj de uzantoj en babilujo. +NE – kvadrataj, JES – rondaj.</translation> </message> <message> <location line="+3"/> <source>Show a column containing groups and tags next to the room list.</source> - <translation type="unfinished"></translation> + <translation>Montras kolumnon kun grupoj kaj etikedoj apud la listo de ĉambroj.</translation> </message> <message> <location line="+1"/> <source>Decrypt messages in sidebar</source> - <translation type="unfinished"></translation> + <translation>Malĉifri mesaĝojn en flanka breto</translation> </message> <message> <location line="+2"/> <source>Decrypt the messages shown in the sidebar. Only affects messages in encrypted chats.</source> - <translation type="unfinished"></translation> + <translation>Malĉifras mesaĝojn montratajn en la flanka breto. +Influas nur sur mesaĝoj en ĉifritaj babiloj.</translation> </message> <message> <location line="+2"/> <source>Privacy Screen</source> - <translation type="unfinished"></translation> + <translation>Privateca ŝirmilo</translation> </message> <message> <location line="+2"/> <source>When the window loses focus, the timeline will be blurred.</source> - <translation type="unfinished"></translation> + <translation>Kiam la fenestro ne estos fokusata, la historio +malklariĝos.</translation> </message> <message> <location line="+2"/> <source>Privacy screen timeout (in seconds [0 - 3600])</source> - <translation type="unfinished"></translation> + <translation>Atendo ĝis privateca ŝirmilo (0–3600 sekundoj)</translation> </message> <message> <location line="+2"/> <source>Set timeout (in seconds) for how long after window loses focus before the screen will be blurred. Set to 0 to blur immediately after focus loss. Max value of 1 hour (3600 seconds)</source> - <translation type="unfinished"></translation> + <translation>Tempo de atendo (en sekundoj) ekde senfokusiĝo +de la fenestro, post kiu la enhavo malklariĝos. +Agordu al 0 por malklarigi enhavon tuj post senfokusiĝo. +Maksimuma valoro estas 1 horo (3600 sekundoj).</translation> </message> <message> <location line="+3"/> <source>Show buttons in timeline</source> - <translation type="unfinished"></translation> + <translation>Montri butonojn en historio</translation> </message> <message> <location line="+2"/> <source>Show buttons to quickly reply, react or access additional options next to each message.</source> - <translation type="unfinished"></translation> + <translation>Montras butonojn apud ĉiu mesaĝo, por rapide respondi, reagi, +aŭ meti aliajn elekteblojn.</translation> </message> <message> <location line="+2"/> <source>Limit width of timeline</source> - <translation type="unfinished"></translation> + <translation>Limigi larĝecon de historio</translation> </message> <message> <location line="+2"/> <source>Set the max width of messages in the timeline (in pixels). This can help readability on wide screen, when Nheko is maximised</source> - <translation type="unfinished"></translation> + <translation>Agordas maksimuman larĝecon por mesaĝoj en la historio (en bilderoj). +Tio povas helpi legeblecon sur larĝaj ekranoj, kiam la fenestro de Nheko grandas.</translation> </message> <message> <location line="+2"/> <source>Typing notifications</source> - <translation type="unfinished"></translation> + <translation>Sciigoj pri tajpado</translation> </message> <message> <location line="+2"/> <source>Show who is typing in a room. This will also enable or disable sending typing notifications to others.</source> - <translation type="unfinished"></translation> + <translation>Montri, kiu tajpas en ĉambro. +Ĉi tio ankaŭ ŝaltos sciigadon pri via tajpado al aliaj.</translation> </message> <message> <location line="+3"/> <source>Sort rooms by unreads</source> - <translation type="unfinished"></translation> + <translation>Ordigi ĉambrojn laŭ nelegiteco</translation> </message> <message> <location line="+2"/> <source>Display rooms with new messages first. If this is off, the list of rooms will only be sorted by the timestamp of the last message in a room. If this is on, rooms which have active notifications (the small circle with a number in it) will be sorted on top. Rooms, that you have muted, will still be sorted by timestamp, since you don&apos;t seem to consider them as important as the other rooms.</source> - <translation type="unfinished"></translation> + <translation>Montras ĉambrojn kun novaj mesaĝoj kiel la unuajn. +Kun ĉi tio malŝaltita, la listo de ĉambroj ordiĝos nur laŭ +tempo de la lasta mesaĝo en ĉambro. +Kun ĉi tio ŝaltita, ĉambroj kun aktivaj sciigoj (eta cirklo +kun nombro skribita ene) estos ordigitaj plej supre. Ĉambroj, +kiujn vi silentigis, ankoraŭ estos ordigitaj laŭ tempo, ĉar vi +probable ne pensas ilin same gravaj kiel la aliaj ĉambroj.</translation> </message> <message> <location line="+7"/> <source>Read receipts</source> - <translation type="unfinished"></translation> + <translation>Kvitancoj</translation> </message> <message> <location line="+2"/> <source>Show if your message was read. Status is displayed next to timestamps.</source> - <translation type="unfinished"></translation> + <translation>Montras, ĉu via mesaĝo estis legita. +Stato estas montrita apud tempindikoj.</translation> </message> <message> <location line="+2"/> <source>Send messages as Markdown</source> - <translation type="unfinished"></translation> + <translation>Sendi mesaĝojn Markdaŭne</translation> </message> <message> <location line="+2"/> <source>Allow using markdown in messages. When disabled, all messages are sent as a plain text.</source> - <translation type="unfinished"></translation> + <translation>Permesas uzon de Markdaŭno en mesaĝoj. +Kun ĉi tio malŝaltita, ĉiuj mesaĝoj sendiĝas en plata teksto.</translation> </message> <message> <location line="+2"/> <source>Desktop notifications</source> - <translation type="unfinished"></translation> + <translation>Labortablaj sciigoj</translation> </message> <message> <location line="+2"/> <source>Notify about received message when the client is not currently focused.</source> - <translation type="unfinished"></translation> + <translation>Sciigi pri ricevitaj mesaĝoj kiam la kliento ne estas fokusata.</translation> </message> <message> <location line="+1"/> @@ -2302,7 +2321,7 @@ This usually causes the application icon in the task bar to animate in some fash <message> <location line="+0"/> <source>All Files (*)</source> - <translation type="unfinished">Ĉiuj dosieroj (*)</translation> + <translation>Ĉiuj dosieroj (*)</translation> </message> <message> <location line="+236"/> @@ -2381,7 +2400,7 @@ This usually causes the application icon in the task bar to animate in some fash <location filename="../../src/WelcomePage.cpp" line="+34"/> <source>Welcome to nheko! The desktop client for the Matrix protocol.</source> <translatorcomment>Should &quot;Matrico&quot; be &quot;Matrica&quot;? (I don&apos;t think so)</translatorcomment> - <translation>Bonvenon al nheko! La labortabla kliento por la Matrico protokolo.</translation> + <translation>Bonvenon al nheko! La labortabla kliento por la protokolo Matrikso.</translation> </message> <message> <location line="+1"/> @@ -2396,7 +2415,7 @@ This usually causes the application icon in the task bar to animate in some fash <message> <location line="+5"/> <source>LOGIN</source> - <translation>ENSALUTU</translation> + <translation>SALUTI</translation> </message> </context> <context> @@ -2412,7 +2431,7 @@ This usually causes the application icon in the task bar to animate in some fash <message> <location filename="../../src/dialogs/CreateRoom.cpp" line="+40"/> <source>Create room</source> - <translation>Faru ĉambron</translation> + <translation>Fari ĉambron</translation> </message> <message> <location line="+2"/> @@ -2491,7 +2510,7 @@ This usually causes the application icon in the task bar to animate in some fash <message> <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/> <source>Join</source> - <translation>Aliĝu</translation> + <translation>Aliĝi</translation> </message> <message> <location line="+2"/> @@ -2527,7 +2546,7 @@ This usually causes the application icon in the task bar to animate in some fash <message> <location line="+8"/> <source>Logout. Are you sure?</source> - <translation>Elsalutu. Ĉu vi certas?</translation> + <translation>Adiaŭi. Ĉu vi certas?</translation> </message> </context> <context> @@ -2629,22 +2648,22 @@ Media size: %2 <message> <location line="+5"/> <source>You sent a video</source> - <translation>Vi sendis videon</translation> + <translation>Vi sendis filmon</translation> </message> <message> <location line="+3"/> <source>%1 sent a video</source> - <translation>%1 sendis videon</translation> + <translation>%1 sendis filmon</translation> </message> <message> <location line="+5"/> <source>You sent a sticker</source> - <translation>Vi sendis pegatinan</translation> + <translation>Vi sendis glumarkon</translation> </message> <message> <location line="+3"/> <source>%1 sent a sticker</source> - <translation>%1 sendis pegatinan</translation> + <translation>%1 sendis glumarkon</translation> </message> <message> <location line="+5"/> diff --git a/resources/langs/nheko_es.ts b/resources/langs/nheko_es.ts
index 7e9fc4c6..988e464c 100644 --- a/resources/langs/nheko_es.ts +++ b/resources/langs/nheko_es.ts
@@ -146,7 +146,7 @@ <message> <location line="-509"/> <source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source> - <translation type="unfinished"></translation> + <translation>La migración de la caché a la versión actual ha fallado. Esto puede deberse a distintos motivos. Por favor, reporte el incidente y mientras tanto intente usar una versión anterior. También puede probar a borrar la caché manualmente.</translation> </message> <message> <location line="+412"/> @@ -161,13 +161,13 @@ <message> <location line="+44"/> <source>Room %1 created.</source> - <translation type="unfinished"></translation> + <translation>Sala %1 creada.</translation> </message> <message> <location line="+35"/> <location line="+324"/> <source>Confirm invite</source> - <translation type="unfinished"></translation> + <translation>Confirmar invitación</translation> </message> <message> <location line="-323"/> @@ -182,7 +182,7 @@ <message> <location line="+15"/> <source>Confirm kick</source> - <translation type="unfinished"></translation> + <translation>Confirmar expulsión</translation> </message> <message> <location line="+1"/> @@ -192,7 +192,7 @@ <message> <location line="+16"/> <source>Kicked user: %1</source> - <translation type="unfinished"></translation> + <translation>Se ha expulsado a %1</translation> </message> <message> <location line="+10"/> diff --git a/resources/langs/nheko_et.ts b/resources/langs/nheko_et.ts
index c95cb1a5..dada82a7 100644 --- a/resources/langs/nheko_et.ts +++ b/resources/langs/nheko_et.ts
@@ -501,17 +501,17 @@ <message> <location line="+4"/> <source>Encrypted by a verified device</source> - <translation type="unfinished"></translation> + <translation>Krüptitud verifitseeritud seadmes</translation> </message> <message> <location line="+2"/> <source>Encrypted by an unverified device, but you have trusted that user so far.</source> - <translation type="unfinished"></translation> + <translation>Krüptitud verifitseerimata seadmes, aga sa oled selle kasutajat seni usaldanud.</translation> </message> <message> <location line="+2"/> <source>Encrypted by an unverified device</source> - <translation type="unfinished"></translation> + <translation>Krüptitud verifitseerimata seadmes</translation> </message> </context> <context> @@ -598,7 +598,7 @@ <message> <location filename="../qml/ForwardCompleter.qml" line="+44"/> <source>Forward Message</source> - <translation type="unfinished"></translation> + <translation>Suuna sõnum edasi</translation> </message> </context> <context> @@ -858,7 +858,7 @@ Näiteks: https://server.minu:8787</translation> <message> <location line="+11"/> <source>You don&apos;t have permission to send messages in this room</source> - <translation type="unfinished"></translation> + <translation>Sul puuduvad selles jututoas õigused sõnumite saatmiseks</translation> </message> </context> <context> @@ -1607,12 +1607,12 @@ testimiseks seni, kuni terviklik seadmete verifitseerimine on implementeeritud.< <message> <location line="+842"/> <source>%1 has changed their avatar and changed their display name to %2.</source> - <translation type="unfinished"></translation> + <translation>%1 muutis oma tunnuspilti ja seadistas uueks kuvatavaks nimeks %2.</translation> </message> <message> <location line="+5"/> <source>%1 has changed their display name to %2.</source> - <translation type="unfinished"></translation> + <translation>%1 seadistas uueks kuvatavaks nimeks %2.</translation> </message> <message> <location line="+31"/> @@ -1649,12 +1649,12 @@ testimiseks seni, kuni terviklik seadmete verifitseerimine on implementeeritud.< <message> <location filename="../qml/TimelineView.qml" line="+125"/> <source>Copy</source> - <translation type="unfinished"></translation> + <translation>Kopeeri</translation> </message> <message> <location line="+7"/> <source>Copy link location</source> - <translation type="unfinished"></translation> + <translation>Kopeeri lingi asukoht</translation> </message> <message> <location line="+8"/> @@ -1679,7 +1679,7 @@ testimiseks seni, kuni terviklik seadmete verifitseerimine on implementeeritud.< <message> <location line="+6"/> <source>Forward</source> - <translation type="unfinished"></translation> + <translation>Edasta</translation> </message> <message> <location line="+9"/> @@ -1714,7 +1714,7 @@ testimiseks seni, kuni terviklik seadmete verifitseerimine on implementeeritud.< <message> <location line="+7"/> <source>Copy link to event</source> - <translation type="unfinished"></translation> + <translation>Kopeeri sündmuse link</translation> </message> <message> <location line="+57"/> diff --git a/resources/langs/nheko_fi.ts b/resources/langs/nheko_fi.ts
index d12b1515..93513fc7 100644 --- a/resources/langs/nheko_fi.ts +++ b/resources/langs/nheko_fi.ts
@@ -17,7 +17,7 @@ <message> <location line="+67"/> <source>You are screen sharing</source> - <translation type="unfinished"></translation> + <translation>Olet jakamassa näyttöä</translation> </message> <message> <location line="+17"/> @@ -58,7 +58,7 @@ <message> <location filename="../../src/Cache.cpp" line="+2016"/> <source>You joined this room.</source> - <translation type="unfinished"></translation> + <translation>Sinä liityit tähän huoneeseen.</translation> </message> </context> <context> @@ -66,17 +66,17 @@ <message> <location filename="../qml/voip/CallInvite.qml" line="+70"/> <source>Video Call</source> - <translation type="unfinished"></translation> + <translation>Videopuhelu</translation> </message> <message> <location line="+0"/> <source>Voice Call</source> - <translation type="unfinished"></translation> + <translation>Äänipuhelu</translation> </message> <message> <location line="+62"/> <source>No microphone found.</source> - <translation type="unfinished"></translation> + <translation>Mikrofonia ei löydy.</translation> </message> </context> <context> @@ -84,12 +84,12 @@ <message> <location filename="../qml/voip/CallInviteBar.qml" line="+64"/> <source>Video Call</source> - <translation type="unfinished"></translation> + <translation>Videopuhelu</translation> </message> <message> <location line="+0"/> <source>Voice Call</source> - <translation type="unfinished"></translation> + <translation>Äänipuhelu</translation> </message> <message> <location line="+16"/> @@ -104,12 +104,12 @@ <message> <location line="+12"/> <source>Unknown microphone: %1</source> - <translation type="unfinished"></translation> + <translation>Tuntematon mikrofoni: %1</translation> </message> <message> <location line="+8"/> <source>Unknown camera: %1</source> - <translation type="unfinished"></translation> + <translation>Tuntematon kamera: %1</translation> </message> <message> <location line="+13"/> @@ -119,7 +119,7 @@ <message> <location line="-28"/> <source>No microphone found.</source> - <translation type="unfinished"></translation> + <translation>Mikrofonia ei löydy.</translation> </message> </context> <context> @@ -141,7 +141,7 @@ <location line="+4"/> <location line="+809"/> <source>Invited user: %1</source> - <translation type="unfinished"></translation> + <translation>Kutsuttu käyttäjä: %1</translation> </message> <message> <location line="-509"/> @@ -151,12 +151,12 @@ <message> <location line="+412"/> <source>Confirm join</source> - <translation type="unfinished"></translation> + <translation>Vahvista liittyminen</translation> </message> <message> <location line="+1"/> <source>Do you really want to join %1?</source> - <translation type="unfinished"></translation> + <translation>Haluatko todella liittyä huoneeseen %1?</translation> </message> <message> <location line="+44"/> @@ -278,12 +278,12 @@ <message> <location line="+51"/> <source>Failed to join room: %1</source> - <translation type="unfinished"></translation> + <translation>Huoneeseen liittyminen epäonnistui: %1</translation> </message> <message> <location line="+5"/> <source>You joined the room</source> - <translation type="unfinished"></translation> + <translation>Sinä liityit huoneeseen</translation> </message> <message> <location line="+6"/> @@ -425,22 +425,22 @@ <message> <location filename="../qml/emoji/EmojiPicker.qml" line="+59"/> <source>Search</source> - <translation type="unfinished"></translation> + <translation>Hae</translation> </message> <message> <location line="+172"/> <source>People</source> - <translation type="unfinished"></translation> + <translation>Ihmiset</translation> </message> <message> <location line="+2"/> <source>Nature</source> - <translation type="unfinished"></translation> + <translation>Luonto</translation> </message> <message> <location line="+2"/> <source>Food</source> - <translation type="unfinished"></translation> + <translation>Ruoka</translation> </message> <message> <location line="+2"/> @@ -450,7 +450,7 @@ <message> <location line="+2"/> <source>Travel</source> - <translation type="unfinished"></translation> + <translation>Matkustaminen</translation> </message> <message> <location line="+2"/> @@ -496,7 +496,7 @@ <message> <location filename="../qml/EncryptionIndicator.qml" line="+34"/> <source>This message is not encrypted!</source> - <translation type="unfinished"></translation> + <translation>Tätä viestiä ei ole salattu!</translation> </message> <message> <location line="+4"/> @@ -598,7 +598,7 @@ <message> <location filename="../qml/ForwardCompleter.qml" line="+44"/> <source>Forward Message</source> - <translation type="unfinished"></translation> + <translation>Välitä viesti</translation> </message> </context> <context> @@ -655,7 +655,7 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th <message> <location line="+2"/> <source>Your password.</source> - <translation type="unfinished"></translation> + <translation>Salasanasi.</translation> </message> <message> <location line="+3"/> @@ -670,7 +670,7 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th <message> <location line="+4"/> <source>Homeserver address</source> - <translation type="unfinished"></translation> + <translation>Kotipalvelimen osoite</translation> </message> <message> <location line="+1"/> @@ -761,12 +761,12 @@ Example: https://server.my:8787</source> <message> <location line="+9"/> <source>Encryption enabled</source> - <translation type="unfinished"></translation> + <translation>Salaus on käytössä</translation> </message> <message> <location line="+9"/> <source>room name changed to: %1</source> - <translation type="unfinished"></translation> + <translation>huoneen nimi muutettu: %1</translation> </message> <message> <location line="+0"/> @@ -862,22 +862,22 @@ Example: https://server.my:8787</source> <message> <location filename="../qml/MessageView.qml" line="+82"/> <source>Edit</source> - <translation type="unfinished"></translation> + <translation>Muokkaa</translation> </message> <message> <location line="+15"/> <source>React</source> - <translation type="unfinished"></translation> + <translation>Reagoi</translation> </message> <message> <location line="+13"/> <source>Reply</source> - <translation type="unfinished"></translation> + <translation>Vastaa</translation> </message> <message> <location line="+11"/> <source>Options</source> - <translation type="unfinished"></translation> + <translation>Asetukset</translation> </message> </context> <context> @@ -945,7 +945,7 @@ Example: https://server.my:8787</source> <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/> <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/> <source>%1 sent an encrypted message</source> - <translation type="unfinished">%1 lähetti salatun viestin</translation> + <translation>%1 lähetti salatun viestin</translation> </message> <message> <location line="+4"/> @@ -957,29 +957,29 @@ Example: https://server.my:8787</source> <location line="+5"/> <source>%1 replied: %2</source> <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment> - <translation type="unfinished"></translation> + <translation>%1 vastasi: %2</translation> </message> <message> <location line="+4"/> <source>%1: %2</source> <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment> - <translation type="unfinished">%1: %2</translation> + <translation>%1: %2</translation> </message> <message> <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/> <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/> <source>%1 replied with an encrypted message</source> - <translation type="unfinished"></translation> + <translation>%1 vastasi salatulla viestillä</translation> </message> <message> <location line="+6"/> <source>%1 replied to a message</source> - <translation type="unfinished"></translation> + <translation>%1 vastasi viestiin</translation> </message> <message> <location line="+0"/> <source>%1 sent a message</source> - <translation type="unfinished"></translation> + <translation>%1 lähetti viestin</translation> </message> </context> <context> @@ -992,7 +992,7 @@ Example: https://server.my:8787</source> <message> <location line="+16"/> <source>No microphone found.</source> - <translation type="unfinished"></translation> + <translation>Mikrofonia ei löydy.</translation> </message> <message> <location line="+22"/> @@ -1052,7 +1052,7 @@ Example: https://server.my:8787</source> <location line="+2"/> <location line="+287"/> <source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source> - <translation type="unfinished"></translation> + <translation>Käyttäjätunnus ei saa olla tyhjä, ja se saa sisältää vain merkkejä a-z, 0-9, ., _, =, - ja /.</translation> </message> <message> <location line="-283"/> @@ -1072,7 +1072,7 @@ Example: https://server.my:8787</source> <message> <location line="+4"/> <source>Homeserver</source> - <translation type="unfinished"></translation> + <translation>Kotipalvelin</translation> </message> <message> <location line="+2"/> @@ -1120,7 +1120,7 @@ Example: https://server.my:8787</source> <message> <location line="+13"/> <source>Cancel edit</source> - <translation type="unfinished"></translation> + <translation>Peruuta muokkaus</translation> </message> </context> <context> @@ -1251,12 +1251,12 @@ Example: https://server.my:8787</source> <message> <location line="+9"/> <source>Encryption</source> - <translation type="unfinished"></translation> + <translation>Salaus</translation> </message> <message> <location line="+20"/> <source>End-to-End Encryption</source> - <translation type="unfinished">Päästä-päähän-salaus</translation> + <translation>Päästä-päähän-salaus</translation> </message> <message> <location line="+1"/> @@ -1289,43 +1289,43 @@ Example: https://server.my:8787</source> <message> <location line="+10"/> <source>Room Version</source> - <translation type="unfinished"></translation> + <translation>Huoneen versio</translation> </message> <message> <location line="+13"/> <source>OK</source> - <translation type="unfinished">OK</translation> + <translation>OK</translation> </message> <message> <location filename="../../src/ui/RoomSettings.cpp" line="+268"/> <source>Failed to enable encryption: %1</source> - <translation type="unfinished">Salauksen aktivointi epäonnistui: %1</translation> + <translation>Salauksen aktivointi epäonnistui: %1</translation> </message> <message> <location line="+228"/> <source>Select an avatar</source> - <translation type="unfinished">Valitse profiilikuva</translation> + <translation>Valitse profiilikuva</translation> </message> <message> <location line="+0"/> <source>All Files (*)</source> - <translation type="unfinished">Kaikki Tiedostot (*)</translation> + <translation>Kaikki Tiedostot (*)</translation> </message> <message> <location line="+12"/> <source>The selected file is not an image</source> - <translation type="unfinished">Valittu tiedosto ei ole kuva</translation> + <translation>Valittu tiedosto ei ole kuva</translation> </message> <message> <location line="+5"/> <source>Error while reading file: %1</source> - <translation type="unfinished">Virhe lukiessa tiedostoa: %1</translation> + <translation>Virhe lukiessa tiedostoa: %1</translation> </message> <message> <location line="+34"/> <location line="+20"/> <source>Failed to upload image: %s</source> - <translation type="unfinished">Kuvan lähetys epäonnistui: %s</translation> + <translation>Kuvan lähetys epäonnistui: %s</translation> </message> </context> <context> @@ -1364,7 +1364,7 @@ Example: https://server.my:8787</source> <message> <location line="+5"/> <source>Hide mouse cursor</source> - <translation type="unfinished"></translation> + <translation>Piilota hiiren kursori</translation> </message> <message> <location line="+20"/> @@ -1379,7 +1379,7 @@ Example: https://server.my:8787</source> <message> <location line="+7"/> <source>Cancel</source> - <translation type="unfinished">Peruuta</translation> + <translation>Peruuta</translation> </message> </context> <context> @@ -1472,17 +1472,17 @@ Example: https://server.my:8787</source> <message> <location line="+2"/> <source>Save video</source> - <translation type="unfinished"></translation> + <translation>Tallenna video</translation> </message> <message> <location line="+2"/> <source>Save audio</source> - <translation type="unfinished"></translation> + <translation>Tallenna äänitiedosto</translation> </message> <message> <location line="+2"/> <source>Save file</source> - <translation type="unfinished"></translation> + <translation>Tallenna tiedosto</translation> </message> <message numerus="yes"> <location line="+228"/> @@ -1556,7 +1556,7 @@ Example: https://server.my:8787</source> <message> <location line="+4"/> <source>%1 joined.</source> - <translation type="unfinished"></translation> + <translation>%1 liittyi.</translation> </message> <message> <location line="+9"/> @@ -1571,7 +1571,7 @@ Example: https://server.my:8787</source> <message> <location line="+3"/> <source>%1 left the room.</source> - <translation type="unfinished"></translation> + <translation>%1 poistui huoneesta.</translation> </message> <message> <location line="+2"/> @@ -1596,7 +1596,7 @@ Example: https://server.my:8787</source> <message> <location line="-876"/> <source>You joined this room.</source> - <translation type="unfinished"></translation> + <translation>Sinä liityit tähän huoneeseen.</translation> </message> <message> <location line="+842"/> @@ -1622,7 +1622,7 @@ Example: https://server.my:8787</source> <message> <location line="+15"/> <source> Reason: %1</source> - <translation type="unfinished"></translation> + <translation>Perustelu: %1</translation> </message> <message> <location line="-5"/> @@ -1635,7 +1635,7 @@ Example: https://server.my:8787</source> <message> <location filename="../qml/TimelineRow.qml" line="+106"/> <source>Edited</source> - <translation type="unfinished"></translation> + <translation>Muokattu</translation> </message> </context> <context> @@ -1643,27 +1643,27 @@ Example: https://server.my:8787</source> <message> <location filename="../qml/TimelineView.qml" line="+125"/> <source>Copy</source> - <translation type="unfinished"></translation> + <translation>Kopioi</translation> </message> <message> <location line="+7"/> <source>Copy link location</source> - <translation type="unfinished"></translation> + <translation>Kopioi linkin sijainti</translation> </message> <message> <location line="+8"/> <source>React</source> - <translation type="unfinished"></translation> + <translation>Reagoi</translation> </message> <message> <location line="+8"/> <source>Reply</source> - <translation type="unfinished"></translation> + <translation>Vastaa</translation> </message> <message> <location line="+7"/> <source>Edit</source> - <translation type="unfinished"></translation> + <translation>Muokkaa</translation> </message> <message> <location line="+5"/> @@ -1673,12 +1673,12 @@ Example: https://server.my:8787</source> <message> <location line="+6"/> <source>Forward</source> - <translation type="unfinished"></translation> + <translation>Lähetä viesti eteenpäin</translation> </message> <message> <location line="+9"/> <source>Mark as read</source> - <translation type="unfinished"></translation> + <translation>Merkitse luetuksi</translation> </message> <message> <location line="+4"/> @@ -1693,12 +1693,12 @@ Example: https://server.my:8787</source> <message> <location line="+6"/> <source>Remove message</source> - <translation type="unfinished"></translation> + <translation>Poista viesti</translation> </message> <message> <location line="+7"/> <source>Save as</source> - <translation type="unfinished"></translation> + <translation>Tallenna nimellä</translation> </message> <message> <location line="+7"/> @@ -2148,7 +2148,7 @@ This usually causes the application icon in the task bar to animate in some fash <message> <location line="+4"/> <source>Ringtone</source> - <translation type="unfinished"></translation> + <translation>Soittoääni</translation> </message> <message> <location line="+2"/> @@ -2158,12 +2158,12 @@ This usually causes the application icon in the task bar to animate in some fash <message> <location line="+1"/> <source>Microphone</source> - <translation type="unfinished"></translation> + <translation>Mikrofoni</translation> </message> <message> <location line="+1"/> <source>Camera</source> - <translation type="unfinished"></translation> + <translation>Kamera</translation> </message> <message> <location line="+1"/> diff --git a/resources/langs/nheko_it.ts b/resources/langs/nheko_it.ts
index 7fe04e1b..ae727b08 100644 --- a/resources/langs/nheko_it.ts +++ b/resources/langs/nheko_it.ts
@@ -6,33 +6,33 @@ <message> <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/> <source>Calling...</source> - <translation type="unfinished"></translation> + <translation>Sto chiamando</translation> </message> <message> <location line="+10"/> <location line="+10"/> <source>Connecting...</source> - <translation type="unfinished"></translation> + <translation>Connessione in corso...</translation> </message> <message> <location line="+67"/> <source>You are screen sharing</source> - <translation type="unfinished"></translation> + <translation>Stai condividendo il tuo schermo</translation> </message> <message> <location line="+17"/> <source>Hide/Show Picture-in-Picture</source> - <translation type="unfinished"></translation> + <translation>Nascondi/Mostra Picture-in-Picture</translation> </message> <message> <location line="+13"/> <source>Unmute Mic</source> - <translation type="unfinished"></translation> + <translation>Attiva Microfono</translation> </message> <message> <location line="+0"/> <source>Mute Mic</source> - <translation type="unfinished"></translation> + <translation>Silenzia Microfono</translation> </message> </context> <context> @@ -40,12 +40,12 @@ <message> <location filename="../qml/device-verification/AwaitingVerificationConfirmation.qml" line="+11"/> <source>Awaiting Confirmation</source> - <translation type="unfinished"></translation> + <translation>In attesa di conferma</translation> </message> <message> <location line="+12"/> <source>Waiting for other side to complete verification.</source> - <translation type="unfinished"></translation> + <translation>In attesa della conferma dall&apos;altra parte per la verifica.</translation> </message> <message> <location line="+12"/> @@ -66,17 +66,17 @@ <message> <location filename="../qml/voip/CallInvite.qml" line="+70"/> <source>Video Call</source> - <translation type="unfinished"></translation> + <translation>Chiamata video</translation> </message> <message> <location line="+0"/> <source>Voice Call</source> - <translation type="unfinished"></translation> + <translation>Chiamata vocale</translation> </message> <message> <location line="+62"/> <source>No microphone found.</source> - <translation type="unfinished"></translation> + <translation>Nessun microfono trovato.</translation> </message> </context> <context> @@ -84,22 +84,22 @@ <message> <location filename="../qml/voip/CallInviteBar.qml" line="+64"/> <source>Video Call</source> - <translation type="unfinished"></translation> + <translation>Chiamata Video</translation> </message> <message> <location line="+0"/> <source>Voice Call</source> - <translation type="unfinished"></translation> + <translation>Chiamata audio</translation> </message> <message> <location line="+16"/> <source>Devices</source> - <translation type="unfinished">Dispositivi</translation> + <translation>Dispositivi</translation> </message> <message> <location line="+10"/> <source>Accept</source> - <translation type="unfinished">Accetta</translation> + <translation>Accetta</translation> </message> <message> <location line="+12"/> @@ -114,12 +114,12 @@ <message> <location line="+13"/> <source>Decline</source> - <translation type="unfinished">Rifiuta</translation> + <translation>Rifiuta</translation> </message> <message> <location line="-28"/> <source>No microphone found.</source> - <translation type="unfinished"></translation> + <translation>Nessun microfono trovato.</translation> </message> </context> <context> @@ -151,12 +151,12 @@ <message> <location line="+412"/> <source>Confirm join</source> - <translation type="unfinished"></translation> + <translation>Conferma collegamento</translation> </message> <message> <location line="+1"/> <source>Do you really want to join %1?</source> - <translation type="unfinished"></translation> + <translation>Vuoi davvero collegarti a %1?</translation> </message> <message> <location line="+44"/> @@ -167,12 +167,12 @@ <location line="+35"/> <location line="+324"/> <source>Confirm invite</source> - <translation type="unfinished"></translation> + <translation>Conferma Invito</translation> </message> <message> <location line="-323"/> <source>Do you really want to invite %1 (%2)?</source> - <translation type="unfinished"></translation> + <translation>Vuoi davvero inviare %1 (%2)?</translation> </message> <message> <location line="+11"/> @@ -182,12 +182,12 @@ <message> <location line="+15"/> <source>Confirm kick</source> - <translation type="unfinished"></translation> + <translation>Conferma l&apos;allontanamento</translation> </message> <message> <location line="+1"/> <source>Do you really want to kick %1 (%2)?</source> - <translation type="unfinished"></translation> + <translation>Vuoi davvero allontanare %1 (%2)?</translation> </message> <message> <location line="+16"/> @@ -197,12 +197,12 @@ <message> <location line="+10"/> <source>Confirm ban</source> - <translation type="unfinished"></translation> + <translation>Conferma ban</translation> </message> <message> <location line="+1"/> <source>Do you really want to ban %1 (%2)?</source> - <translation type="unfinished"></translation> + <translation>Vuoi veramente bannare %1 (%2)?</translation> </message> <message> <location line="+11"/> @@ -217,12 +217,12 @@ <message> <location line="+10"/> <source>Confirm unban</source> - <translation type="unfinished"></translation> + <translation>Conferma reintegro</translation> </message> <message> <location line="+1"/> <source>Do you really want to unban %1 (%2)?</source> - <translation type="unfinished"></translation> + <translation>Vuoi veramente reintegrare %1 (%2)?</translation> </message> <message> <location line="+11"/> @@ -303,7 +303,7 @@ <message> <location line="+61"/> <source>Failed to kick %1 from %2: %3</source> - <translation type="unfinished"></translation> + <translation>Fallita l&apos;espulsione di %1 da %2: %3</translation> </message> </context> <context> @@ -311,7 +311,7 @@ <message> <location filename="../../src/CommunitiesListItem.cpp" line="+30"/> <source>Hide rooms with this tag or from this community</source> - <translation type="unfinished"></translation> + <translation>Nascondi stanze con questo tag o di questa comunità</translation> </message> <message> <location line="+153"/> @@ -332,7 +332,7 @@ <location line="+2"/> <source>Server Notices</source> <comment>Tag translation for m.server_notice</comment> - <translation type="unfinished"></translation> + <translation>Notifiche del server</translation> </message> <message> <location line="+2"/> @@ -351,27 +351,27 @@ <message> <location filename="../../src/ChatPage.cpp" line="+228"/> <source>Decrypt secrets</source> - <translation type="unfinished"></translation> + <translation>Decifra i segreti</translation> </message> <message> <location line="+2"/> <source>Enter your recovery key or passphrase to decrypt your secrets:</source> - <translation type="unfinished"></translation> + <translation>Inserisci la chiave di recupero o la parola chiave per decriptare i tuoi segreti:</translation> </message> <message> <location line="+3"/> <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source> - <translation type="unfinished"></translation> + <translation>Inserisci la tua chiave di recupero o la parola chiave chiamata %1 per decifrare i tuoi segreti:</translation> </message> <message> <location line="+17"/> <source>Decryption failed</source> - <translation type="unfinished"></translation> + <translation>Decrittazione fallita</translation> </message> <message> <location line="+1"/> <source>Failed to decrypt secrets with the provided recovery key or passphrase</source> - <translation type="unfinished"></translation> + <translation>Fallita la decrittazione usando la chiave di recupero o la parola chiave fornita</translation> </message> </context> <context> @@ -379,22 +379,22 @@ <message> <location filename="../qml/device-verification/DigitVerification.qml" line="+11"/> <source>Verification Code</source> - <translation type="unfinished"></translation> + <translation>Codice di verifica</translation> </message> <message> <location line="+10"/> <source>Please verify the following digits. You should see the same numbers on both sides. If they differ, please press &apos;They do not match!&apos; to abort verification!</source> - <translation type="unfinished"></translation> + <translation>Verificare i seguenti numeri. Dovresti vedere gli stessi numeri da entrambi i lati. Se differiscono, premi &apos;Sono diversi!&apos; per annullare la verifica!</translation> </message> <message> <location line="+31"/> <source>They do not match!</source> - <translation type="unfinished"></translation> + <translation>Non corrispondono!</translation> </message> <message> <location line="+13"/> <source>They match!</source> - <translation type="unfinished"></translation> + <translation>Corrispondono!</translation> </message> </context> <context> @@ -425,7 +425,7 @@ <message> <location filename="../qml/emoji/EmojiPicker.qml" line="+59"/> <source>Search</source> - <translation type="unfinished"></translation> + <translation>Cerca</translation> </message> <message> <location line="+172"/> @@ -435,7 +435,7 @@ <message> <location line="+2"/> <source>Nature</source> - <translation type="unfinished"></translation> + <translation>Natura</translation> </message> <message> <location line="+2"/> @@ -445,27 +445,27 @@ <message> <location line="+2"/> <source>Activity</source> - <translation type="unfinished">Attività</translation> + <translation>Attività</translation> </message> <message> <location line="+2"/> <source>Travel</source> - <translation type="unfinished"></translation> + <translation>Viaggi</translation> </message> <message> <location line="+2"/> <source>Objects</source> - <translation type="unfinished">Oggetti</translation> + <translation>Oggetti</translation> </message> <message> <location line="+2"/> <source>Symbols</source> - <translation type="unfinished">Simboli</translation> + <translation>Simboli</translation> </message> <message> <location line="+2"/> <source>Flags</source> - <translation type="unfinished">Bandiere</translation> + <translation>Bandiere</translation> </message> </context> <context> @@ -473,7 +473,7 @@ <message> <location filename="../qml/device-verification/EmojiVerification.qml" line="+11"/> <source>Verification Code</source> - <translation type="unfinished"></translation> + <translation>Codice di Verifica</translation> </message> <message> <location line="+10"/> @@ -483,12 +483,12 @@ <message> <location line="+376"/> <source>They do not match!</source> - <translation type="unfinished"></translation> + <translation>Non corrispondono!</translation> </message> <message> <location line="+13"/> <source>They match!</source> - <translation type="unfinished"></translation> + <translation>Corrispondono!</translation> </message> </context> <context> @@ -496,22 +496,22 @@ <message> <location filename="../qml/EncryptionIndicator.qml" line="+34"/> <source>This message is not encrypted!</source> - <translation>Questo messaggio è in chiaro!</translation> + <translation>Questo messaggio non è crittato!</translation> </message> <message> <location line="+4"/> <source>Encrypted by a verified device</source> - <translation type="unfinished"></translation> + <translation>Criptato da un dispositivo verificato</translation> </message> <message> <location line="+2"/> <source>Encrypted by an unverified device, but you have trusted that user so far.</source> - <translation type="unfinished"></translation> + <translation>Criptato da un dispositivo non verificato ma hai già verificato questo utente.</translation> </message> <message> <location line="+2"/> <source>Encrypted by an unverified device</source> - <translation type="unfinished"></translation> + <translation>Criptato da un dispositivo non verificato</translation> </message> </context> <context> @@ -520,13 +520,13 @@ <location filename="../../src/timeline/EventStore.cpp" line="+616"/> <source>-- Encrypted Event (No keys found for decryption) --</source> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> - <translation type="unfinished">-- Evento Criptato (Chiavi per la decriptazione non trovate) --</translation> + <translation>-- Evento Criptato (Nessuna chiave privata per la decriptazione) --</translation> </message> <message> <location line="+7"/> <source>-- Encrypted Event (Key not valid for this index) --</source> <comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment> - <translation type="unfinished"></translation> + <translation>-- Evento Criptato (Chiave non valida per questo indice) --</translation> </message> <message> <location line="+32"/> @@ -1024,7 +1024,7 @@ Esempio: https://server.mio:8787</translation> <message> <location filename="../qml/delegates/Placeholder.qml" line="+8"/> <source>unimplemented event: </source> - <translation>event non implementato: </translation> + <translation>evento non implementato: </translation> </message> </context> <context> @@ -1157,7 +1157,7 @@ Esempio: https://server.mio:8787</translation> <location line="+3"/> <source>Low Priority</source> <comment>Standard matrix tag for low priority rooms</comment> - <translation>bassa priorità</translation> + <translation>Tag matrix standard per stanze a bassa priorità</translation> </message> <message> <location line="+3"/> @@ -1181,7 +1181,7 @@ Esempio: https://server.mio:8787</translation> <location line="+4"/> <source>New Tag</source> <comment>Tag name prompt title</comment> - <translation type="unfinished"></translation> + <translation>Nome del tag</translation> </message> <message> <location line="+1"/> @@ -1520,12 +1520,12 @@ Esempio: https://server.mio:8787</translation> <message> <location line="+23"/> <source>%1 made the room history world readable. Events may be now read by non-joined people.</source> - <translation>%1 ha reso la cronologia della stanza leggibile da tutti. Gli eventi adesso possono essere letti da persone esterne. </translation> + <translation>%1 ha reso la cronologia della stanza leggibile da tutti. Gli eventi adesso possono essere letti da persone esterne.</translation> </message> <message> <location line="+4"/> <source>%1 set the room history visible to members from this point on.</source> - <translation>%1 ha reso la cronologia della stanza visibile ai membri da questo momento in poi. </translation> + <translation>%1 ha reso la cronologia della stanza visibile ai membri da questo momento in poi.</translation> </message> <message> <location line="+3"/> @@ -2449,7 +2449,7 @@ This usually causes the application icon in the task bar to animate in some fash <message> <location filename="../../src/dialogs/FallbackAuth.cpp" line="+34"/> <source>Open Fallback in Browser</source> - <translation>Apertura di Ripiego nel Browser </translation> + <translation>Apertura di Ripiego nel Browser</translation> </message> <message> <location line="+1"/> diff --git a/resources/langs/nheko_pt_BR.ts b/resources/langs/nheko_pt_BR.ts new file mode 100644
index 00000000..5c4e9611 --- /dev/null +++ b/resources/langs/nheko_pt_BR.ts
@@ -0,0 +1,2721 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="pt_BR"> +<context> + <name>ActiveCallBar</name> + <message> + <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/> + <source>Calling...</source> + <translation>Ligando...</translation> + </message> + <message> + <location line="+10"/> + <location line="+10"/> + <source>Connecting...</source> + <translation>Conectando...</translation> + </message> + <message> + <location line="+67"/> + <source>You are screen sharing</source> + <translation>Você está compartilhando sua tela</translation> + </message> + <message> + <location line="+17"/> + <source>Hide/Show Picture-in-Picture</source> + <translation>Esconder/Mostrar Picture-in-Picture</translation> + </message> + <message> + <location line="+13"/> + <source>Unmute Mic</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>Mute Mic</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>AwaitingVerificationConfirmation</name> + <message> + <location filename="../qml/device-verification/AwaitingVerificationConfirmation.qml" line="+11"/> + <source>Awaiting Confirmation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>Waiting for other side to complete verification.</source> + <translation>Esperando o outro lado completar a verificação.</translation> + </message> + <message> + <location line="+12"/> + <source>Cancel</source> + <translation>Cancelar</translation> + </message> +</context> +<context> + <name>Cache</name> + <message> + <location filename="../../src/Cache.cpp" line="+2016"/> + <source>You joined this room.</source> + <translation>Você entrou nessa sala.</translation> + </message> +</context> +<context> + <name>CallInvite</name> + <message> + <location filename="../qml/voip/CallInvite.qml" line="+70"/> + <source>Video Call</source> + <translation>Chamada de Vídeo</translation> + </message> + <message> + <location line="+0"/> + <source>Voice Call</source> + <translation>Chamada de Voz</translation> + </message> + <message> + <location line="+62"/> + <source>No microphone found.</source> + <translation>Nenhum microfone encontrado.</translation> + </message> +</context> +<context> + <name>CallInviteBar</name> + <message> + <location filename="../qml/voip/CallInviteBar.qml" line="+64"/> + <source>Video Call</source> + <translation>Chamada de Vídeo</translation> + </message> + <message> + <location line="+0"/> + <source>Voice Call</source> + <translation>Chamada de Voz</translation> + </message> + <message> + <location line="+16"/> + <source>Devices</source> + <translation>Dispositivos</translation> + </message> + <message> + <location line="+10"/> + <source>Accept</source> + <translation>Aceitar</translation> + </message> + <message> + <location line="+12"/> + <source>Unknown microphone: %1</source> + <translation>Microfone desconhecido: %1</translation> + </message> + <message> + <location line="+8"/> + <source>Unknown camera: %1</source> + <translation>Câmera desconhecida: %1</translation> + </message> + <message> + <location line="+13"/> + <source>Decline</source> + <translation>Rejeitar</translation> + </message> + <message> + <location line="-28"/> + <source>No microphone found.</source> + <translation>Nenhum microfone encontrado.</translation> + </message> +</context> +<context> + <name>CallManager</name> + <message> + <location filename="../../src/CallManager.cpp" line="+521"/> + <source>Entire screen</source> + <translation>Tela Inteira</translation> + </message> +</context> +<context> + <name>ChatPage</name> + <message> + <location filename="../../src/ChatPage.cpp" line="+204"/> + <source>Failed to invite user: %1</source> + <translation>Falha ao convidar usuário: %1</translation> + </message> + <message> + <location line="+4"/> + <location line="+809"/> + <source>Invited user: %1</source> + <translation>Usuário convidado: %1</translation> + </message> + <message> + <location line="-509"/> + <source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+412"/> + <source>Confirm join</source> + <translation>Confirmar entrada</translation> + </message> + <message> + <location line="+1"/> + <source>Do you really want to join %1?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+44"/> + <source>Room %1 created.</source> + <translation>Sala %1 criada.</translation> + </message> + <message> + <location line="+35"/> + <location line="+324"/> + <source>Confirm invite</source> + <translation>Confirmar convite</translation> + </message> + <message> + <location line="-323"/> + <source>Do you really want to invite %1 (%2)?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Failed to invite %1 to %2: %3</source> + <translation>Falha ao convidar %1 para %2: %3</translation> + </message> + <message> + <location line="+15"/> + <source>Confirm kick</source> + <translation>Confirmar expulsão</translation> + </message> + <message> + <location line="+1"/> + <source>Do you really want to kick %1 (%2)?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source>Kicked user: %1</source> + <translation>Usuário expulso: %1</translation> + </message> + <message> + <location line="+10"/> + <source>Confirm ban</source> + <translation>Confirmar banimento</translation> + </message> + <message> + <location line="+1"/> + <source>Do you really want to ban %1 (%2)?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Failed to ban %1 in %2: %3</source> + <translation>Falha ao banir %1 em %2: %3</translation> + </message> + <message> + <location line="+5"/> + <source>Banned user: %1</source> + <translation>Usuário banido: %1</translation> + </message> + <message> + <location line="+10"/> + <source>Confirm unban</source> + <translation>Confirmar desbanimento</translation> + </message> + <message> + <location line="+1"/> + <source>Do you really want to unban %1 (%2)?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Failed to unban %1 in %2: %3</source> + <translation>Falha ao desbanir %1 em %2: %3</translation> + </message> + <message> + <location line="+5"/> + <source>Unbanned user: %1</source> + <translation>Usuário desbanido: %1</translation> + </message> + <message> + <location line="+227"/> + <source>Do you really want to start a private chat with %1?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-818"/> + <source>Cache migration failed!</source> + <translation>Migração do cache falhou!</translation> + </message> + <message> + <location line="+13"/> + <source>Incompatible cache version</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+50"/> + <source>Failed to restore OLM account. Please login again.</source> + <translation>Falha ao restaurar conta OLM. Por favor faça login novamente.</translation> + </message> + <message> + <location line="+4"/> + <source>Failed to restore save data. Please login again.</source> + <translation>Falha ao restaurar dados salvos. Por favor faça login novamente.</translation> + </message> + <message> + <location line="+145"/> + <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+34"/> + <location line="+123"/> + <source>Please try to login again: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+51"/> + <source>Failed to join room: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>You joined the room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Failed to remove invite: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+21"/> + <source>Room creation failed: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Failed to leave room: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+61"/> + <source>Failed to kick %1 from %2: %3</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>CommunitiesListItem</name> + <message> + <location filename="../../src/CommunitiesListItem.cpp" line="+30"/> + <source>Hide rooms with this tag or from this community</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+153"/> + <source>All rooms</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Favourite rooms</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Low priority rooms</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Server Notices</source> + <comment>Tag translation for m.server_notice</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <location line="+2"/> + <source> (tag)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source> (community)</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>CrossSigningSecrets</name> + <message> + <location filename="../../src/ChatPage.cpp" line="+228"/> + <source>Decrypt secrets</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Enter your recovery key or passphrase to decrypt your secrets:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>Decryption failed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Failed to decrypt secrets with the provided recovery key or passphrase</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>DigitVerification</name> + <message> + <location filename="../qml/device-verification/DigitVerification.qml" line="+11"/> + <source>Verification Code</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Please verify the following digits. You should see the same numbers on both sides. If they differ, please press &apos;They do not match!&apos; to abort verification!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+31"/> + <source>They do not match!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>They match!</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>EditModal</name> + <message> + <location filename="../../src/ui/RoomSettings.cpp" line="+42"/> + <source>Apply</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Topic</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>EmojiPicker</name> + <message> + <location filename="../qml/emoji/EmojiPicker.qml" line="+59"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+172"/> + <source>People</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Nature</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Food</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Activity</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Travel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Objects</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Symbols</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Flags</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>EmojiVerification</name> + <message> + <location filename="../qml/device-verification/EmojiVerification.qml" line="+11"/> + <source>Verification Code</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Please verify the following emoji. You should see the same emoji on both sides. If they differ, please press &apos;They do not match!&apos; to abort verification!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+376"/> + <source>They do not match!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>They match!</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>EncryptionIndicator</name> + <message> + <location filename="../qml/EncryptionIndicator.qml" line="+34"/> + <source>This message is not encrypted!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Encrypted by a verified device</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Encrypted by an unverified device, but you have trusted that user so far.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Encrypted by an unverified device</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>EventStore</name> + <message> + <location filename="../../src/timeline/EventStore.cpp" line="+616"/> + <source>-- Encrypted Event (No keys found for decryption) --</source> + <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>-- Encrypted Event (Key not valid for this index) --</source> + <comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+32"/> + <location line="+63"/> + <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source> + <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-49"/> + <location line="+62"/> + <source>-- Decryption Error (%1) --</source> + <comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed as %1.</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-52"/> + <source>-- Encrypted Event (Unknown event type) --</source> + <comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>-- Replay attack! This message index was reused! --</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>-- Message by unverified device! --</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Failed</name> + <message> + <location filename="../qml/device-verification/Failed.qml" line="+11"/> + <source>Verification failed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>Other client does not support our verification protocol.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Key mismatch detected!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <location line="+4"/> + <source>Device verification timed out.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-2"/> + <source>Other party canceled the verification.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Close</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ForwardCompleter</name> + <message> + <location filename="../qml/ForwardCompleter.qml" line="+44"/> + <source>Forward Message</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>InputBar</name> + <message> + <location filename="../../src/timeline/InputBar.cpp" line="+232"/> + <source>Select a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>All Files (*)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+418"/> + <source>Failed to upload media. Please try again.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>InviteeItem</name> + <message> + <location filename="../../src/InviteeItem.cpp" line="+22"/> + <source>Remove</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>LoginPage</name> + <message> + <location filename="../../src/LoginPage.cpp" line="+81"/> + <source>Matrix ID</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>e.g @joe:matrix.org</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Your login name. A mxid should start with @ followed by the user id. After the user id you need to include your server name after a :. +You can also put your homeserver address there, if your server doesn&apos;t support .well-known lookup. +Example: @user:server.my +If Nheko fails to discover your homeserver, it will show you a field to enter the server manually.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+25"/> + <source>Password</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Your password.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Device name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>A name for this device, which will be shown to others, when verifying your devices. If none is provided a default is used.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Homeserver address</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>server.my:8787</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>The address that can be used to contact you homeservers client API. +Example: https://server.my:8787</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+19"/> + <source>LOGIN</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+84"/> + <location line="+11"/> + <location line="+160"/> + <location line="+11"/> + <source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-132"/> + <source>Autodiscovery failed. Received malformed response.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Autodiscovery failed. Unknown error when requesting .well-known.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+25"/> + <source>The required endpoints were not found. Possibly not a Matrix server.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Received malformed response. Make sure the homeserver domain is valid.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>An unknown error occured. Make sure the homeserver domain is valid.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-171"/> + <source>SSO LOGIN</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+267"/> + <source>Empty password</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+57"/> + <source>SSO login failed</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>MemberList</name> + <message> + <location filename="../../src/dialogs/MemberList.cpp" line="+94"/> + <source>Room members</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>OK</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>MessageDelegate</name> + <message> + <location filename="../qml/delegates/MessageDelegate.qml" line="+128"/> + <source>Encryption enabled</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>room name changed to: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>removed room name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>topic changed to: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>removed topic</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>%1 created and configured room: %2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>%1 placed a voice call.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>%1 placed a video call.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>%1 placed a call.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+29"/> + <source>Negotiating call...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-18"/> + <source>%1 answered the call.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-72"/> + <location line="+9"/> + <source>removed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+72"/> + <source>%1 ended the call.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>MessageInput</name> + <message> + <location filename="../qml/MessageInput.qml" line="+43"/> + <source>Hang up</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>Place a call</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+25"/> + <source>Send a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+50"/> + <source>Write a message...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+214"/> + <source>Emoji</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source>Send</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>You don&apos;t have permission to send messages in this room</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>MessageView</name> + <message> + <location filename="../qml/MessageView.qml" line="+82"/> + <source>Edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>React</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>Reply</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Options</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>NewVerificationRequest</name> + <message> + <location filename="../qml/device-verification/NewVerificationRequest.qml" line="+11"/> + <source>Send Verification Request</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>Received Verification Request</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>To ensure that no malicious user can eavesdrop on your encrypted communications you can verify the other party.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>%1 has requested to verify their device %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>%1 using the device %2 has requested to be verified.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Your device (%1) has requested to be verified.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>Deny</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>Start verification</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>Accept</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>NotificationsManager</name> + <message> + <location filename="../../src/notifications/Manager.cpp" line="+22"/> + <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/> + <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/> + <source>%1 sent an encrypted message</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>* %1 %2</source> + <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>%1 replied: %2</source> + <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>%1: %2</source> + <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/> + <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/> + <source>%1 replied with an encrypted message</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>%1 replied to a message</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>%1 sent a message</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>PlaceCall</name> + <message> + <location filename="../qml/voip/PlaceCall.qml" line="+48"/> + <source>Place a call to %1?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source>No microphone found.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+22"/> + <source>Voice</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>Video</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+14"/> + <source>Screen</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Placeholder</name> + <message> + <location filename="../qml/delegates/Placeholder.qml" line="+8"/> + <source>unimplemented event: </source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>QCoreApplication</name> + <message> + <location filename="../../src/main.cpp" line="+167"/> + <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>profile</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>profile name</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>RegisterPage</name> + <message> + <location filename="../../src/RegisterPage.cpp" line="+77"/> + <source>Username</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <location line="+287"/> + <source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-283"/> + <source>Password</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Please choose a secure password. The exact requirements for password strength may depend on your server.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Password confirmation</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Homeserver</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>A server that allows registration. Since matrix is decentralized, you need to first find a server you can register on or host your own.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+30"/> + <source>REGISTER</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+62"/> + <source>No supported registration flows!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+210"/> + <source>One or more fields have invalid inputs. Please correct those issues and try again.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-26"/> + <source>Password is not long enough (min 8 chars)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Passwords don&apos;t match</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Invalid server name</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ReplyPopup</name> + <message> + <location filename="../qml/ReplyPopup.qml" line="+49"/> + <source>Close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>Cancel edit</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>RoomInfo</name> + <message> + <location filename="../../src/Cache.cpp" line="+1813"/> + <source>no version stored</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>RoomInfoListItem</name> + <message> + <location filename="../../src/RoomInfoListItem.cpp" line="+89"/> + <source>Leave room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Tag room as:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+18"/> + <source>Favourite</source> + <comment>Standard matrix tag for favourites</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Low Priority</source> + <comment>Standard matrix tag for low priority rooms</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Server Notice</source> + <comment>Standard matrix tag for server notices</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>Adds or removes the specified tag.</source> + <comment>WhatsThis hint for tag menu actions</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+39"/> + <source>New tag...</source> + <comment>Add a new tag to the room</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>New Tag</source> + <comment>Tag name prompt title</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Tag:</source> + <comment>Tag name prompt</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+169"/> + <source>Accept</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Decline</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>RoomSettings</name> + <message> + <location filename="../qml/RoomSettings.qml" line="+25"/> + <source>Room Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+79"/> + <source>%1 member(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+43"/> + <source>SETTINGS</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Notifications</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Muted</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>Mentions only</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>All messages</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>Anyone and guests</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>Anyone</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>Invited users</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Encryption</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+20"/> + <source>End-to-End Encryption</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Encryption is currently experimental and things might break unexpectedly. &lt;br&gt; + Please take note that it can&apos;t be disabled afterwards.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+17"/> + <source>Respond to key requests</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Whether or not the client should respond automatically with the session keys + upon request. Use with caution, this is a temporary measure to test the + E2E implementation until device verification is completed.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+21"/> + <source>INFO</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Internal ID</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Room Version</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>OK</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/ui/RoomSettings.cpp" line="+268"/> + <source>Failed to enable encryption: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+228"/> + <source>Select an avatar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>All Files (*)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>The selected file is not an image</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Error while reading file: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+34"/> + <location line="+20"/> + <source>Failed to upload image: %s</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ScreenShare</name> + <message> + <location filename="../qml/voip/ScreenShare.qml" line="+30"/> + <source>Share desktop with %1?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Window:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+20"/> + <source>Frame rate:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+19"/> + <source>Include your camera picture-in-picture</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>Request remote camera</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <location line="+9"/> + <source>View your callee&apos;s camera like a regular video call</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Hide mouse cursor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+20"/> + <source>Share</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+19"/> + <source>Preview</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>SideBarActions</name> + <message> + <location filename="../../src/SideBarActions.cpp" line="+44"/> + <source>User settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Create new room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Join a room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+16"/> + <source>Start a new chat</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>Room directory</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>StatusIndicator</name> + <message> + <location filename="../qml/StatusIndicator.qml" line="+21"/> + <source>Failed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Sent</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Received</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Read</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Success</name> + <message> + <location filename="../qml/device-verification/Success.qml" line="+10"/> + <source>Successful Verification</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>Verification successful! Both sides verified their devices!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>Close</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>TimelineModel</name> + <message> + <location filename="../../src/timeline/TimelineModel.cpp" line="+1044"/> + <source>Message redaction failed: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+73"/> + <location line="+5"/> + <source>Failed to encrypt event, sending aborted!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+164"/> + <source>Save image</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Save video</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Save audio</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Save file</source> + <translation type="unfinished"></translation> + </message> + <message numerus="yes"> + <location line="+228"/> + <source>%1 and %2 are typing.</source> + <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> + <translation type="unfinished"> + <numerusform></numerusform> + <numerusform></numerusform> + </translation> + </message> + <message> + <location line="+68"/> + <source>%1 opened the room to the public.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>%1 made this room require and invitation to join.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> + <source>%1 made the room open to guests.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>%1 has closed the room to guest access.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> + <source>%1 made the room history world readable. Events may be now read by non-joined people.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>%1 set the room history visible to members from this point on.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>%1 set the room history visible to members since they were invited.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>%1 set the room history visible to members since they joined the room.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+22"/> + <source>%1 has changed the room&apos;s permissions.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+33"/> + <source>%1 was invited.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+19"/> + <source>%1 changed their avatar.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>%1 changed some profile info.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>%1 joined.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>%1 rejected their invite.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Revoked the invite to %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>%1 left the room.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Kicked %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Unbanned %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+14"/> + <source>%1 was banned.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-11"/> + <source>%1 redacted their knock.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-876"/> + <source>You joined this room.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+842"/> + <source>%1 has changed their avatar and changed their display name to %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>%1 has changed their display name to %2.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+31"/> + <source>Rejected the knock from %1.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>%1 left after having already left!</source> + <comment>This is a leave event after the user already left and shouldn&apos;t happen apart from state resets</comment> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source> Reason: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-5"/> + <source>%1 knocked.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>TimelineRow</name> + <message> + <location filename="../qml/TimelineRow.qml" line="+106"/> + <source>Edited</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>TimelineView</name> + <message> + <location filename="../qml/TimelineView.qml" line="+125"/> + <source>Copy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Copy link location</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>React</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Reply</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Edit</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Read receipts</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Forward</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Mark as read</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>View raw message</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>View decrypted raw message</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Remove message</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Save as</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Open in external program</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Copy link to event</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+57"/> + <source>No room open</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>TimelineViewManager</name> + <message> + <location filename="../../src/timeline/TimelineViewManager.cpp" line="+570"/> + <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>TopBar</name> + <message> + <location filename="../qml/TopBar.qml" line="+51"/> + <source>Back to room list</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <location line="+10"/> + <source>No room selected</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+24"/> + <source>Room options</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Invite users</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Members</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Leave room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>TrayIcon</name> + <message> + <location filename="../../src/TrayIcon.cpp" line="+112"/> + <source>Show</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Quit</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UserInfoWidget</name> + <message> + <location filename="../../src/UserInfoWidget.cpp" line="+82"/> + <source>Logout</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+20"/> + <source>Set custom status message</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Custom status message</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Status:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>User Profile Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Set presence automatically</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Online</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Unavailable</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>Offline</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UserProfile</name> + <message> + <location filename="../qml/UserProfile.qml" line="+24"/> + <source>Global User Profile</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>Room User Profile</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+114"/> + <location line="+107"/> + <source>Verify</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-54"/> + <source>Ban the user</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-17"/> + <source>Start a private chat</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Kick the user</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+63"/> + <source>Unverify</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../../src/ui/UserProfile.cpp" line="+301"/> + <source>Select an avatar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>All Files (*)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>The selected file is not an image</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Error while reading file: %1</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UserSettings</name> + <message> + <location filename="../../src/UserSettingsPage.cpp" line="+340"/> + <location filename="../../src/UserSettingsPage.h" line="+186"/> + <source>Default</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>UserSettingsPage</name> + <message> + <location line="+553"/> + <source>Minimize to tray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Start in tray</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Group&apos;s sidebar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-3"/> + <source>Circular Avatars</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-210"/> + <source>profile: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+96"/> + <source>Default</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+31"/> + <source>CALLS</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+46"/> + <source>Cross Signing Keys</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>REQUEST</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>DOWNLOAD</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+27"/> + <source>Keep the application running in the background after closing the client window.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Start the application in the background without showing the client window.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Change the appearance of user avatars in chats. +OFF - square, ON - Circle.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Show a column containing groups and tags next to the room list.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Decrypt messages in sidebar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Decrypt the messages shown in the sidebar. +Only affects messages in encrypted chats.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Privacy Screen</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>When the window loses focus, the timeline will +be blurred.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Privacy screen timeout (in seconds [0 - 3600])</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Set timeout (in seconds) for how long after window loses +focus before the screen will be blurred. +Set to 0 to blur immediately after focus loss. Max value of 1 hour (3600 seconds)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Show buttons in timeline</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Show buttons to quickly reply, react or access additional options next to each message.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Limit width of timeline</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Set the max width of messages in the timeline (in pixels). This can help readability on wide screen, when Nheko is maximised</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Typing notifications</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Show who is typing in a room. +This will also enable or disable sending typing notifications to others.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Sort rooms by unreads</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Display rooms with new messages first. +If this is off, the list of rooms will only be sorted by the timestamp of the last message in a room. +If this is on, rooms which have active notifications (the small circle with a number in it) will be sorted on top. Rooms, that you have muted, will still be sorted by timestamp, since you don&apos;t seem to consider them as important as the other rooms.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Read receipts</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Show if your message was read. +Status is displayed next to timestamps.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Send messages as Markdown</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Allow using markdown in messages. +When disabled, all messages are sent as a plain text.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Desktop notifications</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Notify about received message when the client is not currently focused.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Alert on notification</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Show an alert when a message is received. +This usually causes the application icon in the task bar to animate in some fashion.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Highlight message on hover</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Change the background color of messages when you hover over them.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Large Emoji in timeline</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Make font size larger if messages with only a few emojis are displayed.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+56"/> + <source>Share keys with verified users and devices</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+406"/> + <source>CACHED</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+6"/> + <source>NOT CACHED</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-460"/> + <source>Scale factor</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Change the scale factor of the whole user interface.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Font size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Font Family</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Theme</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Ringtone</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Set the notification sound to play when a call invite arrives</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Microphone</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Camera</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Camera resolution</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Camera frame rate</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+14"/> + <source>Allow fallback call assist server</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Will use turn.matrix.org as assist when your home server does not offer one.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Device ID</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Device Fingerprint</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-164"/> + <source>Session Keys</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>IMPORT</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>EXPORT</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-34"/> + <source>ENCRYPTION</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-115"/> + <source>GENERAL</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+64"/> + <source>INTERFACE</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+194"/> + <source>Touchscreen mode</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Will prevent text selection in the timeline to make touch scrolling easier.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>Emoji Font Family</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+40"/> + <source>Automatically replies to key requests from other users, if they are verified.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>Master signing key</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Your most important key. You don&apos;t need to have it cached, since not caching it makes it less likely it can be stolen and it is only needed to rotate your other signing keys.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>User signing key</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>The key to verify other users. If it is cached, verifying a user will verify all their devices.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Self signing key</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>The key to verify your own devices. If it is cached, verifying one of your devices will mark it verified for all your other devices and for users, that have verified you.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Backup key</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>The key to decrypt online key backups. If it is cached, you can enable online key backup to store encryption keys securely encrypted on the server.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+54"/> + <source>Select a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+0"/> + <source>All Files (*)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+236"/> + <source>Open Sessions File</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <location line="+18"/> + <location line="+9"/> + <location line="+19"/> + <location line="+11"/> + <location line="+18"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-66"/> + <location line="+28"/> + <source>File Password</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-27"/> + <source>Enter the passphrase to decrypt the file:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <location line="+28"/> + <source>The password cannot be empty</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="-8"/> + <source>Enter passphrase to encrypt your session keys:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>File to save the exported session keys</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Waiting</name> + <message> + <location filename="../qml/device-verification/Waiting.qml" line="+11"/> + <source>Waiting for other party…</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>Waiting for other side to accept the verification request.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Waiting for other side to continue the verification process.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Waiting for other side to complete the verification process.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+15"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>WelcomePage</name> + <message> + <location filename="../../src/WelcomePage.cpp" line="+34"/> + <source>Welcome to nheko! The desktop client for the Matrix protocol.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Enjoy your stay!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+23"/> + <source>REGISTER</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>LOGIN</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>descriptiveTime</name> + <message> + <location filename="../../src/Utils.cpp" line="+207"/> + <source>Yesterday</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>dialogs::CreateRoom</name> + <message> + <location filename="../../src/dialogs/CreateRoom.cpp" line="+40"/> + <source>Create room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> + <source>Name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Topic</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Alias</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Room Visibility</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Room Preset</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+9"/> + <source>Direct Chat</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>dialogs::FallbackAuth</name> + <message> + <location filename="../../src/dialogs/FallbackAuth.cpp" line="+34"/> + <source>Open Fallback in Browser</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Confirm</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+12"/> + <source>Open the fallback, follow the steps and confirm after completing them.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>dialogs::InviteUsers</name> + <message> + <location filename="../../src/dialogs/InviteUsers.cpp" line="+46"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>User ID to invite</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>dialogs::JoinRoom</name> + <message> + <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/> + <source>Join</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>Room ID or alias</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>dialogs::LeaveRoom</name> + <message> + <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Are you sure you want to leave?</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>dialogs::Logout</name> + <message> + <location filename="../../src/dialogs/Logout.cpp" line="+35"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+8"/> + <source>Logout. Are you sure?</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>dialogs::PreviewUploadOverlay</name> + <message> + <location filename="../../src/dialogs/PreviewUploadOverlay.cpp" line="+29"/> + <source>Upload</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+93"/> + <source>Media type: %1 +Media size: %2 +</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>dialogs::ReCaptcha</name> + <message> + <location filename="../../src/dialogs/ReCaptcha.cpp" line="+35"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Confirm</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> + <source>Solve the reCAPTCHA and press the confirm button</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>dialogs::ReadReceipts</name> + <message> + <location filename="../../src/dialogs/ReadReceipts.cpp" line="+124"/> + <source>Read receipts</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+4"/> + <source>Close</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>dialogs::ReceiptItem</name> + <message> + <location line="-46"/> + <source>Today %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Yesterday %1</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>message-description sent:</name> + <message> + <location filename="../../src/Utils.h" line="+124"/> + <source>You sent an audio clip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>%1 sent an audio clip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>You sent an image</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>%1 sent an image</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>You sent a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>%1 sent a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>You sent a video</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>%1 sent a video</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>You sent a sticker</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>%1 sent a sticker</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>You sent a notification</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>%1 sent a notification</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>You: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>%1: %2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+7"/> + <source>You sent an encrypted message</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>%1 sent an encrypted message</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>You placed a call</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>%1 placed a call</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>You answered a call</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>%1 answered a call</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+5"/> + <source>You ended a call</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>%1 ended a call</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>popups::UserMentions</name> + <message> + <location filename="../../src/popups/UserMentions.cpp" line="+68"/> + <source>This Room</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>All Rooms</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>utils</name> + <message> + <location filename="../../src/Utils.h" line="+4"/> + <source>Unknown Message Type</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/resources/langs/nheko_ru.ts b/resources/langs/nheko_ru.ts
index 3ff6088c..4f9d406e 100644 --- a/resources/langs/nheko_ru.ts +++ b/resources/langs/nheko_ru.ts
@@ -17,12 +17,12 @@ <message> <location line="+67"/> <source>You are screen sharing</source> - <translation type="unfinished"></translation> + <translation>Вы демонстрируете экран</translation> </message> <message> <location line="+17"/> <source>Hide/Show Picture-in-Picture</source> - <translation type="unfinished"></translation> + <translation>Убрать/Показать Картинку-в-Картинке</translation> </message> <message> <location line="+13"/> @@ -84,42 +84,42 @@ <message> <location filename="../qml/voip/CallInviteBar.qml" line="+64"/> <source>Video Call</source> - <translation type="unfinished">Видео Звонок</translation> + <translation>Видео Звонок</translation> </message> <message> <location line="+0"/> <source>Voice Call</source> - <translation type="unfinished">Голосовой Звонок</translation> + <translation>Голосовой Звонок</translation> </message> <message> <location line="+16"/> <source>Devices</source> - <translation type="unfinished">Устройства</translation> + <translation>Устройства</translation> </message> <message> <location line="+10"/> <source>Accept</source> - <translation type="unfinished">Принять</translation> + <translation>Принять</translation> </message> <message> <location line="+12"/> <source>Unknown microphone: %1</source> - <translation type="unfinished"></translation> + <translation>Неизвестный микрофон: %1</translation> </message> <message> <location line="+8"/> <source>Unknown camera: %1</source> - <translation type="unfinished"></translation> + <translation>Неизвестная камера: %1</translation> </message> <message> <location line="+13"/> <source>Decline</source> - <translation type="unfinished">Отказаться</translation> + <translation>Отказаться</translation> </message> <message> <location line="-28"/> <source>No microphone found.</source> - <translation type="unfinished">Микрофон не найден.</translation> + <translation>Микрофон не найден.</translation> </message> </context> <context> @@ -127,7 +127,7 @@ <message> <location filename="../../src/CallManager.cpp" line="+521"/> <source>Entire screen</source> - <translation type="unfinished"></translation> + <translation>Весь экран</translation> </message> </context> <context> @@ -151,12 +151,12 @@ <message> <location line="+412"/> <source>Confirm join</source> - <translation type="unfinished"></translation> + <translation>Подтвердить вход</translation> </message> <message> <location line="+1"/> <source>Do you really want to join %1?</source> - <translation type="unfinished"></translation> + <translation>Вы действительно хотите присоединиться?</translation> </message> <message> <location line="+44"/> @@ -237,7 +237,7 @@ <message> <location line="+227"/> <source>Do you really want to start a private chat with %1?</source> - <translation type="unfinished"></translation> + <translation>Вы действительно хотите начать личную переписку с %1?</translation> </message> <message> <location line="-818"/> @@ -303,7 +303,7 @@ <message> <location line="+61"/> <source>Failed to kick %1 from %2: %3</source> - <translation type="unfinished"></translation> + <translation>Не удалось выгнать %1 из %2: %3</translation> </message> </context> <context> @@ -351,27 +351,27 @@ <message> <location filename="../../src/ChatPage.cpp" line="+228"/> <source>Decrypt secrets</source> - <translation type="unfinished"></translation> + <translation>Расшифровать секреты</translation> </message> <message> <location line="+2"/> <source>Enter your recovery key or passphrase to decrypt your secrets:</source> - <translation type="unfinished"></translation> + <translation>Введите свой ключ восстановления или пароль для расшифровки секретов: </translation> </message> <message> <location line="+3"/> <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source> - <translation type="unfinished"></translation> + <translation>Введите свой ключ восстановления или пароль названный %1 для расшифровки Ваших секретов:</translation> </message> <message> <location line="+17"/> <source>Decryption failed</source> - <translation type="unfinished"></translation> + <translation>Расшифровка не удалась</translation> </message> <message> <location line="+1"/> <source>Failed to decrypt secrets with the provided recovery key or passphrase</source> - <translation type="unfinished"></translation> + <translation>Не удалось расшифровать секреты с помощью предоставленного ключа восстановления или пароля.</translation> </message> </context> <context> @@ -501,17 +501,17 @@ <message> <location line="+4"/> <source>Encrypted by a verified device</source> - <translation type="unfinished"></translation> + <translation>Зашифровано верефицированым устройством</translation> </message> <message> <location line="+2"/> <source>Encrypted by an unverified device, but you have trusted that user so far.</source> - <translation type="unfinished"></translation> + <translation>Зашифрованно неверефицированым устройством, но Вы все еще доверяете этому пользователю.</translation> </message> <message> <location line="+2"/> <source>Encrypted by an unverified device</source> - <translation type="unfinished"></translation> + <translation>Зашифровано неверифицированым устройства</translation> </message> </context> <context> @@ -520,20 +520,20 @@ <location filename="../../src/timeline/EventStore.cpp" line="+616"/> <source>-- Encrypted Event (No keys found for decryption) --</source> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> - <translation>-- Зашифрованное событие (Нет найдено ключей для дешифрования) --</translation> + <translation>-- Зашифрованное событие (Не найдено ключей для дешифрования) --</translation> </message> <message> <location line="+7"/> <source>-- Encrypted Event (Key not valid for this index) --</source> <comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment> - <translation type="unfinished"></translation> + <translation>-- Зашифрованное событие(Не найдено ключей для дешифрования) --</translation> </message> <message> <location line="+32"/> <location line="+63"/> <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment> - <translation>-- Ошибка дешифрования (Не удалось получить megolm-ключи для бд) --</translation> + <translation>-- Ошибка дешифрования (Не удалось получить megolm-ключи из бд) --</translation> </message> <message> <location line="-49"/> @@ -598,7 +598,7 @@ <message> <location filename="../qml/ForwardCompleter.qml" line="+44"/> <source>Forward Message</source> - <translation type="unfinished"></translation> + <translation>Переслать Сообщение</translation> </message> </context> <context> @@ -658,7 +658,7 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th <message> <location line="+2"/> <source>Your password.</source> - <translation type="unfinished"></translation> + <translation>Ваш пароль.</translation> </message> <message> <location line="+3"/> @@ -673,12 +673,12 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th <message> <location line="+4"/> <source>Homeserver address</source> - <translation type="unfinished"></translation> + <translation>Адрес домашнего сервера</translation> </message> <message> <location line="+1"/> <source>server.my:8787</source> - <translation type="unfinished"></translation> + <translation>server.my:8787</translation> </message> <message> <location line="+1"/> @@ -698,7 +698,7 @@ Example: https://server.my:8787</source> <location line="+160"/> <location line="+11"/> <source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source> - <translation type="unfinished"></translation> + <translation>Вы ввели не правильный Matrix ID, @joe:matrix.org</translation> </message> <message> <location line="-132"/> @@ -858,7 +858,7 @@ Example: https://server.my:8787</source> <message> <location line="+11"/> <source>You don&apos;t have permission to send messages in this room</source> - <translation type="unfinished"></translation> + <translation>У вас нет прав для отправления сообщений в этой комнате</translation> </message> </context> <context> @@ -866,22 +866,22 @@ Example: https://server.my:8787</source> <message> <location filename="../qml/MessageView.qml" line="+82"/> <source>Edit</source> - <translation type="unfinished"></translation> + <translation>Редактировать</translation> </message> <message> <location line="+15"/> <source>React</source> - <translation type="unfinished">Отреагировать</translation> + <translation>Реакция</translation> </message> <message> <location line="+13"/> <source>Reply</source> - <translation type="unfinished">Ответить</translation> + <translation>Ответить</translation> </message> <message> <location line="+11"/> <source>Options</source> - <translation type="unfinished">Опции</translation> + <translation>Опции</translation> </message> </context> <context> @@ -889,12 +889,12 @@ Example: https://server.my:8787</source> <message> <location filename="../qml/device-verification/NewVerificationRequest.qml" line="+11"/> <source>Send Verification Request</source> - <translation type="unfinished"></translation> + <translation>Отправить Запрос Верификации</translation> </message> <message> <location line="+0"/> <source>Received Verification Request</source> - <translation type="unfinished"></translation> + <translation>Получен Запрос Верификации</translation> </message> <message> <location line="+15"/> @@ -949,7 +949,7 @@ Example: https://server.my:8787</source> <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/> <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/> <source>%1 sent an encrypted message</source> - <translation type="unfinished">%1 отправил зашифрованное сообщение</translation> + <translation>%1 отправил зашифрованное сообщение</translation> </message> <message> <location line="+4"/> @@ -973,17 +973,17 @@ Example: https://server.my:8787</source> <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/> <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/> <source>%1 replied with an encrypted message</source> - <translation type="unfinished"></translation> + <translation>%1 ответил зашифрованным сообщением</translation> </message> <message> <location line="+6"/> <source>%1 replied to a message</source> - <translation type="unfinished"></translation> + <translation>%1 ответил на сообщение</translation> </message> <message> <location line="+0"/> <source>%1 sent a message</source> - <translation type="unfinished"></translation> + <translation>%1 отправил сообщениe</translation> </message> </context> <context> @@ -991,32 +991,32 @@ Example: https://server.my:8787</source> <message> <location filename="../qml/voip/PlaceCall.qml" line="+48"/> <source>Place a call to %1?</source> - <translation type="unfinished"></translation> + <translation>Позвонить %1?</translation> </message> <message> <location line="+16"/> <source>No microphone found.</source> - <translation type="unfinished">Микрофон не найден.</translation> + <translation>Микрофон не найден.</translation> </message> <message> <location line="+22"/> <source>Voice</source> - <translation type="unfinished"></translation> + <translation>Голос</translation> </message> <message> <location line="+13"/> <source>Video</source> - <translation type="unfinished"></translation> + <translation>Видео</translation> </message> <message> <location line="+14"/> <source>Screen</source> - <translation type="unfinished"></translation> + <translation>Экран</translation> </message> <message> <location line="+10"/> <source>Cancel</source> - <translation type="unfinished"></translation> + <translation>Отмена</translation> </message> </context> <context> @@ -1124,7 +1124,7 @@ Example: https://server.my:8787</source> <message> <location line="+13"/> <source>Cancel edit</source> - <translation type="unfinished"></translation> + <translation>Отменить редактирование</translation> </message> </context> <context> @@ -1205,62 +1205,62 @@ Example: https://server.my:8787</source> <message> <location filename="../qml/RoomSettings.qml" line="+25"/> <source>Room Settings</source> - <translation type="unfinished"></translation> + <translation>Настройки комнаты</translation> </message> <message> <location line="+79"/> <source>%1 member(s)</source> - <translation type="unfinished"></translation> + <translation>%1 участник(ов)</translation> </message> <message> <location line="+43"/> <source>SETTINGS</source> - <translation type="unfinished"></translation> + <translation>НАЙСТРОЙКИ</translation> </message> <message> <location line="+9"/> <source>Notifications</source> - <translation type="unfinished"></translation> + <translation>Уведомления</translation> </message> <message> <location line="+5"/> <source>Muted</source> - <translation type="unfinished"></translation> + <translation>Заглушен</translation> </message> <message> <location line="+0"/> <source>Mentions only</source> - <translation type="unfinished"></translation> + <translation>Упоминания только</translation> </message> <message> <location line="+0"/> <source>All messages</source> - <translation type="unfinished"></translation> + <translation>Все сообщения</translation> </message> <message> <location line="+15"/> <source>Anyone and guests</source> - <translation type="unfinished"></translation> + <translation>Каждый и гости</translation> </message> <message> <location line="+0"/> <source>Anyone</source> - <translation type="unfinished"></translation> + <translation>Каждый</translation> </message> <message> <location line="+0"/> <source>Invited users</source> - <translation type="unfinished"></translation> + <translation>Приглашённые пользователи</translation> </message> <message> <location line="+9"/> <source>Encryption</source> - <translation type="unfinished"></translation> + <translation>Шифрование</translation> </message> <message> <location line="+20"/> <source>End-to-End Encryption</source> - <translation type="unfinished">Сквозное шифрование</translation> + <translation>Оконечное шифрование</translation> </message> <message> <location line="+1"/> @@ -1271,7 +1271,7 @@ Example: https://server.my:8787</source> <message> <location line="+17"/> <source>Respond to key requests</source> - <translation type="unfinished"></translation> + <translation>Отвечать на запрос ключей</translation> </message> <message> <location line="+5"/> @@ -1283,53 +1283,53 @@ Example: https://server.my:8787</source> <message> <location line="+21"/> <source>INFO</source> - <translation type="unfinished"></translation> + <translation>ИНФОРМАЦИЯ</translation> </message> <message> <location line="+9"/> <source>Internal ID</source> - <translation type="unfinished"></translation> + <translation>Внутренний ID</translation> </message> <message> <location line="+10"/> <source>Room Version</source> - <translation type="unfinished"></translation> + <translation>Версия Комнаты</translation> </message> <message> <location line="+13"/> <source>OK</source> - <translation type="unfinished">ОК</translation> + <translation>ОК</translation> </message> <message> <location filename="../../src/ui/RoomSettings.cpp" line="+268"/> <source>Failed to enable encryption: %1</source> - <translation type="unfinished">Не удалось включить шифрование: %1</translation> + <translation>Не удалось включить шифрование: %1</translation> </message> <message> <location line="+228"/> <source>Select an avatar</source> - <translation type="unfinished">Выберите аватар</translation> + <translation>Выберите аватар</translation> </message> <message> <location line="+0"/> <source>All Files (*)</source> - <translation type="unfinished">Все файлы (*)</translation> + <translation>Все файлы (*)</translation> </message> <message> <location line="+12"/> <source>The selected file is not an image</source> - <translation type="unfinished">Выбранный файл не является картинкой</translation> + <translation>Выбранный файл не является картинкой</translation> </message> <message> <location line="+5"/> <source>Error while reading file: %1</source> - <translation type="unfinished">Ошибка во время прочтения файла: %1</translation> + <translation>Ошибка во время прочтения файла: %1</translation> </message> <message> <location line="+34"/> <location line="+20"/> <source>Failed to upload image: %s</source> - <translation type="unfinished">Не удалось загрузить изображение: %s</translation> + <translation>Не удалось загрузить изображение: %s</translation> </message> </context> <context> @@ -1337,27 +1337,27 @@ Example: https://server.my:8787</source> <message> <location filename="../qml/voip/ScreenShare.qml" line="+30"/> <source>Share desktop with %1?</source> - <translation type="unfinished"></translation> + <translation>Поделиться экраном с %1?</translation> </message> <message> <location line="+11"/> <source>Window:</source> - <translation type="unfinished"></translation> + <translation>Окно:</translation> </message> <message> <location line="+20"/> <source>Frame rate:</source> - <translation type="unfinished"></translation> + <translation>Частота кадров:</translation> </message> <message> <location line="+19"/> <source>Include your camera picture-in-picture</source> - <translation type="unfinished"></translation> + <translation>Включить Вашу камеру в режиме картинка-в-картинке</translation> </message> <message> <location line="+12"/> <source>Request remote camera</source> - <translation type="unfinished"></translation> + <translation>Запросить удалённую камеру</translation> </message> <message> <location line="+1"/> @@ -1368,22 +1368,22 @@ Example: https://server.my:8787</source> <message> <location line="+5"/> <source>Hide mouse cursor</source> - <translation type="unfinished"></translation> + <translation>Спрятать курсор мыши</translation> </message> <message> <location line="+20"/> <source>Share</source> - <translation type="unfinished"></translation> + <translation>Поделиться</translation> </message> <message> <location line="+19"/> <source>Preview</source> - <translation type="unfinished"></translation> + <translation>Предпросмотр</translation> </message> <message> <location line="+7"/> <source>Cancel</source> - <translation type="unfinished"></translation> + <translation>Отмена</translation> </message> </context> <context> @@ -1640,7 +1640,7 @@ Example: https://server.my:8787</source> <message> <location filename="../qml/TimelineRow.qml" line="+106"/> <source>Edited</source> - <translation type="unfinished"></translation> + <translation>Изменено</translation> </message> </context> <context> @@ -1648,12 +1648,12 @@ Example: https://server.my:8787</source> <message> <location filename="../qml/TimelineView.qml" line="+125"/> <source>Copy</source> - <translation type="unfinished"></translation> + <translation>Копировать</translation> </message> <message> <location line="+7"/> <source>Copy link location</source> - <translation type="unfinished"></translation> + <translation>Скопировать ссылку</translation> </message> <message> <location line="+8"/> @@ -1668,7 +1668,7 @@ Example: https://server.my:8787</source> <message> <location line="+7"/> <source>Edit</source> - <translation type="unfinished"></translation> + <translation>Редактировать</translation> </message> <message> <location line="+5"/> @@ -1678,7 +1678,7 @@ Example: https://server.my:8787</source> <message> <location line="+6"/> <source>Forward</source> - <translation type="unfinished"></translation> + <translation>Переслать</translation> </message> <message> <location line="+9"/> @@ -1708,12 +1708,12 @@ Example: https://server.my:8787</source> <message> <location line="+7"/> <source>Open in external program</source> - <translation type="unfinished"></translation> + <translation>Открыть вo сторонней программе</translation> </message> <message> <location line="+7"/> <source>Copy link to event</source> - <translation type="unfinished"></translation> + <translation>Скопировать ссылку на событие</translation> </message> <message> <location line="+57"/> @@ -1806,7 +1806,7 @@ Example: https://server.my:8787</source> <message> <location line="+8"/> <source>User Profile Settings</source> - <translation type="unfinished"></translation> + <translation>Настройки пользовательского профиля</translation> </message> <message> <location line="+5"/> @@ -1834,12 +1834,12 @@ Example: https://server.my:8787</source> <message> <location filename="../qml/UserProfile.qml" line="+24"/> <source>Global User Profile</source> - <translation type="unfinished"></translation> + <translation>Глобальный Пользовательский Профиль</translation> </message> <message> <location line="+0"/> <source>Room User Profile</source> - <translation type="unfinished"></translation> + <translation>Поользовательский Профиль в Комнате</translation> </message> <message> <location line="+114"/> @@ -1865,27 +1865,27 @@ Example: https://server.my:8787</source> <message> <location line="+63"/> <source>Unverify</source> - <translation type="unfinished"></translation> + <translation>Отменить Верификацию</translation> </message> <message> <location filename="../../src/ui/UserProfile.cpp" line="+301"/> <source>Select an avatar</source> - <translation type="unfinished">Выберите аватар</translation> + <translation>Выберите аватар</translation> </message> <message> <location line="+0"/> <source>All Files (*)</source> - <translation type="unfinished">Все файлы (*)</translation> + <translation>Все файлы (*)</translation> </message> <message> <location line="+12"/> <source>The selected file is not an image</source> - <translation type="unfinished">Выбранный файл не является картинкой</translation> + <translation>Выбранный файл не является картинкой</translation> </message> <message> <location line="+5"/> <source>Error while reading file: %1</source> - <translation type="unfinished">Ошибка во время прочтения файла: %1</translation> + <translation>Ошибка во время прочтения файла: %1</translation> </message> </context> <context> @@ -1894,7 +1894,7 @@ Example: https://server.my:8787</source> <location filename="../../src/UserSettingsPage.cpp" line="+340"/> <location filename="../../src/UserSettingsPage.h" line="+186"/> <source>Default</source> - <translation type="unfinished"></translation> + <translation>По умолчанию</translation> </message> </context> <context> @@ -1927,7 +1927,7 @@ Example: https://server.my:8787</source> <message> <location line="+96"/> <source>Default</source> - <translation type="unfinished"></translation> + <translation>По умолчанию</translation> </message> <message> <location line="+31"/> @@ -1942,12 +1942,12 @@ Example: https://server.my:8787</source> <message> <location line="+4"/> <source>REQUEST</source> - <translation type="unfinished"></translation> + <translation>ЗАПРОС</translation> </message> <message> <location line="+1"/> <source>DOWNLOAD</source> - <translation type="unfinished"></translation> + <translation>СКАЧАТЬ</translation> </message> <message> <location line="+27"/> @@ -1984,7 +1984,7 @@ Only affects messages in encrypted chats.</source> <message> <location line="+2"/> <source>Privacy Screen</source> - <translation type="unfinished"></translation> + <translation>Приватное Окно</translation> </message> <message> <location line="+2"/> @@ -2123,12 +2123,12 @@ This usually causes the application icon in the task bar to animate in some fash <message> <location line="+406"/> <source>CACHED</source> - <translation type="unfinished"></translation> + <translation>Закешировано</translation> </message> <message> <location line="+6"/> <source>NOT CACHED</source> - <translation type="unfinished"></translation> + <translation>НЕ ЗАКЕШИРОВАНО</translation> </message> <message> <location line="-460"/> @@ -2288,7 +2288,7 @@ This usually causes the application icon in the task bar to animate in some fash <message> <location line="+3"/> <source>Backup key</source> - <translation type="unfinished"></translation> + <translation>Ключ восстановления</translation> </message> <message> <location line="+2"/> diff --git a/resources/qml/MessageView.qml b/resources/qml/MessageView.qml
index 176905db..c936c638 100644 --- a/resources/qml/MessageView.qml +++ b/resources/qml/MessageView.qml
@@ -448,14 +448,14 @@ ScrollView { Platform.MenuItem { visible: messageContextMenu.text enabled: visible - text: qsTr("Copy") + text: qsTr("&Copy") onTriggered: Clipboard.text = messageContextMenu.text } Platform.MenuItem { visible: messageContextMenu.link enabled: visible - text: qsTr("Copy link location") + text: qsTr("Copy &link location") onTriggered: Clipboard.text = messageContextMenu.link } @@ -463,7 +463,7 @@ ScrollView { id: reactionOption visible: room ? room.permissions.canSend(MtxEvent.Reaction) : false - text: qsTr("React") + text: qsTr("Re&act") onTriggered: emojiPopup.show(null, function(emoji) { room.input.reaction(messageContextMenu.eventId, emoji); }) @@ -471,25 +471,25 @@ ScrollView { Platform.MenuItem { visible: room ? room.permissions.canSend(MtxEvent.TextMessage) : false - text: qsTr("Reply") + text: qsTr("Repl&y") onTriggered: room.replyAction(messageContextMenu.eventId) } Platform.MenuItem { visible: messageContextMenu.isEditable && (room ? room.permissions.canSend(MtxEvent.TextMessage) : false) enabled: visible - text: qsTr("Edit") + text: qsTr("&Edit") onTriggered: room.editAction(messageContextMenu.eventId) } Platform.MenuItem { - text: qsTr("Read receipts") + text: qsTr("Read receip&ts") onTriggered: room.readReceiptsAction(messageContextMenu.eventId) } Platform.MenuItem { visible: messageContextMenu.eventType == MtxEvent.ImageMessage || messageContextMenu.eventType == MtxEvent.VideoMessage || messageContextMenu.eventType == MtxEvent.AudioMessage || messageContextMenu.eventType == MtxEvent.FileMessage || messageContextMenu.eventType == MtxEvent.Sticker || messageContextMenu.eventType == MtxEvent.TextMessage || messageContextMenu.eventType == MtxEvent.LocationMessage || messageContextMenu.eventType == MtxEvent.EmoteMessage || messageContextMenu.eventType == MtxEvent.NoticeMessage - text: qsTr("Forward") + text: qsTr("&Forward") onTriggered: { var forwardMess = forwardCompleterComponent.createObject(timelineRoot); forwardMess.setMessageEventId(messageContextMenu.eventId); @@ -498,7 +498,7 @@ ScrollView { } Platform.MenuItem { - text: qsTr("Mark as read") + text: qsTr("&Mark as read") } Platform.MenuItem { @@ -516,28 +516,28 @@ ScrollView { Platform.MenuItem { visible: (room ? room.permissions.canRedact() : false) || messageContextMenu.isSender - text: qsTr("Remove message") + text: qsTr("Remo&ve message") onTriggered: room.redactEvent(messageContextMenu.eventId) } Platform.MenuItem { visible: messageContextMenu.eventType == MtxEvent.ImageMessage || messageContextMenu.eventType == MtxEvent.VideoMessage || messageContextMenu.eventType == MtxEvent.AudioMessage || messageContextMenu.eventType == MtxEvent.FileMessage || messageContextMenu.eventType == MtxEvent.Sticker enabled: visible - text: qsTr("Save as") + text: qsTr("&Save as") onTriggered: room.saveMedia(messageContextMenu.eventId) } Platform.MenuItem { visible: messageContextMenu.eventType == MtxEvent.ImageMessage || messageContextMenu.eventType == MtxEvent.VideoMessage || messageContextMenu.eventType == MtxEvent.AudioMessage || messageContextMenu.eventType == MtxEvent.FileMessage || messageContextMenu.eventType == MtxEvent.Sticker enabled: visible - text: qsTr("Open in external program") + text: qsTr("&Open in external program") onTriggered: room.openMedia(messageContextMenu.eventId) } Platform.MenuItem { visible: messageContextMenu.eventId enabled: visible - text: qsTr("Copy link to event") + text: qsTr("Copy link to eve&nt") onTriggered: room.copyLinkToEvent(messageContextMenu.eventId) } diff --git a/src/RegisterPage.cpp b/src/RegisterPage.cpp
index 5c5545ec..36fd71a8 100644 --- a/src/RegisterPage.cpp +++ b/src/RegisterPage.cpp
@@ -11,6 +11,7 @@ #include <QtMath> #include <mtx/responses/register.hpp> +#include <mtx/responses/well-known.hpp> #include "Config.h" #include "Logging.h" @@ -108,6 +109,10 @@ RegisterPage::RegisterPage(QWidget *parent) error_password_confirmation_label_->setWordWrap(true); error_password_confirmation_label_->hide(); + error_server_label_ = new QLabel(this); + error_server_label_->setWordWrap(true); + error_server_label_->hide(); + form_layout_->addWidget(username_input_, Qt::AlignHCenter); form_layout_->addWidget(error_username_label_, Qt::AlignHCenter); form_layout_->addWidget(password_input_, Qt::AlignHCenter); @@ -115,6 +120,7 @@ RegisterPage::RegisterPage(QWidget *parent) form_layout_->addWidget(password_confirmation_, Qt::AlignHCenter); form_layout_->addWidget(error_password_confirmation_label_, Qt::AlignHCenter); form_layout_->addWidget(server_input_, Qt::AlignHCenter); + form_layout_->addWidget(error_server_label_, Qt::AlignHCenter); button_layout_ = new QHBoxLayout(); button_layout_->setSpacing(0); @@ -140,6 +146,17 @@ RegisterPage::RegisterPage(QWidget *parent) top_layout_->addWidget(error_label_, 0, Qt::AlignHCenter); top_layout_->addStretch(1); + connect( + this, + &RegisterPage::versionErrorCb, + this, + [this](const QString &msg) { + error_server_label_->show(); + server_input_->setValid(false); + showError(error_server_label_, msg); + }, + Qt::QueuedConnection); + connect(back_button_, SIGNAL(clicked()), this, SLOT(onBackButtonClicked())); connect(register_button_, SIGNAL(clicked()), this, SLOT(onRegisterButtonClicked())); @@ -351,10 +368,12 @@ RegisterPage::checkFields() error_username_label_->setText(""); error_password_label_->setText(""); error_password_confirmation_label_->setText(""); + error_server_label_->setText(""); error_username_label_->hide(); error_password_label_->hide(); error_password_confirmation_label_->hide(); + error_server_label_->hide(); password_confirmation_->setValid(true); server_input_->setValid(true); @@ -379,7 +398,8 @@ RegisterPage::checkFields() all_fields_good = false; } else if (server_input_->isModified() && (!server_input_->hasAcceptableInput() || server_input_->text().isEmpty())) { - showError(tr("Invalid server name")); + error_server_label_->show(); + showError(error_server_label_, tr("Invalid server name")); server_input_->setValid(false); all_fields_good = false; } @@ -406,45 +426,39 @@ RegisterPage::onRegisterButtonClicked() http::client()->set_server(server); http::client()->verify_certificates( !UserSettings::instance()->disableCertificateValidation()); - http::client()->registration( - username, - password, - [this, username, password](const mtx::responses::Register &res, + + http::client()->well_known( + [this, username, password](const mtx::responses::WellKnown &res, mtx::http::RequestErr err) { - if (!err) { - http::client()->set_user(res.user_id); - http::client()->set_access_token(res.access_token); + if (err) { + using namespace boost::beast::http; - emit registerOk(); - return; - } + if (err->status_code == status::not_found) { + nhlog::net()->info("Autodiscovery: No .well-known."); + checkVersionAndRegister(username, password); + return; + } - // The server requires registration flows. - if (err->status_code == boost::beast::http::status::unauthorized) { - if (err->matrix_error.unauthorized.flows.empty()) { - nhlog::net()->warn( - "failed to retrieve registration flows1: ({}) " - "{}", - static_cast<int>(err->status_code), - err->matrix_error.error); - emit errorOccurred(); - emit registerErrorCb( - QString::fromStdString(err->matrix_error.error)); + if (!err->parse_error.empty()) { + emit versionErrorCb(tr( + "Autodiscovery failed. Received malformed response.")); + nhlog::net()->error( + "Autodiscovery failed. Received malformed response."); return; } - emit registrationFlow( - username, password, err->matrix_error.unauthorized); + emit versionErrorCb(tr("Autodiscovery failed. Unknown error when " + "requesting .well-known.")); + nhlog::net()->error("Autodiscovery failed. Unknown error when " + "requesting .well-known. {}", + err->error_code.message()); return; } - nhlog::net()->error( - "failed to register: status_code ({}), matrix_error({})", - static_cast<int>(err->status_code), - err->matrix_error.error); - - emit registerErrorCb(QString::fromStdString(err->matrix_error.error)); - emit errorOccurred(); + nhlog::net()->info("Autodiscovery: Discovered '" + + res.homeserver.base_url + "'"); + http::client()->set_server(res.homeserver.base_url); + checkVersionAndRegister(username, password); }); emit registering(); @@ -452,6 +466,74 @@ RegisterPage::onRegisterButtonClicked() } void +RegisterPage::checkVersionAndRegister(const std::string &username, const std::string &password) +{ + http::client()->versions( + [this, username, password](const mtx::responses::Versions &, mtx::http::RequestErr err) { + if (err) { + using namespace boost::beast::http; + + if (err->status_code == status::not_found) { + emit versionErrorCb(tr("The required endpoints were not found. " + "Possibly not a Matrix server.")); + return; + } + + if (!err->parse_error.empty()) { + emit versionErrorCb(tr("Received malformed response. Make sure " + "the homeserver domain is valid.")); + return; + } + + emit versionErrorCb(tr( + "An unknown error occured. Make sure the homeserver domain is valid.")); + return; + } + + http::client()->registration( + username, + password, + [this, username, password](const mtx::responses::Register &res, + mtx::http::RequestErr err) { + if (!err) { + http::client()->set_user(res.user_id); + http::client()->set_access_token(res.access_token); + + emit registerOk(); + return; + } + + // The server requires registration flows. + if (err->status_code == boost::beast::http::status::unauthorized) { + if (err->matrix_error.unauthorized.flows.empty()) { + nhlog::net()->warn( + "failed to retrieve registration flows1: ({}) " + "{}", + static_cast<int>(err->status_code), + err->matrix_error.error); + emit errorOccurred(); + emit registerErrorCb( + QString::fromStdString(err->matrix_error.error)); + return; + } + + emit registrationFlow( + username, password, err->matrix_error.unauthorized); + return; + } + + nhlog::net()->error( + "failed to register: status_code ({}), matrix_error({})", + static_cast<int>(err->status_code), + err->matrix_error.error); + + emit registerErrorCb(QString::fromStdString(err->matrix_error.error)); + emit errorOccurred(); + }); + }); +} + +void RegisterPage::paintEvent(QPaintEvent *) { QStyleOption opt; diff --git a/src/RegisterPage.h b/src/RegisterPage.h
index 2f05d04c..0e4a45d0 100644 --- a/src/RegisterPage.h +++ b/src/RegisterPage.h
@@ -31,6 +31,10 @@ protected: signals: void backButtonClicked(); void errorOccurred(); + + //! Used to trigger the corresponding slot outside of the main thread. + void versionErrorCb(const QString &err); + void registering(); void registerOk(); void registerErrorCb(const QString &msg); @@ -52,6 +56,7 @@ private: bool checkOneField(QLabel *label, const TextField *t_field, const QString &msg); bool checkFields(); void showError(QLabel *label, const QString &msg); + void checkVersionAndRegister(const std::string &username, const std::string &password); QVBoxLayout *top_layout_; QHBoxLayout *back_layout_; @@ -63,6 +68,7 @@ private: QLabel *error_username_label_; QLabel *error_password_label_; QLabel *error_password_confirmation_label_; + QLabel *error_server_label_; FlatButton *back_button_; RaisedButton *register_button_; diff --git a/src/Utils.cpp b/src/Utils.cpp
index c110aa18..562b94fd 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp
@@ -679,11 +679,10 @@ utils::hashQString(const QString &input) return hash; } -QString -utils::generateContrastingHexColor(const QString &input, const QString &background) +QColor +utils::generateContrastingHexColor(const QString &input, const QColor &backgroundCol) { - const QColor backgroundCol(background); - const qreal backgroundLum = luminance(background); + const qreal backgroundLum = luminance(backgroundCol); // Create a color for the input auto hash = hashQString(input); diff --git a/src/Utils.h b/src/Utils.h
index e976cf81..1d48e2c7 100644 --- a/src/Utils.h +++ b/src/Utils.h
@@ -301,8 +301,8 @@ hashQString(const QString &input); //! Generate a color (matching #RRGGBB) that has an acceptable contrast to background that is based //! on the input string. -QString -generateContrastingHexColor(const QString &input, const QString &background); +QColor +generateContrastingHexColor(const QString &input, const QColor &background); //! Given two luminance values, compute the contrast ratio between them. qreal diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp
index a6947f99..a45294d1 100644 --- a/src/timeline/TimelineViewManager.cpp +++ b/src/timeline/TimelineViewManager.cpp
@@ -107,8 +107,7 @@ QColor TimelineViewManager::userColor(QString id, QColor background) { if (!userColors.contains(id)) - userColors.insert( - id, QColor(utils::generateContrastingHexColor(id, background.name()))); + userColors.insert(id, QColor(utils::generateContrastingHexColor(id, background))); return userColors.value(id); }