diff --git a/resources/langs/nheko_de.ts b/resources/langs/nheko_de.ts
index 0404eca6..e92bf966 100644
--- a/resources/langs/nheko_de.ts
+++ b/resources/langs/nheko_de.ts
@@ -4,17 +4,17 @@
<context>
<name>AudioItem</name>
<message>
- <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+117"/>
+ <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+118"/>
<source>Save File</source>
- <translation>Datei speichern</translation>
+ <translation>In Datei speichern</translation>
</message>
</context>
<context>
<name>ChatPage</name>
<message>
- <location filename="../../src/ChatPage.cpp" line="+309"/>
+ <location filename="../../src/ChatPage.cpp" line="+330"/>
<source>Failed to upload image. Please try again.</source>
- <translation>Hochladen der Bilddatei fehlgeschlagen. Bitte versuche es erneut.</translation>
+ <translation>Hochladen des Bildes fehlgeschlagen. Bitte versuche es erneut.</translation>
</message>
<message>
<location line="+45"/>
@@ -32,25 +32,25 @@
<translation>Hochladen der Videodatei fehlgeschlagen. Bitte versuche es erneut.</translation>
</message>
<message>
- <location line="+376"/>
+ <location line="+380"/>
<source>Failed to restore OLM account. Please login again.</source>
- <translation type="unfinished"></translation>
+ <translation>Wiederherstellung des OLM Accounts fehlgeschlagen. Bitte logge dich erneut ein.</translation>
</message>
<message>
<location line="+5"/>
<source>Failed to restore save data. Please login again.</source>
- <translation type="unfinished">Nachrichten konnten nicht aus dem Cache geladen werden. Bitte melde dich erneut an.</translation>
+ <translation>Gespeicherte Nachrichten konnten nicht wiederhergestellt werden. Bitte melde Dich erneut an.</translation>
</message>
<message>
- <location line="+169"/>
+ <location line="+198"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler beim Setup der Verschlüsselungsschlüssel. Servermeldung: %1 %2. Bitte versuche es später erneut.</translation>
</message>
<message>
<location line="+51"/>
<location line="+153"/>
<source>Please try to login again: %1</source>
- <translation type="unfinished">Bitte melde dich erneut an: %1</translation>
+ <translation>Bitte melde dich erneut an: %1</translation>
</message>
<message>
<location line="-45"/>
@@ -68,28 +68,28 @@
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+130"/>
<source>All rooms</source>
- <translation type="unfinished"></translation>
+ <translation>Alle Räume</translation>
</message>
<message>
<location line="+4"/>
<source>Favourite rooms</source>
- <translation type="unfinished"></translation>
+ <translation>Favoriten</translation>
</message>
<message>
<location line="+2"/>
<source>Low priority rooms</source>
- <translation type="unfinished"></translation>
+ <translation>Räume niedriger Priorität</translation>
</message>
<message>
<location line="+2"/>
<location line="+2"/>
<source> (tag)</source>
- <translation type="unfinished"></translation>
+ <translation> (tag)</translation>
</message>
<message>
<location line="+3"/>
<source> (community)</source>
- <translation type="unfinished"></translation>
+ <translation> (community)</translation>
</message>
</context>
<context>
@@ -97,17 +97,17 @@
<message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+58"/>
<source>Apply</source>
- <translation type="unfinished"></translation>
+ <translation>Anwenden</translation>
</message>
<message>
<location line="+1"/>
<source>Cancel</source>
- <translation type="unfinished">Abbrechen</translation>
+ <translation>Abbrechen</translation>
</message>
<message>
<location line="+10"/>
<source>Name</source>
- <translation>Titel</translation>
+ <translation>Name</translation>
</message>
<message>
<location line="+2"/>
@@ -118,7 +118,7 @@
<context>
<name>FileItem</name>
<message>
- <location filename="../../src/timeline/widgets/FileItem.cpp" line="+106"/>
+ <location filename="../../src/timeline/widgets/FileItem.cpp" line="+107"/>
<source>Save File</source>
<translation>Datei speichern</translation>
</message>
@@ -126,7 +126,7 @@
<context>
<name>ImageItem</name>
<message>
- <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+238"/>
+ <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+241"/>
<source>Save image</source>
<translation>Bild speichern</translation>
</message>
@@ -136,7 +136,7 @@
<message>
<location filename="../../src/InviteeItem.cpp" line="+17"/>
<source>Remove</source>
- <translation type="unfinished"></translation>
+ <translation>Löschen</translation>
</message>
</context>
<context>
@@ -159,7 +159,7 @@
<message>
<location line="+4"/>
<source>Device name</source>
- <translation type="unfinished"></translation>
+ <translation>Gerätename</translation>
</message>
<message>
<location line="+19"/>
@@ -169,27 +169,27 @@
<message>
<location line="+84"/>
<source>Autodiscovery failed. Received malformed response.</source>
- <translation type="unfinished"></translation>
+ <translation>Automatische Erkennung fehlgeschlagen. Antwort war fehlerhaft.</translation>
</message>
<message>
<location line="+6"/>
<source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
- <translation type="unfinished"></translation>
+ <translation>Automatische Erkennung fehlgeschlagen. Unbekannter Fehler bei Anfrage .well-known.</translation>
</message>
<message>
<location line="+24"/>
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
- <translation type="unfinished"></translation>
+ <translation>Benötigte Ansprechpunkte nicht auffindbar. Möglicherweise kein Matrixserver.</translation>
</message>
<message>
<location line="+6"/>
<source>Received malformed response. Make sure the homeserver domain is valid.</source>
- <translation type="unfinished"></translation>
+ <translation>Erhaltene Antwort war fehlerhaft. Bitte Homeserverdomain prüfen.</translation>
</message>
<message>
<location line="+5"/>
<source>An unknown error occured. Make sure the homeserver domain is valid.</source>
- <translation type="unfinished"></translation>
+ <translation>Ein unbekannter Fehler ist aufgetreten. Bitte Homeserverdomain prüfen.</translation>
</message>
<message>
<location line="+60"/>
@@ -205,9 +205,9 @@
<translation>Teilnehmerliste</translation>
</message>
<message>
- <location line="+33"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
+ <location line="+4"/>
+ <source>OK</source>
+ <translation>OK</translation>
</message>
</context>
<context>
@@ -215,7 +215,7 @@
<message>
<location filename="../../src/QuickSwitcher.cpp" line="+71"/>
<source>Search for a room...</source>
- <translation>Raum suchen...</translation>
+ <translation>Raum suchen…</translation>
</message>
</context>
<context>
@@ -238,7 +238,7 @@
<message>
<location line="+4"/>
<source>Home Server</source>
- <translation>Heimserver</translation>
+ <translation>Homeserver</translation>
</message>
<message>
<location line="+16"/>
@@ -263,7 +263,7 @@
<message>
<location line="+2"/>
<source>Invalid server name</source>
- <translation>Ungültiger Server-Name</translation>
+ <translation>Ungültiger Servername</translation>
</message>
</context>
<context>
@@ -271,28 +271,28 @@
<message>
<location filename="../../src/popups/ReplyPopup.cpp" line="+45"/>
<source>Logout</source>
- <translation type="unfinished"></translation>
+ <translation>Abmelden</translation>
</message>
</context>
<context>
<name>RoomInfo</name>
<message>
- <location filename="../../src/Cache.cpp" line="+2204"/>
+ <location filename="../../src/Cache.cpp" line="+2205"/>
<source>no version stored</source>
- <translation type="unfinished"></translation>
+ <translation>keine Version gespeichert</translation>
</message>
</context>
<context>
<name>RoomInfoListItem</name>
<message>
- <location filename="../../src/RoomInfoListItem.cpp" line="+92"/>
+ <location filename="../../src/RoomInfoListItem.cpp" line="+93"/>
<source>Leave room</source>
<translation>Raum verlassen</translation>
</message>
<message>
- <location line="+174"/>
+ <location line="+181"/>
<source>Accept</source>
- <translation>Akzeptieren </translation>
+ <translation>Akzeptieren</translation>
</message>
<message>
<location line="+1"/>
@@ -305,7 +305,7 @@
<message>
<location filename="../../src/SideBarActions.cpp" line="+38"/>
<source>User settings</source>
- <translation type="unfinished"></translation>
+ <translation>Benutzereinstellungen</translation>
</message>
<message>
<location line="+7"/>
@@ -320,59 +320,59 @@
<message>
<location line="+16"/>
<source>Start a new chat</source>
- <translation type="unfinished"></translation>
+ <translation>Neues Gespräch beginnen</translation>
</message>
<message>
<location line="+15"/>
<source>Room directory</source>
- <translation type="unfinished"></translation>
+ <translation>Raumverzeichnis</translation>
</message>
</context>
<context>
<name>StatusIndicator</name>
<message>
- <location filename="../../src/timeline/TimelineItem.cpp" line="+106"/>
+ <location filename="../../src/timeline/TimelineItem.cpp" line="+107"/>
<source>Encrypted</source>
- <translation type="unfinished"></translation>
+ <translation>Verschlüsselt</translation>
</message>
<message>
<location line="+3"/>
<source>Delivered</source>
- <translation type="unfinished"></translation>
+ <translation>Erhalten</translation>
</message>
<message>
<location line="+3"/>
<source>Seen</source>
- <translation type="unfinished"></translation>
+ <translation>Gelesen</translation>
</message>
<message>
<location line="+3"/>
<source>Sent</source>
- <translation type="unfinished"></translation>
+ <translation>Gesendet</translation>
</message>
</context>
<context>
<name>TextInputWidget</name>
<message>
- <location filename="../../src/TextInputWidget.cpp" line="+506"/>
+ <location filename="../../src/TextInputWidget.cpp" line="+507"/>
<source>Send a file</source>
- <translation type="unfinished"></translation>
+ <translation>Versende Datei</translation>
</message>
<message>
<location line="+13"/>
- <location filename="../../src/TextInputWidget.h" line="+168"/>
+ <location filename="../../src/TextInputWidget.h" line="+164"/>
<source>Write a message...</source>
- <translation>Schreibe eine Nachricht...</translation>
+ <translation>Schreibe eine Nachricht…</translation>
</message>
<message>
<location line="+31"/>
<source>Send a message</source>
- <translation type="unfinished"></translation>
+ <translation>Versende eine Nachricht</translation>
</message>
<message>
<location line="+8"/>
<source>Emoji</source>
- <translation type="unfinished"></translation>
+ <translation>Emoji</translation>
</message>
<message>
<location line="+75"/>
@@ -387,7 +387,7 @@
<message>
<location filename="../../src/TextInputWidget.h" line="-5"/>
<source>Connection lost. Nheko is trying to re-connect...</source>
- <translation type="unfinished"></translation>
+ <translation>Verbindung verloren. Nheko versucht sie wieder aufzunehmen…</translation>
</message>
</context>
<context>
@@ -395,17 +395,17 @@
<message>
<location filename="../../src/timeline/TimelineItem.cpp" line="+85"/>
<source>Message redaction failed: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Nachricht zurückziehen fehlgeschlagen: %1</translation>
</message>
<message>
<location line="+39"/>
<source>Reply</source>
- <translation type="unfinished"></translation>
+ <translation>Antworten</translation>
</message>
<message>
<location line="+11"/>
<source>Options</source>
- <translation type="unfinished"></translation>
+ <translation>Optionen</translation>
</message>
</context>
<context>
@@ -413,7 +413,37 @@
<message>
<location filename="../../src/timeline/TimelineView.cpp" line="+245"/>
<source>Encryption is enabled</source>
- <translation type="unfinished"></translation>
+ <translation>Verschlüsselung aktiv</translation>
+ </message>
+ <message>
+ <location line="+65"/>
+ <source>-- Encrypted Event (No keys found for decryption) --</source>
+ <comment>Placeholder, when the message was not decrypted yet or can't be decrypted</comment>
+ <translation>-- verschlüsselter Event (keine Schlüssel zur Entschlüsselung gefunden) --</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>-- Decryption Error (failed to communicate with DB) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
+ <translation>-- Entschlüsselungsfehler (Fehler bei Kommunikation mit Datenbank) --</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed.</comment>
+ <translation>-- Entschlüsselungsfehler (Fehler bei Suche nach megolm Schlüsseln in Datenbank) --</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>-- Decryption Error (%1) --</source>
+ <comment>Placeholder, when the message can't be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1</comment>
+ <translation>-- Entschlüsselungsfehler (%1) --</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>-- Encrypted Event (Unknown event type) --</source>
+ <comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet</comment>
+ <translation>-- verschlüsselter Event (Unbekannter Eventtyp) --</translation>
</message>
</context>
<context>
@@ -421,10 +451,15 @@
<message>
<location filename="../../src/TopRoomBar.cpp" line="+79"/>
<source>Room options</source>
- <translation type="unfinished"></translation>
+ <translation>Raumoptionen</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Mentions</source>
+ <translation>Erwähnungen</translation>
</message>
<message>
- <location line="+28"/>
+ <location line="+34"/>
<source>Invite users</source>
<translation>Benutzer einladen</translation>
</message>
@@ -459,15 +494,14 @@
</context>
<context>
<name>TypingDisplay</name>
- <message>
- <location filename="../../src/TypingDisplay.cpp" line="+45"/>
- <source> is typing</source>
- <translation> tippt</translation>
- </message>
- <message>
- <location line="+2"/>
- <source> are typing</source>
- <translation> tippen</translation>
+ <message numerus="yes">
+ <location filename="../../src/TypingDisplay.cpp" line="+37"/>
+ <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>
+ <numerusform>%1%2 tippt</numerusform>
+ <numerusform>%1 und %2 tippen</numerusform>
+ </translation>
</message>
</context>
<context>
@@ -475,13 +509,13 @@
<message>
<location filename="../../src/UserInfoWidget.cpp" line="+87"/>
<source>Logout</source>
- <translation type="unfinished"></translation>
+ <translation>Abmelden</translation>
</message>
</context>
<context>
<name>UserSettingsPage</name>
<message>
- <location filename="../../src/UserSettingsPage.cpp" line="+156"/>
+ <location filename="../../src/UserSettingsPage.cpp" line="+166"/>
<source>Minimize to tray</source>
<translation>Ins Benachrichtigungsfeld minimieren</translation>
</message>
@@ -508,57 +542,62 @@
<message>
<location line="+9"/>
<source>Desktop notifications</source>
- <translation type="unfinished"></translation>
+ <translation>Desktopbenachrichtigungen</translation>
</message>
<message>
<location line="+9"/>
<source>Scale factor</source>
- <translation type="unfinished"></translation>
+ <translation>Skalierungsfaktor</translation>
</message>
<message>
<location line="+11"/>
<source>Font size</source>
- <translation type="unfinished"></translation>
+ <translation>Schriftgröße</translation>
</message>
<message>
- <location line="+11"/>
+ <location line="+13"/>
<source>Font Family</source>
- <translation type="unfinished"></translation>
+ <translation>Schriftart</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Emoji Font Famly</source>
+ <translation>Emoji Schriftart</translation>
</message>
<message>
- <location line="+17"/>
+ <location line="+33"/>
<source>Theme</source>
<translation>Erscheinungsbild</translation>
</message>
<message>
<location line="+27"/>
<source>Device ID</source>
- <translation type="unfinished"></translation>
+ <translation>Geräte-ID</translation>
</message>
<message>
<location line="+12"/>
<source>Device Fingerprint</source>
- <translation type="unfinished"></translation>
+ <translation>Gerätefingerabdruck</translation>
</message>
<message>
<location line="+11"/>
<source>Session Keys</source>
- <translation type="unfinished"></translation>
+ <translation>Sitzungsschlüssel</translation>
</message>
<message>
<location line="+4"/>
<source>IMPORT</source>
- <translation type="unfinished"></translation>
+ <translation>IMPORTIEREN</translation>
</message>
<message>
<location line="+3"/>
<source>EXPORT</source>
- <translation type="unfinished"></translation>
+ <translation>EXPORTIEREN</translation>
</message>
<message>
<location line="+13"/>
<source>ENCRYPTION</source>
- <translation type="unfinished"></translation>
+ <translation>VERSCHLÜSSELUNG</translation>
</message>
<message>
<location line="+4"/>
@@ -566,9 +605,9 @@
<translation>ALLGEMEINES</translation>
</message>
<message>
- <location line="+150"/>
+ <location line="+156"/>
<source>Open Sessions File</source>
- <translation type="unfinished"></translation>
+ <translation>Öffne Sessions Datei</translation>
</message>
<message>
<location line="+4"/>
@@ -582,34 +621,34 @@
<location line="+2"/>
<location line="+2"/>
<source>Error</source>
- <translation type="unfinished"></translation>
+ <translation>Feher</translation>
</message>
<message>
<location line="-73"/>
<location line="+32"/>
<source>File Password</source>
- <translation type="unfinished"></translation>
+ <translation>Password für Datei</translation>
</message>
<message>
<location line="-31"/>
<source>Enter the passphrase to decrypt the file:</source>
- <translation type="unfinished"></translation>
+ <translation>Bitte gib das Passwort zum Enschlüsseln der Datei ein:</translation>
</message>
<message>
<location line="+8"/>
<location line="+32"/>
<source>The password cannot be empty</source>
- <translation type="unfinished"></translation>
+ <translation>Das Passwort darf nicht leer sein</translation>
</message>
<message>
<location line="-8"/>
<source>Enter passphrase to encrypt your session keys:</source>
- <translation type="unfinished"></translation>
+ <translation>Bitte gib das Passwort zum Verschlüsseln der Sitzungsschlüssel ein:</translation>
</message>
<message>
<location line="+14"/>
<source>File to save the exported session keys</source>
- <translation type="unfinished"></translation>
+ <translation>Datei zum Speichern der zu exportierenden Sitzungsschlüssel</translation>
</message>
</context>
<context>
@@ -617,12 +656,12 @@
<message>
<location filename="../../src/WelcomePage.cpp" line="+46"/>
<source>Welcome to nheko! The desktop client for the Matrix protocol.</source>
- <translation>Willkommen bei nheko, dem Desktop-Client für das Matrix-Protokoll.</translation>
+ <translation>Willkommen bei nheko! Ein Desktop-Client für das Matrix-Protokoll.</translation>
</message>
<message>
<location line="+1"/>
<source>Enjoy your stay!</source>
- <translation>Genieße deinen Aufenthalt!</translation>
+ <translation>Viel Vergnügen!</translation>
</message>
<message>
<location line="+23"/>
@@ -636,21 +675,29 @@
</message>
</context>
<context>
+ <name>descriptiveTime</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+104"/>
+ <source>Yesterday</source>
+ <translation>Gestern</translation>
+ </message>
+</context>
+<context>
<name>dialogs::CreateRoom</name>
<message>
<location filename="../../src/dialogs/CreateRoom.cpp" line="+36"/>
<source>Create room</source>
- <translation type="unfinished"></translation>
+ <translation>Raum erstellen</translation>
</message>
<message>
<location line="+2"/>
<source>Cancel</source>
- <translation type="unfinished">Abbrechen</translation>
+ <translation>Abbrechen</translation>
</message>
<message>
<location line="+10"/>
<source>Name</source>
- <translation>Titel</translation>
+ <translation>Raumname</translation>
</message>
<message>
<location line="+3"/>
@@ -660,7 +707,7 @@
<message>
<location line="+3"/>
<source>Alias</source>
- <translation>Alias</translation>
+ <translation>Raumalias</translation>
</message>
<message>
<location line="+8"/>
@@ -683,7 +730,7 @@
<message>
<location filename="../../src/dialogs/InviteUsers.cpp" line="+41"/>
<source>Cancel</source>
- <translation type="unfinished">Abbrechen</translation>
+ <translation>Abbrechen</translation>
</message>
<message>
<location line="+8"/>
@@ -696,12 +743,12 @@
<message>
<location filename="../../src/dialogs/JoinRoom.cpp" line="+30"/>
<source>Join</source>
- <translation type="unfinished"></translation>
+ <translation>Betreten</translation>
</message>
<message>
<location line="+2"/>
<source>Cancel</source>
- <translation type="unfinished">Abbrechen</translation>
+ <translation>Abbrechen</translation>
</message>
<message>
<location line="+7"/>
@@ -714,7 +761,7 @@
<message>
<location filename="../../src/dialogs/LeaveRoom.cpp" line="+31"/>
<source>Cancel</source>
- <translation type="unfinished">Abbrechen</translation>
+ <translation>Abbrechen</translation>
</message>
<message>
<location line="+8"/>
@@ -727,7 +774,7 @@
<message>
<location filename="../../src/dialogs/Logout.cpp" line="+47"/>
<source>Cancel</source>
- <translation type="unfinished">Abbrechen</translation>
+ <translation>Abbrechen</translation>
</message>
<message>
<location line="+8"/>
@@ -762,12 +809,12 @@ Medien-Größe: %2
<message>
<location filename="../../src/dialogs/ReCaptcha.cpp" line="+31"/>
<source>Cancel</source>
- <translation type="unfinished">Abbrechen</translation>
+ <translation>Abbrechen</translation>
</message>
<message>
<location line="+1"/>
<source>Confirm</source>
- <translation type="unfinished"></translation>
+ <translation>Bestätigen</translation>
</message>
<message>
<location line="+11"/>
@@ -778,19 +825,27 @@ Medien-Größe: %2
<context>
<name>dialogs::ReadReceipts</name>
<message>
- <location filename="../../src/dialogs/ReadReceipts.cpp" line="+119"/>
+ <location filename="../../src/dialogs/ReadReceipts.cpp" line="+121"/>
<source>Read receipts</source>
<translation>Lesebestätigungen</translation>
</message>
<message>
<location line="+4"/>
<source>Close</source>
- <translation type="unfinished"></translation>
+ <translation>Schließen</translation>
</message>
+</context>
+<context>
+ <name>dialogs::ReceiptItem</name>
<message>
- <location line="+11"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
+ <location line="-44"/>
+ <source>Today %1</source>
+ <translation>Heute %1</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Yesterday %1</source>
+ <translation>Gestern %1</translation>
</message>
</context>
<context>
@@ -798,22 +853,22 @@ Medien-Größe: %2
<message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+113"/>
<source>Settings</source>
- <translation type="unfinished">Einstellungen</translation>
+ <translation>Einstellungen</translation>
</message>
<message>
<location line="+3"/>
<source>Info</source>
- <translation type="unfinished"></translation>
+ <translation>Informationen</translation>
</message>
<message>
<location line="+11"/>
<source>Internal ID</source>
- <translation type="unfinished"></translation>
+ <translation>interne ID</translation>
</message>
<message>
<location line="+10"/>
<source>Room Version</source>
- <translation type="unfinished"></translation>
+ <translation>Raumversion</translation>
</message>
<message>
<location line="+4"/>
@@ -858,73 +913,81 @@ Medien-Größe: %2
<message>
<location line="+50"/>
<source>Encryption</source>
- <translation type="unfinished"></translation>
+ <translation>Verschlüsselung</translation>
</message>
<message>
<location line="+8"/>
<source>End-to-End Encryption</source>
- <translation type="unfinished"></translation>
+ <translation>Ende-zu-Ende Verschlüsselung</translation>
</message>
<message>
<location line="+1"/>
<source>Encryption is currently experimental and things might break unexpectedly. <br>Please take note that it can't be disabled afterwards.</source>
- <translation type="unfinished"></translation>
+ <translation>Verschlüsselung befindet sich momentan in einem experimentellen Stadium, unerwartete Fehler können auftreten. <br>Sie kann anschließend nicht wieder deaktiviert werden.</translation>
</message>
<message>
<location line="+27"/>
<source>Respond to key requests</source>
- <translation type="unfinished"></translation>
+ <translation>Schlüsselnfrage beantworten</translation>
</message>
<message>
<location line="+3"/>
<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>
+ <translation>Ob nheko automatisch auf Anfragen mit Sessionschlüsseln antworten soll, oder nicht. Bitte mit Vorsicht nutzen, da dies eine temporäre Massnahme ist. Sie dient dem Test von E2E Verschlüsselung, bis die Geräteverifikation fertig gestellt ist.</translation>
</message>
<message numerus="yes">
<location line="+53"/>
<source>%n member(s)</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%n Teilnehmer</numerusform>
+ <numerusform>%n Teilnehmer</numerusform>
</translation>
</message>
<message>
- <location line="+71"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+69"/>
+ <location line="+140"/>
<source>Failed to enable encryption: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Aktivierung der Verschlüsselung fehlgeschlagen: %1</translation>
</message>
<message>
<location line="+149"/>
<source>Select an avatar</source>
- <translation type="unfinished"></translation>
+ <translation>Wähle einen Avatar</translation>
</message>
<message>
<location line="+0"/>
<source>All Files (*)</source>
- <translation type="unfinished">Alle Dateien (*)</translation>
+ <translation>Alle Dateien (*)</translation>
</message>
<message>
<location line="+12"/>
- <source>The selected media is not an image</source>
- <translation type="unfinished"></translation>
+ <source>The selected file is not an image</source>
+ <translation>Die ausgewählte Datei ist kein Bild</translation>
</message>
<message>
<location line="+5"/>
- <source>Error while reading media: %1</source>
- <translation type="unfinished"></translation>
+ <source>Error while reading file: %1</source>
+ <translation>Fehler beim Lesen der DateI: %1</translation>
</message>
<message>
<location line="+35"/>
<location line="+20"/>
<source>Failed to upload image: %s</source>
- <translation type="unfinished"></translation>
+ <translation>Hochladen der Bilddatei fehlgeschlagen: %s</translation>
+ </message>
+</context>
+<context>
+ <name>dialogs::UserMentions</name>
+ <message>
+ <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/>
+ <source>This Room</source>
+ <translation>Dieser Raum</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>All Rooms</source>
+ <translation>Alle Räume</translation>
</message>
</context>
<context>
@@ -932,32 +995,27 @@ Medien-Größe: %2
<message>
<location filename="../../src/dialogs/UserProfile.cpp" line="+63"/>
<source>Ban the user from the room</source>
- <translation type="unfinished"></translation>
+ <translation>Banne den Nutzer aus diesem Raum</translation>
</message>
<message>
<location line="+9"/>
<source>Ignore messages from this user</source>
- <translation type="unfinished"></translation>
+ <translation>Nachrichten von diesem Nutzer ignorieren</translation>
</message>
<message>
<location line="+9"/>
<source>Kick the user from the room</source>
- <translation type="unfinished"></translation>
+ <translation>Entferne diesen Nutzer aus dem Raum</translation>
</message>
<message>
<location line="+9"/>
<source>Start a conversation</source>
- <translation type="unfinished"></translation>
+ <translation>Gespräch beginnen</translation>
</message>
<message>
<location line="+57"/>
<source>Devices</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+39"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
+ <translation>Geräte</translation>
</message>
</context>
<context>
@@ -1003,4 +1061,94 @@ Medien-Größe: %2
<translation>Flaggen</translation>
</message>
</context>
+<context>
+ <name>message-description sent:</name>
+ <message>
+ <location filename="../../src/Utils.h" line="+104"/>
+ <source>%1 an audio clip</source>
+ <translation>%1 einen Audioclip</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 an image</source>
+ <translation>%1 ein Bild</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a file</source>
+ <translation>%1 eine Datei</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a video clip</source>
+ <translation>%1 einen Videoclip</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a sticker</source>
+ <translation>%1 einen Sticker</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a notification</source>
+ <translation>1% eine Benachrichtigung</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>%1 an encrypted message</source>
+ <translation>1% eine verschüsselte Nachricht</translation>
+ </message>
+</context>
+<context>
+ <name>message-description:</name>
+ <message>
+ <location line="-26"/>
+ <source>sent</source>
+ <comment>For when someone else is the sender</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>message-description: </name>
+ <message>
+ <location line="-2"/>
+ <source>sent</source>
+ <comment>For when you are the sender</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>utils</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+46"/>
+ <location filename="../../src/Utils.h" line="+55"/>
+ <source>You</source>
+ <translation>Du</translation>
+ </message>
+ <message>
+ <location line="+219"/>
+ <source>sent a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an image.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an audio file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent a video</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/Utils.h" line="-23"/>
+ <source>Unknown Message Type</source>
+ <translation>Unbekannter Nachrichtentyp</translation>
+ </message>
+</context>
</TS>
diff --git a/resources/langs/nheko_el.ts b/resources/langs/nheko_el.ts
index 5a6be4cb..700c3d57 100644
--- a/resources/langs/nheko_el.ts
+++ b/resources/langs/nheko_el.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioItem</name>
<message>
- <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+117"/>
+ <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+118"/>
<source>Save File</source>
<translation>Αποθήκευση</translation>
</message>
@@ -12,7 +12,7 @@
<context>
<name>ChatPage</name>
<message>
- <location filename="../../src/ChatPage.cpp" line="+309"/>
+ <location filename="../../src/ChatPage.cpp" line="+330"/>
<source>Failed to upload image. Please try again.</source>
<translation type="unfinished"></translation>
</message>
@@ -32,7 +32,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+376"/>
+ <location line="+380"/>
<source>Failed to restore OLM account. Please login again.</source>
<translation type="unfinished"></translation>
</message>
@@ -42,7 +42,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+169"/>
+ <location line="+198"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
<translation type="unfinished"></translation>
</message>
@@ -118,7 +118,7 @@
<context>
<name>FileItem</name>
<message>
- <location filename="../../src/timeline/widgets/FileItem.cpp" line="+106"/>
+ <location filename="../../src/timeline/widgets/FileItem.cpp" line="+107"/>
<source>Save File</source>
<translation>Αποθήκευση</translation>
</message>
@@ -126,7 +126,7 @@
<context>
<name>ImageItem</name>
<message>
- <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+238"/>
+ <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+241"/>
<source>Save image</source>
<translation>Αποθήκευση Εικόνας</translation>
</message>
@@ -205,8 +205,8 @@
<translation>Μέλη</translation>
</message>
<message>
- <location line="+33"/>
- <source>ESC</source>
+ <location line="+4"/>
+ <source>OK</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -277,7 +277,7 @@
<context>
<name>RoomInfo</name>
<message>
- <location filename="../../src/Cache.cpp" line="+2204"/>
+ <location filename="../../src/Cache.cpp" line="+2205"/>
<source>no version stored</source>
<translation type="unfinished"></translation>
</message>
@@ -285,12 +285,12 @@
<context>
<name>RoomInfoListItem</name>
<message>
- <location filename="../../src/RoomInfoListItem.cpp" line="+92"/>
+ <location filename="../../src/RoomInfoListItem.cpp" line="+93"/>
<source>Leave room</source>
<translation>Βγές</translation>
</message>
<message>
- <location line="+174"/>
+ <location line="+181"/>
<source>Accept</source>
<translation>Αποδοχή</translation>
</message>
@@ -331,7 +331,7 @@
<context>
<name>StatusIndicator</name>
<message>
- <location filename="../../src/timeline/TimelineItem.cpp" line="+106"/>
+ <location filename="../../src/timeline/TimelineItem.cpp" line="+107"/>
<source>Encrypted</source>
<translation type="unfinished"></translation>
</message>
@@ -354,13 +354,13 @@
<context>
<name>TextInputWidget</name>
<message>
- <location filename="../../src/TextInputWidget.cpp" line="+506"/>
+ <location filename="../../src/TextInputWidget.cpp" line="+507"/>
<source>Send a file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+13"/>
- <location filename="../../src/TextInputWidget.h" line="+168"/>
+ <location filename="../../src/TextInputWidget.h" line="+164"/>
<source>Write a message...</source>
<translation>Γράψε ένα μήνυμα...</translation>
</message>
@@ -415,6 +415,36 @@
<source>Encryption is enabled</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+65"/>
+ <source>-- Encrypted Event (No keys found for decryption) --</source>
+ <comment>Placeholder, when the message was not decrypted yet or can't be decrypted</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>-- Decryption Error (failed to communicate with DB) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed.</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>-- Decryption Error (%1) --</source>
+ <comment>Placeholder, when the message can't be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>-- Encrypted Event (Unknown event type) --</source>
+ <comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>TopRoomBar</name>
@@ -424,7 +454,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+28"/>
+ <location line="+5"/>
+ <source>Mentions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+34"/>
<source>Invite users</source>
<translation>Προσκάλεσε χρήστες</translation>
</message>
@@ -459,15 +494,14 @@
</context>
<context>
<name>TypingDisplay</name>
- <message>
- <location filename="../../src/TypingDisplay.cpp" line="+45"/>
- <source> is typing</source>
- <translation> πληκτρολογεί</translation>
- </message>
- <message>
- <location line="+2"/>
- <source> are typing</source>
- <translation> πληκτρολογούν</translation>
+ <message numerus="yes">
+ <location filename="../../src/TypingDisplay.cpp" line="+37"/>
+ <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>
</context>
<context>
@@ -481,7 +515,7 @@
<context>
<name>UserSettingsPage</name>
<message>
- <location filename="../../src/UserSettingsPage.cpp" line="+156"/>
+ <location filename="../../src/UserSettingsPage.cpp" line="+166"/>
<source>Minimize to tray</source>
<translation>Ελαχιστοποίηση</translation>
</message>
@@ -521,12 +555,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+11"/>
+ <location line="+13"/>
<source>Font Family</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+17"/>
+ <location line="+1"/>
+ <source>Emoji Font Famly</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+33"/>
<source>Theme</source>
<translation>Φόντο</translation>
</message>
@@ -566,7 +605,7 @@
<translation>ΓΕΝΙΚΑ</translation>
</message>
<message>
- <location line="+150"/>
+ <location line="+156"/>
<source>Open Sessions File</source>
<translation type="unfinished"></translation>
</message>
@@ -636,6 +675,14 @@
</message>
</context>
<context>
+ <name>descriptiveTime</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+104"/>
+ <source>Yesterday</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>dialogs::CreateRoom</name>
<message>
<location filename="../../src/dialogs/CreateRoom.cpp" line="+36"/>
@@ -776,7 +823,7 @@ Media size: %2
<context>
<name>dialogs::ReadReceipts</name>
<message>
- <location filename="../../src/dialogs/ReadReceipts.cpp" line="+119"/>
+ <location filename="../../src/dialogs/ReadReceipts.cpp" line="+121"/>
<source>Read receipts</source>
<translation type="unfinished"></translation>
</message>
@@ -785,9 +832,17 @@ Media size: %2
<source>Close</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>dialogs::ReceiptItem</name>
<message>
- <location line="+11"/>
- <source>ESC</source>
+ <location line="-44"/>
+ <source>Today %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Yesterday %1</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -889,12 +944,7 @@ Media size: %2
</translation>
</message>
<message>
- <location line="+71"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+69"/>
+ <location line="+140"/>
<source>Failed to enable encryption: %1</source>
<translation type="unfinished"></translation>
</message>
@@ -910,12 +960,12 @@ Media size: %2
</message>
<message>
<location line="+12"/>
- <source>The selected media is not an image</source>
+ <source>The selected file is not an image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+5"/>
- <source>Error while reading media: %1</source>
+ <source>Error while reading file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -926,6 +976,19 @@ Media size: %2
</message>
</context>
<context>
+ <name>dialogs::UserMentions</name>
+ <message>
+ <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/>
+ <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>dialogs::UserProfile</name>
<message>
<location filename="../../src/dialogs/UserProfile.cpp" line="+63"/>
@@ -952,11 +1015,6 @@ Media size: %2
<source>Devices</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <location line="+39"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>emoji::Panel</name>
@@ -1001,4 +1059,94 @@ Media size: %2
<translation>Σημαίες</translation>
</message>
</context>
+<context>
+ <name>message-description sent:</name>
+ <message>
+ <location filename="../../src/Utils.h" line="+104"/>
+ <source>%1 an audio clip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 an image</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a video clip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a sticker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a notification</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>%1 an encrypted message</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>message-description:</name>
+ <message>
+ <location line="-26"/>
+ <source>sent</source>
+ <comment>For when someone else is the sender</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>message-description: </name>
+ <message>
+ <location line="-2"/>
+ <source>sent</source>
+ <comment>For when you are the sender</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>utils</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+46"/>
+ <location filename="../../src/Utils.h" line="+55"/>
+ <source>You</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+219"/>
+ <source>sent a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an image.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an audio file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent a video</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/Utils.h" line="-23"/>
+ <source>Unknown Message Type</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/resources/langs/nheko_en.ts b/resources/langs/nheko_en.ts
index 170d1bf1..edb95313 100644
--- a/resources/langs/nheko_en.ts
+++ b/resources/langs/nheko_en.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioItem</name>
<message>
- <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+117"/>
+ <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+118"/>
<source>Save File</source>
<translation>Save File</translation>
</message>
@@ -12,7 +12,7 @@
<context>
<name>ChatPage</name>
<message>
- <location filename="../../src/ChatPage.cpp" line="+309"/>
+ <location filename="../../src/ChatPage.cpp" line="+330"/>
<source>Failed to upload image. Please try again.</source>
<translation>Failed to upload image. Please try again.</translation>
</message>
@@ -32,7 +32,7 @@
<translation>Failed to upload video. Please try again.</translation>
</message>
<message>
- <location line="+376"/>
+ <location line="+380"/>
<source>Failed to restore OLM account. Please login again.</source>
<translation>Failed to restore OLM account. Please login again.</translation>
</message>
@@ -42,7 +42,7 @@
<translation>Failed to restore save data. Please login again.</translation>
</message>
<message>
- <location line="+169"/>
+ <location line="+198"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
<translation>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</translation>
</message>
@@ -55,12 +55,12 @@
<message>
<location line="-45"/>
<source>Room creation failed: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Room creation failed: %1</translation>
</message>
<message>
<location line="+16"/>
<source>Failed to leave room: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Failed to leave room: %1</translation>
</message>
</context>
<context>
@@ -68,28 +68,28 @@
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+130"/>
<source>All rooms</source>
- <translation type="unfinished"></translation>
+ <translation>All rooms</translation>
</message>
<message>
<location line="+4"/>
<source>Favourite rooms</source>
- <translation type="unfinished"></translation>
+ <translation>Favourite rooms</translation>
</message>
<message>
<location line="+2"/>
<source>Low priority rooms</source>
- <translation type="unfinished"></translation>
+ <translation>Low priority rooms</translation>
</message>
<message>
<location line="+2"/>
<location line="+2"/>
<source> (tag)</source>
- <translation type="unfinished"></translation>
+ <translation> (tag)</translation>
</message>
<message>
<location line="+3"/>
<source> (community)</source>
- <translation type="unfinished"></translation>
+ <translation> (community)</translation>
</message>
</context>
<context>
@@ -97,38 +97,38 @@
<message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+58"/>
<source>Apply</source>
- <translation type="unfinished"></translation>
+ <translation>Apply</translation>
</message>
<message>
<location line="+1"/>
<source>Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Cancel</translation>
</message>
<message>
<location line="+10"/>
<source>Name</source>
- <translation type="unfinished"></translation>
+ <translation>Name</translation>
</message>
<message>
<location line="+2"/>
<source>Topic</source>
- <translation type="unfinished"></translation>
+ <translation>Topic</translation>
</message>
</context>
<context>
<name>FileItem</name>
<message>
- <location filename="../../src/timeline/widgets/FileItem.cpp" line="+106"/>
+ <location filename="../../src/timeline/widgets/FileItem.cpp" line="+107"/>
<source>Save File</source>
- <translation type="unfinished"></translation>
+ <translation>Save File</translation>
</message>
</context>
<context>
<name>ImageItem</name>
<message>
- <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+238"/>
+ <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+241"/>
<source>Save image</source>
- <translation type="unfinished"></translation>
+ <translation>Save image</translation>
</message>
</context>
<context>
@@ -136,7 +136,7 @@
<message>
<location filename="../../src/InviteeItem.cpp" line="+17"/>
<source>Remove</source>
- <translation type="unfinished"></translation>
+ <translation>Remove</translation>
</message>
</context>
<context>
@@ -144,57 +144,57 @@
<message>
<location filename="../../src/LoginPage.cpp" line="+80"/>
<source>Matrix ID</source>
- <translation type="unfinished"></translation>
+ <translation>Matrix ID</translation>
</message>
<message>
<location line="+1"/>
<source>e.g @joe:matrix.org</source>
- <translation type="unfinished"></translation>
+ <translation>e.g @joe:matrix.org</translation>
</message>
<message>
<location line="+15"/>
<source>Password</source>
- <translation type="unfinished"></translation>
+ <translation>Password</translation>
</message>
<message>
<location line="+4"/>
<source>Device name</source>
- <translation type="unfinished"></translation>
+ <translation>Device name</translation>
</message>
<message>
<location line="+19"/>
<source>LOGIN</source>
- <translation type="unfinished"></translation>
+ <translation>LOGIN</translation>
</message>
<message>
<location line="+84"/>
<source>Autodiscovery failed. Received malformed response.</source>
- <translation type="unfinished"></translation>
+ <translation>Autodiscovery failed. Received malformed response.</translation>
</message>
<message>
<location line="+6"/>
<source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
- <translation type="unfinished"></translation>
+ <translation>Autodiscovery failed. Unknown error while requesting .well-known.</translation>
</message>
<message>
<location line="+24"/>
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
- <translation type="unfinished"></translation>
+ <translation>The required endpoints were not found. Possibly not a Matrix server.</translation>
</message>
<message>
<location line="+6"/>
<source>Received malformed response. Make sure the homeserver domain is valid.</source>
- <translation type="unfinished"></translation>
+ <translation>Received malformed response. Make sure the homeserver domain is valid.</translation>
</message>
<message>
<location line="+5"/>
<source>An unknown error occured. Make sure the homeserver domain is valid.</source>
- <translation type="unfinished"></translation>
+ <translation>An unknown error occured. Make sure the homeserver domain is valid.</translation>
</message>
<message>
<location line="+60"/>
<source>Empty password</source>
- <translation type="unfinished"></translation>
+ <translation>Empty password</translation>
</message>
</context>
<context>
@@ -202,12 +202,12 @@
<message>
<location filename="../../src/dialogs/MemberList.cpp" line="+96"/>
<source>Room members</source>
- <translation type="unfinished"></translation>
+ <translation>Room members</translation>
</message>
<message>
- <location line="+33"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
+ <location line="+4"/>
+ <source>OK</source>
+ <translation>OK</translation>
</message>
</context>
<context>
@@ -215,7 +215,7 @@
<message>
<location filename="../../src/QuickSwitcher.cpp" line="+71"/>
<source>Search for a room...</source>
- <translation type="unfinished"></translation>
+ <translation>Search for a room…</translation>
</message>
</context>
<context>
@@ -223,47 +223,47 @@
<message>
<location filename="../../src/RegisterPage.cpp" line="+77"/>
<source>Username</source>
- <translation type="unfinished"></translation>
+ <translation>Username</translation>
</message>
<message>
<location line="+3"/>
<source>Password</source>
- <translation type="unfinished"></translation>
+ <translation>Password</translation>
</message>
<message>
<location line="+4"/>
<source>Password confirmation</source>
- <translation type="unfinished"></translation>
+ <translation>Password confirmation</translation>
</message>
<message>
<location line="+4"/>
<source>Home Server</source>
- <translation type="unfinished"></translation>
+ <translation>Home Server</translation>
</message>
<message>
<location line="+16"/>
<source>REGISTER</source>
- <translation type="unfinished"></translation>
+ <translation>REGISTER</translation>
</message>
<message>
<location line="+93"/>
<source>Invalid username</source>
- <translation type="unfinished"></translation>
+ <translation>Invalid username</translation>
</message>
<message>
<location line="+2"/>
<source>Password is not long enough (min 8 chars)</source>
- <translation type="unfinished"></translation>
+ <translation>Password is not long enough (min 8 chars)</translation>
</message>
<message>
<location line="+2"/>
<source>Passwords don't match</source>
- <translation type="unfinished"></translation>
+ <translation>Passwords don't match</translation>
</message>
<message>
<location line="+2"/>
<source>Invalid server name</source>
- <translation type="unfinished"></translation>
+ <translation>Invalid server name</translation>
</message>
</context>
<context>
@@ -271,33 +271,33 @@
<message>
<location filename="../../src/popups/ReplyPopup.cpp" line="+45"/>
<source>Logout</source>
- <translation type="unfinished"></translation>
+ <translation>Logout</translation>
</message>
</context>
<context>
<name>RoomInfo</name>
<message>
- <location filename="../../src/Cache.cpp" line="+2204"/>
+ <location filename="../../src/Cache.cpp" line="+2205"/>
<source>no version stored</source>
- <translation type="unfinished"></translation>
+ <translation>no version stored</translation>
</message>
</context>
<context>
<name>RoomInfoListItem</name>
<message>
- <location filename="../../src/RoomInfoListItem.cpp" line="+92"/>
+ <location filename="../../src/RoomInfoListItem.cpp" line="+93"/>
<source>Leave room</source>
- <translation type="unfinished"></translation>
+ <translation>Leave room</translation>
</message>
<message>
- <location line="+174"/>
+ <location line="+181"/>
<source>Accept</source>
- <translation type="unfinished"></translation>
+ <translation>Accept</translation>
</message>
<message>
<location line="+1"/>
<source>Decline</source>
- <translation type="unfinished"></translation>
+ <translation>Decline</translation>
</message>
</context>
<context>
@@ -305,89 +305,89 @@
<message>
<location filename="../../src/SideBarActions.cpp" line="+38"/>
<source>User settings</source>
- <translation type="unfinished"></translation>
+ <translation>User settings</translation>
</message>
<message>
<location line="+7"/>
<source>Create new room</source>
- <translation type="unfinished"></translation>
+ <translation>Create new room</translation>
</message>
<message>
<location line="+1"/>
<source>Join a room</source>
- <translation type="unfinished"></translation>
+ <translation>Join a room</translation>
</message>
<message>
<location line="+16"/>
<source>Start a new chat</source>
- <translation type="unfinished"></translation>
+ <translation>Start a new chat</translation>
</message>
<message>
<location line="+15"/>
<source>Room directory</source>
- <translation type="unfinished"></translation>
+ <translation>Room directory</translation>
</message>
</context>
<context>
<name>StatusIndicator</name>
<message>
- <location filename="../../src/timeline/TimelineItem.cpp" line="+106"/>
+ <location filename="../../src/timeline/TimelineItem.cpp" line="+107"/>
<source>Encrypted</source>
- <translation type="unfinished"></translation>
+ <translation>Encrypted</translation>
</message>
<message>
<location line="+3"/>
<source>Delivered</source>
- <translation type="unfinished"></translation>
+ <translation>Delivered</translation>
</message>
<message>
<location line="+3"/>
<source>Seen</source>
- <translation type="unfinished"></translation>
+ <translation>Seen</translation>
</message>
<message>
<location line="+3"/>
<source>Sent</source>
- <translation type="unfinished"></translation>
+ <translation>Sent</translation>
</message>
</context>
<context>
<name>TextInputWidget</name>
<message>
- <location filename="../../src/TextInputWidget.cpp" line="+506"/>
+ <location filename="../../src/TextInputWidget.cpp" line="+507"/>
<source>Send a file</source>
- <translation type="unfinished"></translation>
+ <translation>Send a file</translation>
</message>
<message>
<location line="+13"/>
- <location filename="../../src/TextInputWidget.h" line="+168"/>
+ <location filename="../../src/TextInputWidget.h" line="+164"/>
<source>Write a message...</source>
- <translation type="unfinished"></translation>
+ <translation>Write a message…</translation>
</message>
<message>
<location line="+31"/>
<source>Send a message</source>
- <translation type="unfinished"></translation>
+ <translation>Send a message</translation>
</message>
<message>
<location line="+8"/>
<source>Emoji</source>
- <translation type="unfinished"></translation>
+ <translation>Emoji</translation>
</message>
<message>
<location line="+75"/>
<source>Select a file</source>
- <translation type="unfinished"></translation>
+ <translation>Select a file</translation>
</message>
<message>
<location line="+0"/>
<source>All Files (*)</source>
- <translation type="unfinished"></translation>
+ <translation>All Files (*)</translation>
</message>
<message>
<location filename="../../src/TextInputWidget.h" line="-5"/>
<source>Connection lost. Nheko is trying to re-connect...</source>
- <translation type="unfinished"></translation>
+ <translation>Connection lost. Nheko is trying to re-connect…</translation>
</message>
</context>
<context>
@@ -395,17 +395,17 @@
<message>
<location filename="../../src/timeline/TimelineItem.cpp" line="+85"/>
<source>Message redaction failed: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Message redaction failed: %1</translation>
</message>
<message>
<location line="+39"/>
<source>Reply</source>
- <translation type="unfinished"></translation>
+ <translation>Reply</translation>
</message>
<message>
<location line="+11"/>
<source>Options</source>
- <translation type="unfinished"></translation>
+ <translation>Options</translation>
</message>
</context>
<context>
@@ -413,7 +413,37 @@
<message>
<location filename="../../src/timeline/TimelineView.cpp" line="+245"/>
<source>Encryption is enabled</source>
- <translation type="unfinished"></translation>
+ <translation>Encryption is enabled</translation>
+ </message>
+ <message>
+ <location line="+65"/>
+ <source>-- Encrypted Event (No keys found for decryption) --</source>
+ <comment>Placeholder, when the message was not decrypted yet or can't be decrypted</comment>
+ <translation>-- Encrypted Event (No keys found for decryption) --</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>-- Decryption Error (failed to communicate with DB) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
+ <translation>-- Decryption Error (failed to communicate with DB) --</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed.</comment>
+ <translation>-- Decryption Error (failed to retrieve megolm keys from db) --</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>-- Decryption Error (%1) --</source>
+ <comment>Placeholder, when the message can't be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1</comment>
+ <translation>-- Decryption Error (%1) --</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>-- Encrypted Event (Unknown event type) --</source>
+ <comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet</comment>
+ <translation>-- Encrypted Event (Unknown event type) --</translation>
</message>
</context>
<context>
@@ -421,27 +451,32 @@
<message>
<location filename="../../src/TopRoomBar.cpp" line="+79"/>
<source>Room options</source>
- <translation type="unfinished"></translation>
+ <translation>Room options</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Mentions</source>
+ <translation>Mentions</translation>
</message>
<message>
- <location line="+28"/>
+ <location line="+34"/>
<source>Invite users</source>
- <translation type="unfinished"></translation>
+ <translation>Invite users</translation>
</message>
<message>
<location line="+6"/>
<source>Members</source>
- <translation type="unfinished"></translation>
+ <translation>Members</translation>
</message>
<message>
<location line="+5"/>
<source>Leave room</source>
- <translation type="unfinished"></translation>
+ <translation>Leave room</translation>
</message>
<message>
<location line="+5"/>
<source>Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Settings</translation>
</message>
</context>
<context>
@@ -449,25 +484,24 @@
<message>
<location filename="../../src/TrayIcon.cpp" line="+120"/>
<source>Show</source>
- <translation type="unfinished"></translation>
+ <translation>Show</translation>
</message>
<message>
<location line="+1"/>
<source>Quit</source>
- <translation type="unfinished"></translation>
+ <translation>Quit</translation>
</message>
</context>
<context>
<name>TypingDisplay</name>
- <message>
- <location filename="../../src/TypingDisplay.cpp" line="+45"/>
- <source> is typing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+2"/>
- <source> are typing</source>
- <translation type="unfinished"></translation>
+ <message numerus="yes">
+ <location filename="../../src/TypingDisplay.cpp" line="+37"/>
+ <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>
+ <numerusform>%1%2 is typing</numerusform>
+ <numerusform>%1 and %2 are typing</numerusform>
+ </translation>
</message>
</context>
<context>
@@ -475,100 +509,105 @@
<message>
<location filename="../../src/UserInfoWidget.cpp" line="+87"/>
<source>Logout</source>
- <translation type="unfinished"></translation>
+ <translation>Logout</translation>
</message>
</context>
<context>
<name>UserSettingsPage</name>
<message>
- <location filename="../../src/UserSettingsPage.cpp" line="+156"/>
+ <location filename="../../src/UserSettingsPage.cpp" line="+166"/>
<source>Minimize to tray</source>
- <translation type="unfinished"></translation>
+ <translation>Minimize to tray</translation>
</message>
<message>
<location line="+9"/>
<source>Start in tray</source>
- <translation type="unfinished"></translation>
+ <translation>Start in tray</translation>
</message>
<message>
<location line="+11"/>
<source>Group's sidebar</source>
- <translation type="unfinished"></translation>
+ <translation>Group's sidebar</translation>
</message>
<message>
<location line="+9"/>
<source>Typing notifications</source>
- <translation type="unfinished"></translation>
+ <translation>Typing notifications</translation>
</message>
<message>
<location line="+9"/>
<source>Read receipts</source>
- <translation type="unfinished"></translation>
+ <translation>Read receipts</translation>
</message>
<message>
<location line="+9"/>
<source>Desktop notifications</source>
- <translation type="unfinished"></translation>
+ <translation>Desktop notifications</translation>
</message>
<message>
<location line="+9"/>
<source>Scale factor</source>
- <translation type="unfinished"></translation>
+ <translation>Scale factor</translation>
</message>
<message>
<location line="+11"/>
<source>Font size</source>
- <translation type="unfinished"></translation>
+ <translation>Font size</translation>
</message>
<message>
- <location line="+11"/>
+ <location line="+13"/>
<source>Font Family</source>
- <translation type="unfinished"></translation>
+ <translation>Font Family</translation>
</message>
<message>
- <location line="+17"/>
+ <location line="+1"/>
+ <source>Emoji Font Famly</source>
+ <translation>Emoji Font Family</translation>
+ </message>
+ <message>
+ <location line="+33"/>
<source>Theme</source>
- <translation type="unfinished"></translation>
+ <translation>Theme</translation>
</message>
<message>
<location line="+27"/>
<source>Device ID</source>
- <translation type="unfinished"></translation>
+ <translation>Device ID</translation>
</message>
<message>
<location line="+12"/>
<source>Device Fingerprint</source>
- <translation type="unfinished"></translation>
+ <translation>Device Fingerprint</translation>
</message>
<message>
<location line="+11"/>
<source>Session Keys</source>
- <translation type="unfinished"></translation>
+ <translation>Session Keys</translation>
</message>
<message>
<location line="+4"/>
<source>IMPORT</source>
- <translation type="unfinished"></translation>
+ <translation>IMPORT</translation>
</message>
<message>
<location line="+3"/>
<source>EXPORT</source>
- <translation type="unfinished"></translation>
+ <translation>EXPORT</translation>
</message>
<message>
<location line="+13"/>
<source>ENCRYPTION</source>
- <translation type="unfinished"></translation>
+ <translation>ENCRYPTION</translation>
</message>
<message>
<location line="+4"/>
<source>GENERAL</source>
- <translation type="unfinished"></translation>
+ <translation>GENERAL</translation>
</message>
<message>
- <location line="+150"/>
+ <location line="+156"/>
<source>Open Sessions File</source>
- <translation type="unfinished"></translation>
+ <translation>Open Sessions File</translation>
</message>
<message>
<location line="+4"/>
@@ -582,34 +621,34 @@
<location line="+2"/>
<location line="+2"/>
<source>Error</source>
- <translation type="unfinished"></translation>
+ <translation>Error</translation>
</message>
<message>
<location line="-73"/>
<location line="+32"/>
<source>File Password</source>
- <translation type="unfinished"></translation>
+ <translation>File Password</translation>
</message>
<message>
<location line="-31"/>
<source>Enter the passphrase to decrypt the file:</source>
- <translation type="unfinished"></translation>
+ <translation>Enter the passphrase to decrypt the file:</translation>
</message>
<message>
<location line="+8"/>
<location line="+32"/>
<source>The password cannot be empty</source>
- <translation type="unfinished"></translation>
+ <translation>The password cannot be empty</translation>
</message>
<message>
<location line="-8"/>
<source>Enter passphrase to encrypt your session keys:</source>
- <translation type="unfinished"></translation>
+ <translation>Enter passphrase to encrypt your session keys:</translation>
</message>
<message>
<location line="+14"/>
<source>File to save the exported session keys</source>
- <translation type="unfinished"></translation>
+ <translation>File to save the exported session keys</translation>
</message>
</context>
<context>
@@ -617,22 +656,30 @@
<message>
<location filename="../../src/WelcomePage.cpp" line="+46"/>
<source>Welcome to nheko! The desktop client for the Matrix protocol.</source>
- <translation type="unfinished"></translation>
+ <translation>Welcome to nheko! The desktop client for the Matrix protocol.</translation>
</message>
<message>
<location line="+1"/>
<source>Enjoy your stay!</source>
- <translation type="unfinished"></translation>
+ <translation>Enjoy your stay!</translation>
</message>
<message>
<location line="+23"/>
<source>REGISTER</source>
- <translation type="unfinished"></translation>
+ <translation>REGISTER</translation>
</message>
<message>
<location line="+5"/>
<source>LOGIN</source>
- <translation type="unfinished"></translation>
+ <translation>LOGIN</translation>
+ </message>
+</context>
+<context>
+ <name>descriptiveTime</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+104"/>
+ <source>Yesterday</source>
+ <translation>Yesterday</translation>
</message>
</context>
<context>
@@ -640,42 +687,42 @@
<message>
<location filename="../../src/dialogs/CreateRoom.cpp" line="+36"/>
<source>Create room</source>
- <translation type="unfinished"></translation>
+ <translation>Create room</translation>
</message>
<message>
<location line="+2"/>
<source>Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Cancel</translation>
</message>
<message>
<location line="+10"/>
<source>Name</source>
- <translation type="unfinished"></translation>
+ <translation>Name</translation>
</message>
<message>
<location line="+3"/>
<source>Topic</source>
- <translation type="unfinished"></translation>
+ <translation>Topic</translation>
</message>
<message>
<location line="+3"/>
<source>Alias</source>
- <translation type="unfinished"></translation>
+ <translation>Alias</translation>
</message>
<message>
<location line="+8"/>
<source>Room Visibility</source>
- <translation type="unfinished"></translation>
+ <translation>Room Visibility</translation>
</message>
<message>
<location line="+8"/>
<source>Room Preset</source>
- <translation type="unfinished"></translation>
+ <translation>Room Preset</translation>
</message>
<message>
<location line="+9"/>
<source>Direct Chat</source>
- <translation type="unfinished"></translation>
+ <translation>Direct Chat</translation>
</message>
</context>
<context>
@@ -683,12 +730,12 @@
<message>
<location filename="../../src/dialogs/InviteUsers.cpp" line="+41"/>
<source>Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Cancel</translation>
</message>
<message>
<location line="+8"/>
<source>User ID to invite</source>
- <translation type="unfinished"></translation>
+ <translation>User ID to invite</translation>
</message>
</context>
<context>
@@ -696,17 +743,17 @@
<message>
<location filename="../../src/dialogs/JoinRoom.cpp" line="+30"/>
<source>Join</source>
- <translation type="unfinished"></translation>
+ <translation>Join</translation>
</message>
<message>
<location line="+2"/>
<source>Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Cancel</translation>
</message>
<message>
<location line="+7"/>
<source>Room ID or alias</source>
- <translation type="unfinished"></translation>
+ <translation>Room ID or alias</translation>
</message>
</context>
<context>
@@ -714,12 +761,12 @@
<message>
<location filename="../../src/dialogs/LeaveRoom.cpp" line="+31"/>
<source>Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Cancel</translation>
</message>
<message>
<location line="+8"/>
<source>Are you sure you want to leave?</source>
- <translation type="unfinished"></translation>
+ <translation>Are you sure you want to leave?</translation>
</message>
</context>
<context>
@@ -727,12 +774,12 @@
<message>
<location filename="../../src/dialogs/Logout.cpp" line="+47"/>
<source>Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Cancel</translation>
</message>
<message>
<location line="+8"/>
<source>Logout. Are you sure?</source>
- <translation type="unfinished"></translation>
+ <translation>Logout. Are you sure?</translation>
</message>
</context>
<context>
@@ -740,19 +787,21 @@
<message>
<location filename="../../src/dialogs/PreviewUploadOverlay.cpp" line="+42"/>
<source>Upload</source>
- <translation type="unfinished"></translation>
+ <translation>Upload</translation>
</message>
<message>
<location line="+1"/>
<source>Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Cancel</translation>
</message>
<message>
<location line="+84"/>
<source>Media type: %1
Media size: %2
</source>
- <translation type="unfinished"></translation>
+ <translation>Media type: %1
+Media size: %2
+</translation>
</message>
</context>
<context>
@@ -760,35 +809,43 @@ Media size: %2
<message>
<location filename="../../src/dialogs/ReCaptcha.cpp" line="+31"/>
<source>Cancel</source>
- <translation type="unfinished"></translation>
+ <translation>Cancel</translation>
</message>
<message>
<location line="+1"/>
<source>Confirm</source>
- <translation type="unfinished"></translation>
+ <translation>Confirm</translation>
</message>
<message>
<location line="+11"/>
<source>Solve the reCAPTCHA and press the confirm button</source>
- <translation type="unfinished"></translation>
+ <translation>Solve the reCAPTCHA and press the confirm button</translation>
</message>
</context>
<context>
<name>dialogs::ReadReceipts</name>
<message>
- <location filename="../../src/dialogs/ReadReceipts.cpp" line="+119"/>
+ <location filename="../../src/dialogs/ReadReceipts.cpp" line="+121"/>
<source>Read receipts</source>
- <translation type="unfinished"></translation>
+ <translation>Read receipts</translation>
</message>
<message>
<location line="+4"/>
<source>Close</source>
- <translation type="unfinished"></translation>
+ <translation>Close</translation>
+ </message>
+</context>
+<context>
+ <name>dialogs::ReceiptItem</name>
+ <message>
+ <location line="-44"/>
+ <source>Today %1</source>
+ <translation>Today %1</translation>
</message>
<message>
- <location line="+11"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
+ <location line="+2"/>
+ <source>Yesterday %1</source>
+ <translation>Yesterday %1</translation>
</message>
</context>
<context>
@@ -796,133 +853,143 @@ Media size: %2
<message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+113"/>
<source>Settings</source>
- <translation type="unfinished"></translation>
+ <translation>Settings</translation>
</message>
<message>
<location line="+3"/>
<source>Info</source>
- <translation type="unfinished"></translation>
+ <translation>Info</translation>
</message>
<message>
<location line="+11"/>
<source>Internal ID</source>
- <translation type="unfinished"></translation>
+ <translation>Internal ID</translation>
</message>
<message>
<location line="+10"/>
<source>Room Version</source>
- <translation type="unfinished"></translation>
+ <translation>Room Version</translation>
</message>
<message>
<location line="+4"/>
<source>Notifications</source>
- <translation type="unfinished"></translation>
+ <translation>Notifications</translation>
</message>
<message>
<location line="+3"/>
<source>Muted</source>
- <translation type="unfinished"></translation>
+ <translation>Muted</translation>
</message>
<message>
<location line="+1"/>
<source>Mentions only</source>
- <translation type="unfinished"></translation>
+ <translation>Mentions only</translation>
</message>
<message>
<location line="+1"/>
<source>All messages</source>
- <translation type="unfinished"></translation>
+ <translation>All messages</translation>
</message>
<message>
<location line="+7"/>
<source>Room access</source>
- <translation type="unfinished"></translation>
+ <translation>Room access</translation>
</message>
<message>
<location line="+2"/>
<source>Anyone and guests</source>
- <translation type="unfinished"></translation>
+ <translation>Anyone and guests</translation>
</message>
<message>
<location line="+1"/>
<source>Anyone</source>
- <translation type="unfinished"></translation>
+ <translation>Anyone who knows the room link (no guests)</translation>
</message>
<message>
<location line="+1"/>
<source>Invited users</source>
- <translation type="unfinished"></translation>
+ <translation>Invited users</translation>
</message>
<message>
<location line="+50"/>
<source>Encryption</source>
- <translation type="unfinished"></translation>
+ <translation>Encryption</translation>
</message>
<message>
<location line="+8"/>
<source>End-to-End Encryption</source>
- <translation type="unfinished"></translation>
+ <translation>End-to-End Encryption</translation>
</message>
<message>
<location line="+1"/>
<source>Encryption is currently experimental and things might break unexpectedly. <br>Please take note that it can't be disabled afterwards.</source>
- <translation type="unfinished"></translation>
+ <translation>Encryption is currently experimental and things might break unexpectedly. <br>Please take note that it can't be disabled afterwards.</translation>
</message>
<message>
<location line="+27"/>
<source>Respond to key requests</source>
- <translation type="unfinished"></translation>
+ <translation>Respond to key requests</translation>
</message>
<message>
<location line="+3"/>
<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>
+ <translation>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.</translation>
</message>
<message numerus="yes">
<location line="+53"/>
<source>%n member(s)</source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>%n member</numerusform>
+ <numerusform>%n members</numerusform>
</translation>
</message>
<message>
- <location line="+71"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+69"/>
+ <location line="+140"/>
<source>Failed to enable encryption: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Failed to enable encryption: %1</translation>
</message>
<message>
<location line="+149"/>
<source>Select an avatar</source>
- <translation type="unfinished"></translation>
+ <translation>Select an avatar</translation>
</message>
<message>
<location line="+0"/>
<source>All Files (*)</source>
- <translation type="unfinished"></translation>
+ <translation>All Files (*)</translation>
</message>
<message>
<location line="+12"/>
- <source>The selected media is not an image</source>
- <translation type="unfinished"></translation>
+ <source>The selected file is not an image</source>
+ <translation>The selected file is not an image</translation>
</message>
<message>
<location line="+5"/>
- <source>Error while reading media: %1</source>
- <translation type="unfinished"></translation>
+ <source>Error while reading file: %1</source>
+ <translation>Error while reading file: %1</translation>
</message>
<message>
<location line="+35"/>
<location line="+20"/>
<source>Failed to upload image: %s</source>
- <translation type="unfinished"></translation>
+ <translation>Failed to upload image: %s</translation>
+ </message>
+</context>
+<context>
+ <name>dialogs::UserMentions</name>
+ <message>
+ <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/>
+ <source>This Room</source>
+ <translation>This Room</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>All Rooms</source>
+ <translation>All Rooms</translation>
</message>
</context>
<context>
@@ -930,32 +997,27 @@ Media size: %2
<message>
<location filename="../../src/dialogs/UserProfile.cpp" line="+63"/>
<source>Ban the user from the room</source>
- <translation type="unfinished"></translation>
+ <translation>Ban the user from the room</translation>
</message>
<message>
<location line="+9"/>
<source>Ignore messages from this user</source>
- <translation type="unfinished"></translation>
+ <translation>Ignore messages from this user</translation>
</message>
<message>
<location line="+9"/>
<source>Kick the user from the room</source>
- <translation type="unfinished"></translation>
+ <translation>Kick the user from the room</translation>
</message>
<message>
<location line="+9"/>
<source>Start a conversation</source>
- <translation type="unfinished"></translation>
+ <translation>Start a conversation</translation>
</message>
<message>
<location line="+57"/>
<source>Devices</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+39"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
+ <translation>Devices</translation>
</message>
</context>
<context>
@@ -963,42 +1025,132 @@ Media size: %2
<message>
<location filename="../../src/emoji/Panel.cpp" line="+125"/>
<source>Smileys & People</source>
- <translation type="unfinished">Smileys & People</translation>
+ <translation>Smileys & People</translation>
</message>
<message>
<location line="+4"/>
<source>Animals & Nature</source>
- <translation type="unfinished">Animals & Nature</translation>
+ <translation>Animals & Nature</translation>
</message>
<message>
<location line="+3"/>
<source>Food & Drink</source>
- <translation type="unfinished">Food & Drink</translation>
+ <translation>Food & Drink</translation>
</message>
<message>
<location line="+3"/>
<source>Activity</source>
- <translation type="unfinished">Activity</translation>
+ <translation>Activity</translation>
</message>
<message>
<location line="+4"/>
<source>Travel & Places</source>
- <translation type="unfinished">Travel & Places</translation>
+ <translation>Travel & Places</translation>
</message>
<message>
<location line="+3"/>
<source>Objects</source>
- <translation type="unfinished">Objects</translation>
+ <translation>Objects</translation>
</message>
<message>
<location line="+3"/>
<source>Symbols</source>
- <translation type="unfinished">Symbols</translation>
+ <translation>Symbols</translation>
</message>
<message>
<location line="+3"/>
<source>Flags</source>
- <translation type="unfinished">Flags</translation>
+ <translation>Flags</translation>
+ </message>
+</context>
+<context>
+ <name>message-description sent:</name>
+ <message>
+ <location filename="../../src/Utils.h" line="+104"/>
+ <source>%1 an audio clip</source>
+ <translation>%1 an audio clip</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 an image</source>
+ <translation>%1 an image</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a file</source>
+ <translation>%1 a file</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a video clip</source>
+ <translation>%1 a video clip</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a sticker</source>
+ <translation>%1 a sticker</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a notification</source>
+ <translation>%1 a notification</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>%1 an encrypted message</source>
+ <translation>%1 an encrypted message</translation>
+ </message>
+</context>
+<context>
+ <name>message-description:</name>
+ <message>
+ <location line="-26"/>
+ <source>sent</source>
+ <comment>For when someone else is the sender</comment>
+ <translation>sent</translation>
+ </message>
+</context>
+<context>
+ <name>message-description: </name>
+ <message>
+ <location line="-2"/>
+ <source>sent</source>
+ <comment>For when you are the sender</comment>
+ <translation>sent</translation>
+ </message>
+</context>
+<context>
+ <name>utils</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+46"/>
+ <location filename="../../src/Utils.h" line="+55"/>
+ <source>You</source>
+ <translation>You</translation>
+ </message>
+ <message>
+ <location line="+219"/>
+ <source>sent a file.</source>
+ <translation>sent a file.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an image.</source>
+ <translation>sent an image.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an audio file.</source>
+ <translation>sent an audio file.</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent a video</source>
+ <translation>sent a video.</translation>
+ </message>
+ <message>
+ <location filename="../../src/Utils.h" line="-23"/>
+ <source>Unknown Message Type</source>
+ <translation>Unknown Message Type</translation>
</message>
</context>
</TS>
diff --git a/resources/langs/nheko_fi.ts b/resources/langs/nheko_fi.ts
new file mode 100644
index 00000000..89eb33b7
--- /dev/null
+++ b/resources/langs/nheko_fi.ts
@@ -0,0 +1,1156 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="fi">
+<context>
+ <name>AudioItem</name>
+ <message>
+ <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+118"/>
+ <source>Save File</source>
+ <translation>Tallenna tiedosto</translation>
+ </message>
+</context>
+<context>
+ <name>ChatPage</name>
+ <message>
+ <location filename="../../src/ChatPage.cpp" line="+330"/>
+ <source>Failed to upload image. Please try again.</source>
+ <translation>Kuvan lähettäminen epäonnistui. Ole hyvä ja yritä uudelleen.</translation>
+ </message>
+ <message>
+ <location line="+45"/>
+ <source>Failed to upload file. Please try again.</source>
+ <translation>Tiedoston lähettäminen epäonnistui. Ole hyvä ja yritä uudelleen.</translation>
+ </message>
+ <message>
+ <location line="+43"/>
+ <source>Failed to upload audio. Please try again.</source>
+ <translation>Äänitiedoston lähettäminen epäonnistui. Ole hyvä ja yritä uudelleen.</translation>
+ </message>
+ <message>
+ <location line="+42"/>
+ <source>Failed to upload video. Please try again.</source>
+ <translation>Videon lähettäminen epäonnistui. Ole hyvä ja yritä uudelleen.</translation>
+ </message>
+ <message>
+ <location line="+380"/>
+ <source>Failed to restore OLM account. Please login again.</source>
+ <translation>OLM-tilin palauttaminen epäonnistui. Ole hyvä ja kirjaudu sisään uudelleen.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Failed to restore save data. Please login again.</source>
+ <translation>Tallennettujen tietojen palauttaminen epäonnistui. Ole hyvä ja kirjaudu sisään uudelleen.</translation>
+ </message>
+ <message>
+ <location line="+198"/>
+ <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
+ <translation>Salausavainten lähetys epäonnistui. Palvelimen vastaus: %1 %2. Ole hyvä ja yritä uudelleen myöhemmin.</translation>
+ </message>
+ <message>
+ <location line="+51"/>
+ <location line="+153"/>
+ <source>Please try to login again: %1</source>
+ <translation>Ole hyvä ja yritä kirjautua sisään uudelleen: %1</translation>
+ </message>
+ <message>
+ <location line="-45"/>
+ <source>Room creation failed: %1</source>
+ <translation>Huoneen luominen epäonnistui: %1</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Failed to leave room: %1</source>
+ <translation>Huoneesta poistuminen epäonnistui: %1</translation>
+ </message>
+</context>
+<context>
+ <name>CommunitiesListItem</name>
+ <message>
+ <location filename="../../src/CommunitiesListItem.cpp" line="+130"/>
+ <source>All rooms</source>
+ <translation>Kaikki huoneet</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Favourite rooms</source>
+ <translation>Suosikkihuoneet</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Low priority rooms</source>
+ <translation>Alhaisen prioriteetin huoneet</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <location line="+2"/>
+ <source> (tag)</source>
+ <translation> (tag)</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source> (community)</source>
+ <translation> (community)</translation>
+ </message>
+</context>
+<context>
+ <name>EditModal</name>
+ <message>
+ <location filename="../../src/dialogs/RoomSettings.cpp" line="+58"/>
+ <source>Apply</source>
+ <translation>Tallenna</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Cancel</source>
+ <translation>Peruuta</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Name</source>
+ <translation>Nimi</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Topic</source>
+ <translation>Aihe</translation>
+ </message>
+</context>
+<context>
+ <name>FileItem</name>
+ <message>
+ <location filename="../../src/timeline/widgets/FileItem.cpp" line="+107"/>
+ <source>Save File</source>
+ <translation>Tallenna tiedosto</translation>
+ </message>
+</context>
+<context>
+ <name>ImageItem</name>
+ <message>
+ <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+241"/>
+ <source>Save image</source>
+ <translation>Tallenna kuva</translation>
+ </message>
+</context>
+<context>
+ <name>InviteeItem</name>
+ <message>
+ <location filename="../../src/InviteeItem.cpp" line="+17"/>
+ <source>Remove</source>
+ <translation>Poista</translation>
+ </message>
+</context>
+<context>
+ <name>LoginPage</name>
+ <message>
+ <location filename="../../src/LoginPage.cpp" line="+80"/>
+ <source>Matrix ID</source>
+ <translation>Matrix-tunnus</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>e.g @joe:matrix.org</source>
+ <translation>esim. @joe:matrix.org</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Password</source>
+ <translation>Salasana</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Device name</source>
+ <translation>Laitteen nimi</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>LOGIN</source>
+ <translation>KIRJAUDU</translation>
+ </message>
+ <message>
+ <location line="+84"/>
+ <source>Autodiscovery failed. Received malformed response.</source>
+ <translation>Palvelimen tietojen hakeminen epäonnistui: virheellinen vastaus.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
+ <translation>Palvelimen tietojen hakeminen epäonnistui: tuntematon virhe hakiessa .well-known -tiedostoa.</translation>
+ </message>
+ <message>
+ <location line="+24"/>
+ <source>The required endpoints were not found. Possibly not a Matrix server.</source>
+ <translation>Vaadittuja päätepisteitä ei löydetty. Mahdollisesti ei Matrix-palvelin.</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Received malformed response. Make sure the homeserver domain is valid.</source>
+ <translation>Vastaanotettiin virheellinen vastaus. Varmista, että kotipalvelimen osoite on pätevä.</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
+ <translation>Tapahtui tuntematon virhe. Varmista, että kotipalvelimen osoite on pätevä.</translation>
+ </message>
+ <message>
+ <location line="+60"/>
+ <source>Empty password</source>
+ <translation>Tyhjä salasana</translation>
+ </message>
+</context>
+<context>
+ <name>MemberList</name>
+ <message>
+ <location filename="../../src/dialogs/MemberList.cpp" line="+96"/>
+ <source>Room members</source>
+ <translation>Huoneen jäsenet</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+</context>
+<context>
+ <name>QuickSwitcher</name>
+ <message>
+ <location filename="../../src/QuickSwitcher.cpp" line="+71"/>
+ <source>Search for a room...</source>
+ <translation>Etsi huonetta…</translation>
+ </message>
+</context>
+<context>
+ <name>RegisterPage</name>
+ <message>
+ <location filename="../../src/RegisterPage.cpp" line="+77"/>
+ <source>Username</source>
+ <translation>Käyttäjänimi</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Password</source>
+ <translation>Salasana</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Password confirmation</source>
+ <translation>Salasanan varmistus</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Home Server</source>
+ <translation>Kotipalvelin</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>REGISTER</source>
+ <translation>REKISTERÖIDY</translation>
+ </message>
+ <message>
+ <location line="+93"/>
+ <source>Invalid username</source>
+ <translation>Epäkelpo käyttäjänimi</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Password is not long enough (min 8 chars)</source>
+ <translation>Salasana ei ole tarpeeksi pitkä (vähintään 8 merkkiä)</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Passwords don't match</source>
+ <translation>Salasanat eivät täsmää</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Invalid server name</source>
+ <translation>Epäkelpo palvelimen nimi</translation>
+ </message>
+</context>
+<context>
+ <name>ReplyPopup</name>
+ <message>
+ <location filename="../../src/popups/ReplyPopup.cpp" line="+45"/>
+ <source>Logout</source>
+ <translation>Kirjaudu ulos</translation>
+ </message>
+</context>
+<context>
+ <name>RoomInfo</name>
+ <message>
+ <location filename="../../src/Cache.cpp" line="+2205"/>
+ <source>no version stored</source>
+ <translation>ei tallennettua versiota</translation>
+ </message>
+</context>
+<context>
+ <name>RoomInfoListItem</name>
+ <message>
+ <location filename="../../src/RoomInfoListItem.cpp" line="+93"/>
+ <source>Leave room</source>
+ <translation>Poistu huoneesta</translation>
+ </message>
+ <message>
+ <location line="+181"/>
+ <source>Accept</source>
+ <translation>Hyväksy</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Decline</source>
+ <translation>Hylkää</translation>
+ </message>
+</context>
+<context>
+ <name>SideBarActions</name>
+ <message>
+ <location filename="../../src/SideBarActions.cpp" line="+38"/>
+ <source>User settings</source>
+ <translation>Käyttäjäasetukset</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Create new room</source>
+ <translation>Luo uusi huone</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Join a room</source>
+ <translation>Liity huoneeseen</translation>
+ </message>
+ <message>
+ <location line="+16"/>
+ <source>Start a new chat</source>
+ <translation>Aloita uusi keskustelu</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>Room directory</source>
+ <translation>Huoneluettelo</translation>
+ </message>
+</context>
+<context>
+ <name>StatusIndicator</name>
+ <message>
+ <location filename="../../src/timeline/TimelineItem.cpp" line="+107"/>
+ <source>Encrypted</source>
+ <translation>Salattu</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Delivered</source>
+ <translation>Toimitettu</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Seen</source>
+ <translation>Luettu</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Sent</source>
+ <translation>Lähetetty</translation>
+ </message>
+</context>
+<context>
+ <name>TextInputWidget</name>
+ <message>
+ <location filename="../../src/TextInputWidget.cpp" line="+507"/>
+ <source>Send a file</source>
+ <translation>Lähetä tiedosto</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <location filename="../../src/TextInputWidget.h" line="+164"/>
+ <source>Write a message...</source>
+ <translation>Kirjoita viesti…</translation>
+ </message>
+ <message>
+ <location line="+31"/>
+ <source>Send a message</source>
+ <translation>Lähetä viesti</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Emoji</source>
+ <translation>Emoji</translation>
+ </message>
+ <message>
+ <location line="+75"/>
+ <source>Select a file</source>
+ <translation>Valitse tiedosto</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>All Files (*)</source>
+ <translation>Kaikki tiedostot (*)</translation>
+ </message>
+ <message>
+ <location filename="../../src/TextInputWidget.h" line="-5"/>
+ <source>Connection lost. Nheko is trying to re-connect...</source>
+ <translation>Yhteys kadotettu. Nheko yrittää muodostaa yhteyttä uudelleen…</translation>
+ </message>
+</context>
+<context>
+ <name>TimelineItem</name>
+ <message>
+ <location filename="../../src/timeline/TimelineItem.cpp" line="+85"/>
+ <source>Message redaction failed: %1</source>
+ <translation>Viestin poisto epäonnistui: %1</translation>
+ </message>
+ <message>
+ <location line="+39"/>
+ <source>Reply</source>
+ <translation>Vastaa</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Options</source>
+ <translation>Asetukset</translation>
+ </message>
+</context>
+<context>
+ <name>TimelineView</name>
+ <message>
+ <location filename="../../src/timeline/TimelineView.cpp" line="+245"/>
+ <source>Encryption is enabled</source>
+ <translation>Salaus on käytössä</translation>
+ </message>
+ <message>
+ <location line="+65"/>
+ <source>-- Encrypted Event (No keys found for decryption) --</source>
+ <comment>Placeholder, when the message was not decrypted yet or can't be decrypted</comment>
+ <translation>-- Salattu viesti (salauksen purkuavaimia ei löydetty) --</translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>-- Decryption Error (failed to communicate with DB) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
+ <translation>-- Virhe purkaessa salausta (tietokannan kanssa kommunikointi epäonnistui) --</translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed.</comment>
+ <translation>-- Virhe purkaessa salausta (megolm-avaimien hakeminen tietokannasta epäonnistui) --</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>-- Decryption Error (%1) --</source>
+ <comment>Placeholder, when the message can't be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1</comment>
+ <translation>-- Virhe purkaessa salausta (%1) --</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>-- Encrypted Event (Unknown event type) --</source>
+ <comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet</comment>
+ <translation>-- Salattu viesti (tuntematon viestityyppi) --</translation>
+ </message>
+</context>
+<context>
+ <name>TopRoomBar</name>
+ <message>
+ <location filename="../../src/TopRoomBar.cpp" line="+79"/>
+ <source>Room options</source>
+ <translation>Huonevaihtoehdot</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Mentions</source>
+ <translation>Maininnat</translation>
+ </message>
+ <message>
+ <location line="+34"/>
+ <source>Invite users</source>
+ <translation>Kutsu käyttäjiä</translation>
+ </message>
+ <message>
+ <location line="+6"/>
+ <source>Members</source>
+ <translation>Jäsenet</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Leave room</source>
+ <translation>Poistu huoneesta</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>Settings</source>
+ <translation>Asetukset</translation>
+ </message>
+</context>
+<context>
+ <name>TrayIcon</name>
+ <message>
+ <location filename="../../src/TrayIcon.cpp" line="+120"/>
+ <source>Show</source>
+ <translation>Näytä</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Quit</source>
+ <translation>Lopeta</translation>
+ </message>
+</context>
+<context>
+ <name>TypingDisplay</name>
+ <message numerus="yes">
+ <location filename="../../src/TypingDisplay.cpp" line="+37"/>
+ <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>
+ <numerusform>%1%2 kirjoittaa</numerusform>
+ <numerusform>%1 ja %2 kirjoittavat</numerusform>
+ </translation>
+ </message>
+</context>
+<context>
+ <name>UserInfoWidget</name>
+ <message>
+ <location filename="../../src/UserInfoWidget.cpp" line="+87"/>
+ <source>Logout</source>
+ <translation>Kirjaudu ulos</translation>
+ </message>
+</context>
+<context>
+ <name>UserSettingsPage</name>
+ <message>
+ <location filename="../../src/UserSettingsPage.cpp" line="+166"/>
+ <source>Minimize to tray</source>
+ <translation>Pienennä ilmoitusalueelle</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Start in tray</source>
+ <translation>Aloita ilmoitusalueella</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Group's sidebar</source>
+ <translation>Ryhmäsivupalkki</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Typing notifications</source>
+ <translation>Kirjoitusilmoitukset</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Read receipts</source>
+ <translation>Lukukuittaukset</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Desktop notifications</source>
+ <translation>Työpöytäilmoitukset</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Scale factor</source>
+ <translation>Mittakerroin</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Font size</source>
+ <translation>Fonttikoko</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>Font Family</source>
+ <translation>Fonttiperhe</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Emoji Font Famly</source>
+ <translation>Emoji-fonttiperhe</translation>
+ </message>
+ <message>
+ <location line="+33"/>
+ <source>Theme</source>
+ <translation>Teema</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Device ID</source>
+ <translation>Laitteen tunnus</translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>Device Fingerprint</source>
+ <translation>Laitteen sormenjälki</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Session Keys</source>
+ <translation>Istunnon avaimet</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>IMPORT</source>
+ <translation>TUO</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>EXPORT</source>
+ <translation>VIE</translation>
+ </message>
+ <message>
+ <location line="+13"/>
+ <source>ENCRYPTION</source>
+ <translation>SALAUS</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>GENERAL</source>
+ <translation>YLEISET ASETUKSET</translation>
+ </message>
+ <message>
+ <location line="+156"/>
+ <source>Open Sessions File</source>
+ <translation>Avaa Istuntoavaintiedosto</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <location line="+18"/>
+ <location line="+9"/>
+ <location line="+2"/>
+ <location line="+2"/>
+ <location line="+19"/>
+ <location line="+10"/>
+ <location line="+18"/>
+ <location line="+2"/>
+ <location line="+2"/>
+ <source>Error</source>
+ <translation>Virhe</translation>
+ </message>
+ <message>
+ <location line="-73"/>
+ <location line="+32"/>
+ <source>File Password</source>
+ <translation>Tiedoston Salasana</translation>
+ </message>
+ <message>
+ <location line="-31"/>
+ <source>Enter the passphrase to decrypt the file:</source>
+ <translation>Anna salasana tiedoston salauksen purkamiseksi:</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <location line="+32"/>
+ <source>The password cannot be empty</source>
+ <translation>Salasana ei voi olla tyhjä</translation>
+ </message>
+ <message>
+ <location line="-8"/>
+ <source>Enter passphrase to encrypt your session keys:</source>
+ <translation>Anna salasana istuntoavaimien salaamiseksi:</translation>
+ </message>
+ <message>
+ <location line="+14"/>
+ <source>File to save the exported session keys</source>
+ <translation>Tiedosto, johon viedyt istuntoavaimet tallennetaan</translation>
+ </message>
+</context>
+<context>
+ <name>WelcomePage</name>
+ <message>
+ <location filename="../../src/WelcomePage.cpp" line="+46"/>
+ <source>Welcome to nheko! The desktop client for the Matrix protocol.</source>
+ <translation>Tervetuloa nhekoon! Työpöytäsovellus Matrix-protokollalle.</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Enjoy your stay!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+23"/>
+ <source>REGISTER</source>
+ <translation>REKISTERÖIDY</translation>
+ </message>
+ <message>
+ <location line="+5"/>
+ <source>LOGIN</source>
+ <translation>KIRJAUDU</translation>
+ </message>
+</context>
+<context>
+ <name>descriptiveTime</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+104"/>
+ <source>Yesterday</source>
+ <translation>Eilen</translation>
+ </message>
+</context>
+<context>
+ <name>dialogs::CreateRoom</name>
+ <message>
+ <location filename="../../src/dialogs/CreateRoom.cpp" line="+36"/>
+ <source>Create room</source>
+ <translation>Luo huone</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Cancel</source>
+ <translation>Peruuta</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Name</source>
+ <translation>Nimi</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Topic</source>
+ <translation>Aihe</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Alias</source>
+ <translation>Osoite</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Room Visibility</source>
+ <translation>Huoneen näkyvyys</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Room Preset</source>
+ <translation>Huoneen esiasetus</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Direct Chat</source>
+ <translation>Suora keskustelu</translation>
+ </message>
+</context>
+<context>
+ <name>dialogs::InviteUsers</name>
+ <message>
+ <location filename="../../src/dialogs/InviteUsers.cpp" line="+41"/>
+ <source>Cancel</source>
+ <translation>Peruuta</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>User ID to invite</source>
+ <translation>Käyttäjätunnus kutsuttavaksi</translation>
+ </message>
+</context>
+<context>
+ <name>dialogs::JoinRoom</name>
+ <message>
+ <location filename="../../src/dialogs/JoinRoom.cpp" line="+30"/>
+ <source>Join</source>
+ <translation>Liity</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Cancel</source>
+ <translation>Peruuta</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Room ID or alias</source>
+ <translation>Huoneen tunnus tai osoite</translation>
+ </message>
+</context>
+<context>
+ <name>dialogs::LeaveRoom</name>
+ <message>
+ <location filename="../../src/dialogs/LeaveRoom.cpp" line="+31"/>
+ <source>Cancel</source>
+ <translation>Peruuta</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Are you sure you want to leave?</source>
+ <translation>Oletko varma, että haluat poistua?</translation>
+ </message>
+</context>
+<context>
+ <name>dialogs::Logout</name>
+ <message>
+ <location filename="../../src/dialogs/Logout.cpp" line="+47"/>
+ <source>Cancel</source>
+ <translation>Peruuta</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>Logout. Are you sure?</source>
+ <translation>Kirjaudutaan ulos. Oletko varma?</translation>
+ </message>
+</context>
+<context>
+ <name>dialogs::PreviewUploadOverlay</name>
+ <message>
+ <location filename="../../src/dialogs/PreviewUploadOverlay.cpp" line="+42"/>
+ <source>Upload</source>
+ <translation>Lähetä</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Cancel</source>
+ <translation>Peruuta</translation>
+ </message>
+ <message>
+ <location line="+84"/>
+ <source>Media type: %1
+Media size: %2
+</source>
+ <translation>Median tyyppi: %1
+Median koko: %2
+</translation>
+ </message>
+</context>
+<context>
+ <name>dialogs::ReCaptcha</name>
+ <message>
+ <location filename="../../src/dialogs/ReCaptcha.cpp" line="+31"/>
+ <source>Cancel</source>
+ <translation>Peruuta</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Confirm</source>
+ <translation>Vahvista</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Solve the reCAPTCHA and press the confirm button</source>
+ <translation>Ratkaise reCAPTCHA ja paina varmista-nappia</translation>
+ </message>
+</context>
+<context>
+ <name>dialogs::ReadReceipts</name>
+ <message>
+ <location filename="../../src/dialogs/ReadReceipts.cpp" line="+121"/>
+ <source>Read receipts</source>
+ <translation>Lukukuittaukset</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Close</source>
+ <translation>Sulje</translation>
+ </message>
+</context>
+<context>
+ <name>dialogs::ReceiptItem</name>
+ <message>
+ <location line="-44"/>
+ <source>Today %1</source>
+ <translation>Tänään %1</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Yesterday %1</source>
+ <translation>Eilen %1</translation>
+ </message>
+</context>
+<context>
+ <name>dialogs::RoomSettings</name>
+ <message>
+ <location filename="../../src/dialogs/RoomSettings.cpp" line="+113"/>
+ <source>Settings</source>
+ <translation>Asetukset</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Info</source>
+ <translation>Tiedot</translation>
+ </message>
+ <message>
+ <location line="+11"/>
+ <source>Internal ID</source>
+ <translation>Sisäinen tunnus</translation>
+ </message>
+ <message>
+ <location line="+10"/>
+ <source>Room Version</source>
+ <translation>Huoneen versio</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Notifications</source>
+ <translation>Ilmoitukset</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Muted</source>
+ <translation>Vaimennettu</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Mentions only</source>
+ <translation>Vain maininnat</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>All messages</source>
+ <translation>Kaikki viestit</translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>Room access</source>
+ <translation>Pääsy huoneeseen</translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Anyone and guests</source>
+ <translation>Kaikki (mukaanlukien vieraat)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Anyone</source>
+ <translation>Kaikki (poislukien vieraat)</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Invited users</source>
+ <translation>Kutsutut käyttäjät</translation>
+ </message>
+ <message>
+ <location line="+50"/>
+ <source>Encryption</source>
+ <translation>Salaus</translation>
+ </message>
+ <message>
+ <location line="+8"/>
+ <source>End-to-End Encryption</source>
+ <translation>Päästä-päähän-salaus</translation>
+ </message>
+ <message>
+ <location line="+1"/>
+ <source>Encryption is currently experimental and things might break unexpectedly. <br>Please take note that it can't be disabled afterwards.</source>
+ <translation>Salaus on tällä hetkellä kokeellinen ja asiat saattavat mennä rikki odottamattomasti.<br>Huomaa, ettei sitä voi poistaa käytöstä jälkikäteen.</translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>Respond to key requests</source>
+ <translation>Vastaa avainpyyntöihin</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <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>Pitäisikö asiakasohjelman palauttaa salausavaimet automaattisesti pyydettäessä.
+ Käytä varoen, tämä on väliaikainen vaihtoehto salausjärjestelmän testausta varten,
+ kunnes laitteiden vahvistus on valmis.</translation>
+ </message>
+ <message numerus="yes">
+ <location line="+53"/>
+ <source>%n member(s)</source>
+ <translation>
+ <numerusform>%n käyttäjä</numerusform>
+ <numerusform>%n käyttäjää</numerusform>
+ </translation>
+ </message>
+ <message>
+ <location line="+140"/>
+ <source>Failed to enable encryption: %1</source>
+ <translation>Salauksen aktivointi epäonnistui: %1</translation>
+ </message>
+ <message>
+ <location line="+149"/>
+ <source>Select an avatar</source>
+ <translation>Valitse profiilikuva</translation>
+ </message>
+ <message>
+ <location line="+0"/>
+ <source>All Files (*)</source>
+ <translation>Kaikki Tiedostot (*)</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="+35"/>
+ <location line="+20"/>
+ <source>Failed to upload image: %s</source>
+ <translation>Kuvan lähetys epäonnistui: %s</translation>
+ </message>
+</context>
+<context>
+ <name>dialogs::UserMentions</name>
+ <message>
+ <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/>
+ <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>dialogs::UserProfile</name>
+ <message>
+ <location filename="../../src/dialogs/UserProfile.cpp" line="+63"/>
+ <source>Ban the user from the room</source>
+ <translation>Anna käyttäjälle porttikielto huoneesta</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Ignore messages from this user</source>
+ <translation>Jätä tämän käyttäjän viestit huomiotta</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Kick the user from the room</source>
+ <translation>Potki käyttäjä huoneesta</translation>
+ </message>
+ <message>
+ <location line="+9"/>
+ <source>Start a conversation</source>
+ <translation>Aloita keskustelu</translation>
+ </message>
+ <message>
+ <location line="+57"/>
+ <source>Devices</source>
+ <translation>Laitteet</translation>
+ </message>
+</context>
+<context>
+ <name>emoji::Panel</name>
+ <message>
+ <location filename="../../src/emoji/Panel.cpp" line="+125"/>
+ <source>Smileys & People</source>
+ <translation>Hymiöt ja ihmiset</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Animals & Nature</source>
+ <translation>Eläimet ja luonto</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Food & Drink</source>
+ <translation>Ruoka ja juoma</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Activity</source>
+ <translation>Aktiviteetti</translation>
+ </message>
+ <message>
+ <location line="+4"/>
+ <source>Travel & Places</source>
+ <translation>Matkailu ja paikat</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Objects</source>
+ <translation>Esineet</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Symbols</source>
+ <translation>Symbolit</translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>Flags</source>
+ <translation>Liput</translation>
+ </message>
+</context>
+<context>
+ <name>message-description sent:</name>
+ <message>
+ <location filename="../../src/Utils.h" line="+104"/>
+ <source>%1 an audio clip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 an image</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a video clip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a sticker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a notification</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>%1 an encrypted message</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>message-description:</name>
+ <message>
+ <location line="-26"/>
+ <source>sent</source>
+ <comment>For when someone else is the sender</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>message-description: </name>
+ <message>
+ <location line="-2"/>
+ <source>sent</source>
+ <comment>For when you are the sender</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>utils</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+46"/>
+ <location filename="../../src/Utils.h" line="+55"/>
+ <source>You</source>
+ <translation>Sinä</translation>
+ </message>
+ <message>
+ <location line="+219"/>
+ <source>sent a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an image.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an audio file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent a video</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/Utils.h" line="-23"/>
+ <source>Unknown Message Type</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/resources/langs/nheko_fr.ts b/resources/langs/nheko_fr.ts
index beab8752..42f82b0f 100644
--- a/resources/langs/nheko_fr.ts
+++ b/resources/langs/nheko_fr.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioItem</name>
<message>
- <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+117"/>
+ <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+118"/>
<source>Save File</source>
<translation>Enregistrer le fichier</translation>
</message>
@@ -12,7 +12,7 @@
<context>
<name>ChatPage</name>
<message>
- <location filename="../../src/ChatPage.cpp" line="+309"/>
+ <location filename="../../src/ChatPage.cpp" line="+330"/>
<source>Failed to upload image. Please try again.</source>
<translation type="unfinished"></translation>
</message>
@@ -32,7 +32,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+376"/>
+ <location line="+380"/>
<source>Failed to restore OLM account. Please login again.</source>
<translation type="unfinished"></translation>
</message>
@@ -42,7 +42,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+169"/>
+ <location line="+198"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
<translation type="unfinished"></translation>
</message>
@@ -118,7 +118,7 @@
<context>
<name>FileItem</name>
<message>
- <location filename="../../src/timeline/widgets/FileItem.cpp" line="+106"/>
+ <location filename="../../src/timeline/widgets/FileItem.cpp" line="+107"/>
<source>Save File</source>
<translation>Enregistrer le fichier</translation>
</message>
@@ -126,7 +126,7 @@
<context>
<name>ImageItem</name>
<message>
- <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+238"/>
+ <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+241"/>
<source>Save image</source>
<translation>Enregistrer l'image</translation>
</message>
@@ -205,8 +205,8 @@
<translation>Membres du salon</translation>
</message>
<message>
- <location line="+33"/>
- <source>ESC</source>
+ <location line="+4"/>
+ <source>OK</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -278,7 +278,7 @@
<context>
<name>RoomInfo</name>
<message>
- <location filename="../../src/Cache.cpp" line="+2204"/>
+ <location filename="../../src/Cache.cpp" line="+2205"/>
<source>no version stored</source>
<translation type="unfinished"></translation>
</message>
@@ -286,12 +286,12 @@
<context>
<name>RoomInfoListItem</name>
<message>
- <location filename="../../src/RoomInfoListItem.cpp" line="+92"/>
+ <location filename="../../src/RoomInfoListItem.cpp" line="+93"/>
<source>Leave room</source>
<translation>Quitter le salon</translation>
</message>
<message>
- <location line="+174"/>
+ <location line="+181"/>
<source>Accept</source>
<translation>Accepter</translation>
</message>
@@ -332,7 +332,7 @@
<context>
<name>StatusIndicator</name>
<message>
- <location filename="../../src/timeline/TimelineItem.cpp" line="+106"/>
+ <location filename="../../src/timeline/TimelineItem.cpp" line="+107"/>
<source>Encrypted</source>
<translation type="unfinished"></translation>
</message>
@@ -355,13 +355,13 @@
<context>
<name>TextInputWidget</name>
<message>
- <location filename="../../src/TextInputWidget.cpp" line="+506"/>
+ <location filename="../../src/TextInputWidget.cpp" line="+507"/>
<source>Send a file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+13"/>
- <location filename="../../src/TextInputWidget.h" line="+168"/>
+ <location filename="../../src/TextInputWidget.h" line="+164"/>
<source>Write a message...</source>
<translation>Écrivez un message...</translation>
</message>
@@ -416,6 +416,36 @@
<source>Encryption is enabled</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+65"/>
+ <source>-- Encrypted Event (No keys found for decryption) --</source>
+ <comment>Placeholder, when the message was not decrypted yet or can't be decrypted</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>-- Decryption Error (failed to communicate with DB) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed.</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>-- Decryption Error (%1) --</source>
+ <comment>Placeholder, when the message can't be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>-- Encrypted Event (Unknown event type) --</source>
+ <comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>TopRoomBar</name>
@@ -425,7 +455,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+28"/>
+ <location line="+5"/>
+ <source>Mentions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+34"/>
<source>Invite users</source>
<translation>Inviter des utilisateurs</translation>
</message>
@@ -460,15 +495,14 @@
</context>
<context>
<name>TypingDisplay</name>
- <message>
- <location filename="../../src/TypingDisplay.cpp" line="+45"/>
- <source> is typing</source>
- <translation> est en train d'écrire</translation>
- </message>
- <message>
- <location line="+2"/>
- <source> are typing</source>
- <translation> sont en train d'écrire</translation>
+ <message numerus="yes">
+ <location filename="../../src/TypingDisplay.cpp" line="+37"/>
+ <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>
</context>
<context>
@@ -482,7 +516,7 @@
<context>
<name>UserSettingsPage</name>
<message>
- <location filename="../../src/UserSettingsPage.cpp" line="+156"/>
+ <location filename="../../src/UserSettingsPage.cpp" line="+166"/>
<source>Minimize to tray</source>
<translation>Réduire à la barre des tâches</translation>
</message>
@@ -522,12 +556,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+11"/>
+ <location line="+13"/>
<source>Font Family</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+17"/>
+ <location line="+1"/>
+ <source>Emoji Font Famly</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+33"/>
<source>Theme</source>
<translation>Thème</translation>
</message>
@@ -567,7 +606,7 @@
<translation>GÉNÉRAL</translation>
</message>
<message>
- <location line="+150"/>
+ <location line="+156"/>
<source>Open Sessions File</source>
<translation type="unfinished"></translation>
</message>
@@ -637,6 +676,14 @@
</message>
</context>
<context>
+ <name>descriptiveTime</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+104"/>
+ <source>Yesterday</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>dialogs::CreateRoom</name>
<message>
<location filename="../../src/dialogs/CreateRoom.cpp" line="+36"/>
@@ -779,7 +826,7 @@ Taille du média : %2
<context>
<name>dialogs::ReadReceipts</name>
<message>
- <location filename="../../src/dialogs/ReadReceipts.cpp" line="+119"/>
+ <location filename="../../src/dialogs/ReadReceipts.cpp" line="+121"/>
<source>Read receipts</source>
<translation>Accusés de lecture</translation>
</message>
@@ -788,9 +835,17 @@ Taille du média : %2
<source>Close</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>dialogs::ReceiptItem</name>
<message>
- <location line="+11"/>
- <source>ESC</source>
+ <location line="-44"/>
+ <source>Today %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Yesterday %1</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -892,12 +947,7 @@ Taille du média : %2
</translation>
</message>
<message>
- <location line="+71"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+69"/>
+ <location line="+140"/>
<source>Failed to enable encryption: %1</source>
<translation type="unfinished"></translation>
</message>
@@ -913,12 +963,12 @@ Taille du média : %2
</message>
<message>
<location line="+12"/>
- <source>The selected media is not an image</source>
+ <source>The selected file is not an image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+5"/>
- <source>Error while reading media: %1</source>
+ <source>Error while reading file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -929,6 +979,19 @@ Taille du média : %2
</message>
</context>
<context>
+ <name>dialogs::UserMentions</name>
+ <message>
+ <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/>
+ <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>dialogs::UserProfile</name>
<message>
<location filename="../../src/dialogs/UserProfile.cpp" line="+63"/>
@@ -955,11 +1018,6 @@ Taille du média : %2
<source>Devices</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <location line="+39"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>emoji::Panel</name>
@@ -1004,4 +1062,94 @@ Taille du média : %2
<translation>Drapeaux</translation>
</message>
</context>
+<context>
+ <name>message-description sent:</name>
+ <message>
+ <location filename="../../src/Utils.h" line="+104"/>
+ <source>%1 an audio clip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 an image</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a video clip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a sticker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a notification</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>%1 an encrypted message</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>message-description:</name>
+ <message>
+ <location line="-26"/>
+ <source>sent</source>
+ <comment>For when someone else is the sender</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>message-description: </name>
+ <message>
+ <location line="-2"/>
+ <source>sent</source>
+ <comment>For when you are the sender</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>utils</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+46"/>
+ <location filename="../../src/Utils.h" line="+55"/>
+ <source>You</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+219"/>
+ <source>sent a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an image.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an audio file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent a video</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/Utils.h" line="-23"/>
+ <source>Unknown Message Type</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/resources/langs/nheko_nl.ts b/resources/langs/nheko_nl.ts
index 4c81ec76..53840f82 100644
--- a/resources/langs/nheko_nl.ts
+++ b/resources/langs/nheko_nl.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioItem</name>
<message>
- <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+117"/>
+ <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+118"/>
<source>Save File</source>
<translation>Bestand opslaan</translation>
</message>
@@ -12,7 +12,7 @@
<context>
<name>ChatPage</name>
<message>
- <location filename="../../src/ChatPage.cpp" line="+309"/>
+ <location filename="../../src/ChatPage.cpp" line="+330"/>
<source>Failed to upload image. Please try again.</source>
<translation type="unfinished"></translation>
</message>
@@ -32,7 +32,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+376"/>
+ <location line="+380"/>
<source>Failed to restore OLM account. Please login again.</source>
<translation type="unfinished"></translation>
</message>
@@ -42,7 +42,7 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+169"/>
+ <location line="+198"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
<translation type="unfinished"></translation>
</message>
@@ -118,7 +118,7 @@
<context>
<name>FileItem</name>
<message>
- <location filename="../../src/timeline/widgets/FileItem.cpp" line="+106"/>
+ <location filename="../../src/timeline/widgets/FileItem.cpp" line="+107"/>
<source>Save File</source>
<translation>Bestand opslaan</translation>
</message>
@@ -126,7 +126,7 @@
<context>
<name>ImageItem</name>
<message>
- <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+238"/>
+ <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+241"/>
<source>Save image</source>
<translation>Afbeelding opslaan</translation>
</message>
@@ -205,8 +205,8 @@
<translation>Kamerleden</translation>
</message>
<message>
- <location line="+33"/>
- <source>ESC</source>
+ <location line="+4"/>
+ <source>OK</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -277,7 +277,7 @@
<context>
<name>RoomInfo</name>
<message>
- <location filename="../../src/Cache.cpp" line="+2204"/>
+ <location filename="../../src/Cache.cpp" line="+2205"/>
<source>no version stored</source>
<translation type="unfinished"></translation>
</message>
@@ -285,12 +285,12 @@
<context>
<name>RoomInfoListItem</name>
<message>
- <location filename="../../src/RoomInfoListItem.cpp" line="+92"/>
+ <location filename="../../src/RoomInfoListItem.cpp" line="+93"/>
<source>Leave room</source>
<translation>Kamer verlaten</translation>
</message>
<message>
- <location line="+174"/>
+ <location line="+181"/>
<source>Accept</source>
<translation>Accepteren</translation>
</message>
@@ -331,7 +331,7 @@
<context>
<name>StatusIndicator</name>
<message>
- <location filename="../../src/timeline/TimelineItem.cpp" line="+106"/>
+ <location filename="../../src/timeline/TimelineItem.cpp" line="+107"/>
<source>Encrypted</source>
<translation type="unfinished"></translation>
</message>
@@ -354,13 +354,13 @@
<context>
<name>TextInputWidget</name>
<message>
- <location filename="../../src/TextInputWidget.cpp" line="+506"/>
+ <location filename="../../src/TextInputWidget.cpp" line="+507"/>
<source>Send a file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+13"/>
- <location filename="../../src/TextInputWidget.h" line="+168"/>
+ <location filename="../../src/TextInputWidget.h" line="+164"/>
<source>Write a message...</source>
<translation>Typ een bericht...</translation>
</message>
@@ -415,6 +415,36 @@
<source>Encryption is enabled</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location line="+65"/>
+ <source>-- Encrypted Event (No keys found for decryption) --</source>
+ <comment>Placeholder, when the message was not decrypted yet or can't be decrypted</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>-- Decryption Error (failed to communicate with DB) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed.</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>-- Decryption Error (%1) --</source>
+ <comment>Placeholder, when the message can't be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>-- Encrypted Event (Unknown event type) --</source>
+ <comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>TopRoomBar</name>
@@ -424,7 +454,12 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+28"/>
+ <location line="+5"/>
+ <source>Mentions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+34"/>
<source>Invite users</source>
<translation>Gebruikers uitnodigen</translation>
</message>
@@ -459,15 +494,14 @@
</context>
<context>
<name>TypingDisplay</name>
- <message>
- <location filename="../../src/TypingDisplay.cpp" line="+45"/>
- <source> is typing</source>
- <translation> is aan het typen</translation>
- </message>
- <message>
- <location line="+2"/>
- <source> are typing</source>
- <translation> zijn aan het typen</translation>
+ <message numerus="yes">
+ <location filename="../../src/TypingDisplay.cpp" line="+37"/>
+ <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>
</context>
<context>
@@ -481,7 +515,7 @@
<context>
<name>UserSettingsPage</name>
<message>
- <location filename="../../src/UserSettingsPage.cpp" line="+156"/>
+ <location filename="../../src/UserSettingsPage.cpp" line="+166"/>
<source>Minimize to tray</source>
<translation>Minimaliseren naar systeemvak</translation>
</message>
@@ -521,12 +555,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+11"/>
+ <location line="+13"/>
<source>Font Family</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+17"/>
+ <location line="+1"/>
+ <source>Emoji Font Famly</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+33"/>
<source>Theme</source>
<translation>Thema</translation>
</message>
@@ -566,7 +605,7 @@
<translation>ALGEMEEN</translation>
</message>
<message>
- <location line="+150"/>
+ <location line="+156"/>
<source>Open Sessions File</source>
<translation type="unfinished"></translation>
</message>
@@ -636,6 +675,14 @@
</message>
</context>
<context>
+ <name>descriptiveTime</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+104"/>
+ <source>Yesterday</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>dialogs::CreateRoom</name>
<message>
<location filename="../../src/dialogs/CreateRoom.cpp" line="+36"/>
@@ -778,7 +825,7 @@ Mediagrootte: %2
<context>
<name>dialogs::ReadReceipts</name>
<message>
- <location filename="../../src/dialogs/ReadReceipts.cpp" line="+119"/>
+ <location filename="../../src/dialogs/ReadReceipts.cpp" line="+121"/>
<source>Read receipts</source>
<translation>Leesbevestigingen</translation>
</message>
@@ -787,9 +834,17 @@ Mediagrootte: %2
<source>Close</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>dialogs::ReceiptItem</name>
<message>
- <location line="+11"/>
- <source>ESC</source>
+ <location line="-44"/>
+ <source>Today %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Yesterday %1</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -891,12 +946,7 @@ Mediagrootte: %2
</translation>
</message>
<message>
- <location line="+71"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+69"/>
+ <location line="+140"/>
<source>Failed to enable encryption: %1</source>
<translation type="unfinished"></translation>
</message>
@@ -912,12 +962,12 @@ Mediagrootte: %2
</message>
<message>
<location line="+12"/>
- <source>The selected media is not an image</source>
+ <source>The selected file is not an image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+5"/>
- <source>Error while reading media: %1</source>
+ <source>Error while reading file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -928,6 +978,19 @@ Mediagrootte: %2
</message>
</context>
<context>
+ <name>dialogs::UserMentions</name>
+ <message>
+ <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/>
+ <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>dialogs::UserProfile</name>
<message>
<location filename="../../src/dialogs/UserProfile.cpp" line="+63"/>
@@ -954,11 +1017,6 @@ Mediagrootte: %2
<source>Devices</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <location line="+39"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>emoji::Panel</name>
@@ -1003,4 +1061,94 @@ Mediagrootte: %2
<translation>Vlaggen</translation>
</message>
</context>
+<context>
+ <name>message-description sent:</name>
+ <message>
+ <location filename="../../src/Utils.h" line="+104"/>
+ <source>%1 an audio clip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 an image</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a video clip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a sticker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a notification</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>%1 an encrypted message</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>message-description:</name>
+ <message>
+ <location line="-26"/>
+ <source>sent</source>
+ <comment>For when someone else is the sender</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>message-description: </name>
+ <message>
+ <location line="-2"/>
+ <source>sent</source>
+ <comment>For when you are the sender</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>utils</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+46"/>
+ <location filename="../../src/Utils.h" line="+55"/>
+ <source>You</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+219"/>
+ <source>sent a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an image.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an audio file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent a video</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/Utils.h" line="-23"/>
+ <source>Unknown Message Type</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/resources/langs/nheko_pl.ts b/resources/langs/nheko_pl.ts
index edea85b9..f4f98dbb 100644
--- a/resources/langs/nheko_pl.ts
+++ b/resources/langs/nheko_pl.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioItem</name>
<message>
- <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+117"/>
+ <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+118"/>
<source>Save File</source>
<translation>Zapisz plik</translation>
</message>
@@ -12,7 +12,7 @@
<context>
<name>ChatPage</name>
<message>
- <location filename="../../src/ChatPage.cpp" line="+309"/>
+ <location filename="../../src/ChatPage.cpp" line="+330"/>
<source>Failed to upload image. Please try again.</source>
<translation>Nie udało się wysłać obrazu. Spróbuj ponownie.</translation>
</message>
@@ -32,7 +32,7 @@
<translation>Nie udało się wysłać filmu. Spróbuj ponownie.</translation>
</message>
<message>
- <location line="+376"/>
+ <location line="+380"/>
<source>Failed to restore OLM account. Please login again.</source>
<translation>Nie udało się przywrócić konta OLM. Spróbuj zalogować się ponownie.</translation>
</message>
@@ -42,7 +42,7 @@
<translation>Nie udało się przywrócić zapisanych danych. Spróbuj zalogować się ponownie.</translation>
</message>
<message>
- <location line="+169"/>
+ <location line="+198"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
<translation type="unfinished"></translation>
</message>
@@ -118,7 +118,7 @@
<context>
<name>FileItem</name>
<message>
- <location filename="../../src/timeline/widgets/FileItem.cpp" line="+106"/>
+ <location filename="../../src/timeline/widgets/FileItem.cpp" line="+107"/>
<source>Save File</source>
<translation>Zapisz plik</translation>
</message>
@@ -126,7 +126,7 @@
<context>
<name>ImageItem</name>
<message>
- <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+238"/>
+ <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+241"/>
<source>Save image</source>
<translation>Zapisz obraz</translation>
</message>
@@ -205,8 +205,8 @@
<translation>Członkowie pokoju</translation>
</message>
<message>
- <location line="+33"/>
- <source>ESC</source>
+ <location line="+4"/>
+ <source>OK</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -277,7 +277,7 @@
<context>
<name>RoomInfo</name>
<message>
- <location filename="../../src/Cache.cpp" line="+2204"/>
+ <location filename="../../src/Cache.cpp" line="+2205"/>
<source>no version stored</source>
<translation type="unfinished"></translation>
</message>
@@ -285,12 +285,12 @@
<context>
<name>RoomInfoListItem</name>
<message>
- <location filename="../../src/RoomInfoListItem.cpp" line="+92"/>
+ <location filename="../../src/RoomInfoListItem.cpp" line="+93"/>
<source>Leave room</source>
<translation>Opuść pokój</translation>
</message>
<message>
- <location line="+174"/>
+ <location line="+181"/>
<source>Accept</source>
<translation>Akceptuj</translation>
</message>
@@ -331,7 +331,7 @@
<context>
<name>StatusIndicator</name>
<message>
- <location filename="../../src/timeline/TimelineItem.cpp" line="+106"/>
+ <location filename="../../src/timeline/TimelineItem.cpp" line="+107"/>
<source>Encrypted</source>
<translation>Szyfrowana</translation>
</message>
@@ -354,13 +354,13 @@
<context>
<name>TextInputWidget</name>
<message>
- <location filename="../../src/TextInputWidget.cpp" line="+506"/>
+ <location filename="../../src/TextInputWidget.cpp" line="+507"/>
<source>Send a file</source>
<translation>Wyślij plik</translation>
</message>
<message>
<location line="+13"/>
- <location filename="../../src/TextInputWidget.h" line="+168"/>
+ <location filename="../../src/TextInputWidget.h" line="+164"/>
<source>Write a message...</source>
<translation>Napisz wiadomość…</translation>
</message>
@@ -415,6 +415,36 @@
<source>Encryption is enabled</source>
<translation>Szyfrowanie jest włączone</translation>
</message>
+ <message>
+ <location line="+65"/>
+ <source>-- Encrypted Event (No keys found for decryption) --</source>
+ <comment>Placeholder, when the message was not decrypted yet or can't be decrypted</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>-- Decryption Error (failed to communicate with DB) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed.</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>-- Decryption Error (%1) --</source>
+ <comment>Placeholder, when the message can't be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>-- Encrypted Event (Unknown event type) --</source>
+ <comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>TopRoomBar</name>
@@ -424,7 +454,12 @@
<translation>Ustawienia pokoju</translation>
</message>
<message>
- <location line="+28"/>
+ <location line="+5"/>
+ <source>Mentions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+34"/>
<source>Invite users</source>
<translation>Zaproś użytkowników</translation>
</message>
@@ -459,15 +494,15 @@
</context>
<context>
<name>TypingDisplay</name>
- <message>
- <location filename="../../src/TypingDisplay.cpp" line="+45"/>
- <source> is typing</source>
- <translation> pisze</translation>
- </message>
- <message>
- <location line="+2"/>
- <source> are typing</source>
- <translation> piszą</translation>
+ <message numerus="yes">
+ <location filename="../../src/TypingDisplay.cpp" line="+37"/>
+ <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>
+ <numerusform></numerusform>
+ </translation>
</message>
</context>
<context>
@@ -481,7 +516,7 @@
<context>
<name>UserSettingsPage</name>
<message>
- <location filename="../../src/UserSettingsPage.cpp" line="+156"/>
+ <location filename="../../src/UserSettingsPage.cpp" line="+166"/>
<source>Minimize to tray</source>
<translation>Zminimalizuj do paska zadań</translation>
</message>
@@ -521,12 +556,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+11"/>
+ <location line="+13"/>
<source>Font Family</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+17"/>
+ <location line="+1"/>
+ <source>Emoji Font Famly</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+33"/>
<source>Theme</source>
<translation>Motyw</translation>
</message>
@@ -566,7 +606,7 @@
<translation>OGÓLNE</translation>
</message>
<message>
- <location line="+150"/>
+ <location line="+156"/>
<source>Open Sessions File</source>
<translation type="unfinished"></translation>
</message>
@@ -636,6 +676,14 @@
</message>
</context>
<context>
+ <name>descriptiveTime</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+104"/>
+ <source>Yesterday</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>dialogs::CreateRoom</name>
<message>
<location filename="../../src/dialogs/CreateRoom.cpp" line="+36"/>
@@ -778,7 +826,7 @@ Rozmiar multimediów: %2
<context>
<name>dialogs::ReadReceipts</name>
<message>
- <location filename="../../src/dialogs/ReadReceipts.cpp" line="+119"/>
+ <location filename="../../src/dialogs/ReadReceipts.cpp" line="+121"/>
<source>Read receipts</source>
<translation>Potwierdzenia przeczytania</translation>
</message>
@@ -787,9 +835,17 @@ Rozmiar multimediów: %2
<source>Close</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>dialogs::ReceiptItem</name>
+ <message>
+ <location line="-44"/>
+ <source>Today %1</source>
+ <translation type="unfinished"></translation>
+ </message>
<message>
- <location line="+11"/>
- <source>ESC</source>
+ <location line="+2"/>
+ <source>Yesterday %1</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -894,12 +950,7 @@ Rozmiar multimediów: %2
</translation>
</message>
<message>
- <location line="+71"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+69"/>
+ <location line="+140"/>
<source>Failed to enable encryption: %1</source>
<translation>Nie udało się włączyć szyfrowania: %1</translation>
</message>
@@ -915,13 +966,13 @@ Rozmiar multimediów: %2
</message>
<message>
<location line="+12"/>
- <source>The selected media is not an image</source>
- <translation>Wybrany plik multimedialny nie jest obrazem</translation>
+ <source>The selected file is not an image</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<location line="+5"/>
- <source>Error while reading media: %1</source>
- <translation>Błąd odczytywania pliku: %1</translation>
+ <source>Error while reading file: %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<location line="+35"/>
@@ -931,6 +982,19 @@ Rozmiar multimediów: %2
</message>
</context>
<context>
+ <name>dialogs::UserMentions</name>
+ <message>
+ <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/>
+ <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>dialogs::UserProfile</name>
<message>
<location filename="../../src/dialogs/UserProfile.cpp" line="+63"/>
@@ -957,11 +1021,6 @@ Rozmiar multimediów: %2
<source>Devices</source>
<translation>Urządzenia</translation>
</message>
- <message>
- <location line="+39"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>emoji::Panel</name>
@@ -1006,4 +1065,94 @@ Rozmiar multimediów: %2
<translation>Flagi</translation>
</message>
</context>
+<context>
+ <name>message-description sent:</name>
+ <message>
+ <location filename="../../src/Utils.h" line="+104"/>
+ <source>%1 an audio clip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 an image</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a video clip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a sticker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a notification</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>%1 an encrypted message</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>message-description:</name>
+ <message>
+ <location line="-26"/>
+ <source>sent</source>
+ <comment>For when someone else is the sender</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>message-description: </name>
+ <message>
+ <location line="-2"/>
+ <source>sent</source>
+ <comment>For when you are the sender</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>utils</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+46"/>
+ <location filename="../../src/Utils.h" line="+55"/>
+ <source>You</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+219"/>
+ <source>sent a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an image.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an audio file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent a video</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/Utils.h" line="-23"/>
+ <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 4c157884..04285c72 100644
--- a/resources/langs/nheko_ru.ts
+++ b/resources/langs/nheko_ru.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioItem</name>
<message>
- <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+117"/>
+ <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+118"/>
<source>Save File</source>
<translation>Сохранить файл</translation>
</message>
@@ -12,7 +12,7 @@
<context>
<name>ChatPage</name>
<message>
- <location filename="../../src/ChatPage.cpp" line="+309"/>
+ <location filename="../../src/ChatPage.cpp" line="+330"/>
<source>Failed to upload image. Please try again.</source>
<translation>Не удалось загрузить изображение. Пожалуйста, попробуйте еще раз.</translation>
</message>
@@ -32,7 +32,7 @@
<translation>Не удалось загрузить видео. Пожалуйста, попробуйте еще раз.</translation>
</message>
<message>
- <location line="+376"/>
+ <location line="+380"/>
<source>Failed to restore OLM account. Please login again.</source>
<translation>Не удалось восстановить учетную запись OLM. Пожалуйста, войдите снова.</translation>
</message>
@@ -42,7 +42,7 @@
<translation>Не удалось восстановить сохраненные данные. Пожалуйста, войдите снова.</translation>
</message>
<message>
- <location line="+169"/>
+ <location line="+198"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
<translation>Не удалось настроить ключи шифрования. Ответ сервера:%1 %2. Пожалуйста, попробуйте позже.</translation>
</message>
@@ -118,7 +118,7 @@
<context>
<name>FileItem</name>
<message>
- <location filename="../../src/timeline/widgets/FileItem.cpp" line="+106"/>
+ <location filename="../../src/timeline/widgets/FileItem.cpp" line="+107"/>
<source>Save File</source>
<translation>Сохранить файл</translation>
</message>
@@ -126,7 +126,7 @@
<context>
<name>ImageItem</name>
<message>
- <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+238"/>
+ <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+241"/>
<source>Save image</source>
<translation>Сохранить изображение</translation>
</message>
@@ -205,9 +205,9 @@
<translation>Участники комнаты</translation>
</message>
<message>
- <location line="+33"/>
- <source>ESC</source>
- <translation></translation>
+ <location line="+4"/>
+ <source>OK</source>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -277,7 +277,7 @@
<context>
<name>RoomInfo</name>
<message>
- <location filename="../../src/Cache.cpp" line="+2204"/>
+ <location filename="../../src/Cache.cpp" line="+2205"/>
<source>no version stored</source>
<translation type="unfinished"></translation>
</message>
@@ -285,12 +285,12 @@
<context>
<name>RoomInfoListItem</name>
<message>
- <location filename="../../src/RoomInfoListItem.cpp" line="+92"/>
+ <location filename="../../src/RoomInfoListItem.cpp" line="+93"/>
<source>Leave room</source>
<translation>Покинуть комнату</translation>
</message>
<message>
- <location line="+174"/>
+ <location line="+181"/>
<source>Accept</source>
<translation>Принять</translation>
</message>
@@ -331,7 +331,7 @@
<context>
<name>StatusIndicator</name>
<message>
- <location filename="../../src/timeline/TimelineItem.cpp" line="+106"/>
+ <location filename="../../src/timeline/TimelineItem.cpp" line="+107"/>
<source>Encrypted</source>
<translation>Зашифровано</translation>
</message>
@@ -354,13 +354,13 @@
<context>
<name>TextInputWidget</name>
<message>
- <location filename="../../src/TextInputWidget.cpp" line="+506"/>
+ <location filename="../../src/TextInputWidget.cpp" line="+507"/>
<source>Send a file</source>
<translation>Отправить файл</translation>
</message>
<message>
<location line="+13"/>
- <location filename="../../src/TextInputWidget.h" line="+168"/>
+ <location filename="../../src/TextInputWidget.h" line="+164"/>
<source>Write a message...</source>
<translation>Написать сообщение...</translation>
</message>
@@ -415,6 +415,36 @@
<source>Encryption is enabled</source>
<translation>Шифрование включено</translation>
</message>
+ <message>
+ <location line="+65"/>
+ <source>-- Encrypted Event (No keys found for decryption) --</source>
+ <comment>Placeholder, when the message was not decrypted yet or can't be decrypted</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>-- Decryption Error (failed to communicate with DB) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed.</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>-- Decryption Error (%1) --</source>
+ <comment>Placeholder, when the message can't be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>-- Encrypted Event (Unknown event type) --</source>
+ <comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>TopRoomBar</name>
@@ -424,7 +454,12 @@
<translation>Настройки комнаты</translation>
</message>
<message>
- <location line="+28"/>
+ <location line="+5"/>
+ <source>Mentions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+34"/>
<source>Invite users</source>
<translation>Пригласить пользователей</translation>
</message>
@@ -459,15 +494,15 @@
</context>
<context>
<name>TypingDisplay</name>
- <message>
- <location filename="../../src/TypingDisplay.cpp" line="+45"/>
- <source> is typing</source>
- <translation> печатает</translation>
- </message>
- <message>
- <location line="+2"/>
- <source> are typing</source>
- <translation> печатают</translation>
+ <message numerus="yes">
+ <location filename="../../src/TypingDisplay.cpp" line="+37"/>
+ <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>
+ <numerusform></numerusform>
+ </translation>
</message>
</context>
<context>
@@ -481,7 +516,7 @@
<context>
<name>UserSettingsPage</name>
<message>
- <location filename="../../src/UserSettingsPage.cpp" line="+156"/>
+ <location filename="../../src/UserSettingsPage.cpp" line="+166"/>
<source>Minimize to tray</source>
<translation>Сворачивать в системную панель</translation>
</message>
@@ -521,12 +556,17 @@
<translation>Размер шрифта</translation>
</message>
<message>
- <location line="+11"/>
+ <location line="+13"/>
<source>Font Family</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+17"/>
+ <location line="+1"/>
+ <source>Emoji Font Famly</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+33"/>
<source>Theme</source>
<translation>Тема</translation>
</message>
@@ -566,7 +606,7 @@
<translation>ГЛАВНОЕ</translation>
</message>
<message>
- <location line="+150"/>
+ <location line="+156"/>
<source>Open Sessions File</source>
<translation>Открыть файл сеансов</translation>
</message>
@@ -637,6 +677,14 @@
</message>
</context>
<context>
+ <name>descriptiveTime</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+104"/>
+ <source>Yesterday</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>dialogs::CreateRoom</name>
<message>
<location filename="../../src/dialogs/CreateRoom.cpp" line="+36"/>
@@ -779,7 +827,7 @@ Media size: %2
<context>
<name>dialogs::ReadReceipts</name>
<message>
- <location filename="../../src/dialogs/ReadReceipts.cpp" line="+119"/>
+ <location filename="../../src/dialogs/ReadReceipts.cpp" line="+121"/>
<source>Read receipts</source>
<translation>Подтверждать прочтение</translation>
</message>
@@ -788,10 +836,18 @@ Media size: %2
<source>Close</source>
<translation>Закрыть</translation>
</message>
+</context>
+<context>
+ <name>dialogs::ReceiptItem</name>
<message>
- <location line="+11"/>
- <source>ESC</source>
- <translation></translation>
+ <location line="-44"/>
+ <source>Today %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+2"/>
+ <source>Yesterday %1</source>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -893,12 +949,7 @@ Media size: %2
</translation>
</message>
<message>
- <location line="+71"/>
- <source>ESC</source>
- <translation></translation>
- </message>
- <message>
- <location line="+69"/>
+ <location line="+140"/>
<source>Failed to enable encryption: %1</source>
<translation>Не удалось включить шифрование: %1</translation>
</message>
@@ -914,13 +965,13 @@ Media size: %2
</message>
<message>
<location line="+12"/>
- <source>The selected media is not an image</source>
- <translation>Выбранное медия не является изображением</translation>
+ <source>The selected file is not an image</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<location line="+5"/>
- <source>Error while reading media: %1</source>
- <translation>Ошибка при чтении медия: %1</translation>
+ <source>Error while reading file: %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<location line="+35"/>
@@ -930,6 +981,19 @@ Media size: %2
</message>
</context>
<context>
+ <name>dialogs::UserMentions</name>
+ <message>
+ <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/>
+ <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>dialogs::UserProfile</name>
<message>
<location filename="../../src/dialogs/UserProfile.cpp" line="+63"/>
@@ -956,11 +1020,6 @@ Media size: %2
<source>Devices</source>
<translation>Устройства</translation>
</message>
- <message>
- <location line="+39"/>
- <source>ESC</source>
- <translation></translation>
- </message>
</context>
<context>
<name>emoji::Panel</name>
@@ -1005,4 +1064,94 @@ Media size: %2
<translation type="unfinished"></translation>
</message>
</context>
+<context>
+ <name>message-description sent:</name>
+ <message>
+ <location filename="../../src/Utils.h" line="+104"/>
+ <source>%1 an audio clip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 an image</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a video clip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a sticker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a notification</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>%1 an encrypted message</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>message-description:</name>
+ <message>
+ <location line="-26"/>
+ <source>sent</source>
+ <comment>For when someone else is the sender</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>message-description: </name>
+ <message>
+ <location line="-2"/>
+ <source>sent</source>
+ <comment>For when you are the sender</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>utils</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+46"/>
+ <location filename="../../src/Utils.h" line="+55"/>
+ <source>You</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+219"/>
+ <source>sent a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an image.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an audio file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent a video</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/Utils.h" line="-23"/>
+ <source>Unknown Message Type</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/resources/langs/nheko_zh_CN.ts b/resources/langs/nheko_zh_CN.ts
index ca7c6e22..1e539e64 100644
--- a/resources/langs/nheko_zh_CN.ts
+++ b/resources/langs/nheko_zh_CN.ts
@@ -4,7 +4,7 @@
<context>
<name>AudioItem</name>
<message>
- <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+117"/>
+ <location filename="../../src/timeline/widgets/AudioItem.cpp" line="+118"/>
<source>Save File</source>
<translation>保存文件</translation>
</message>
@@ -12,7 +12,7 @@
<context>
<name>ChatPage</name>
<message>
- <location filename="../../src/ChatPage.cpp" line="+309"/>
+ <location filename="../../src/ChatPage.cpp" line="+330"/>
<source>Failed to upload image. Please try again.</source>
<translation>上传图像失败。请重试。</translation>
</message>
@@ -32,7 +32,7 @@
<translation>上传视频失败。请重试。</translation>
</message>
<message>
- <location line="+376"/>
+ <location line="+380"/>
<source>Failed to restore OLM account. Please login again.</source>
<translation>恢复 OLM 账户失败。请重新登录。</translation>
</message>
@@ -42,7 +42,7 @@
<translation>恢复保存的数据失败。请重新登录。</translation>
</message>
<message>
- <location line="+169"/>
+ <location line="+198"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
<translation type="unfinished"></translation>
</message>
@@ -118,7 +118,7 @@
<context>
<name>FileItem</name>
<message>
- <location filename="../../src/timeline/widgets/FileItem.cpp" line="+106"/>
+ <location filename="../../src/timeline/widgets/FileItem.cpp" line="+107"/>
<source>Save File</source>
<translation>保存文件</translation>
</message>
@@ -126,7 +126,7 @@
<context>
<name>ImageItem</name>
<message>
- <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+238"/>
+ <location filename="../../src/timeline/widgets/ImageItem.cpp" line="+241"/>
<source>Save image</source>
<translation>保存图像</translation>
</message>
@@ -205,8 +205,8 @@
<translation>聊天室成员</translation>
</message>
<message>
- <location line="+33"/>
- <source>ESC</source>
+ <location line="+4"/>
+ <source>OK</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -277,7 +277,7 @@
<context>
<name>RoomInfo</name>
<message>
- <location filename="../../src/Cache.cpp" line="+2204"/>
+ <location filename="../../src/Cache.cpp" line="+2205"/>
<source>no version stored</source>
<translation type="unfinished"></translation>
</message>
@@ -285,12 +285,12 @@
<context>
<name>RoomInfoListItem</name>
<message>
- <location filename="../../src/RoomInfoListItem.cpp" line="+92"/>
+ <location filename="../../src/RoomInfoListItem.cpp" line="+93"/>
<source>Leave room</source>
<translation>离开聊天室</translation>
</message>
<message>
- <location line="+174"/>
+ <location line="+181"/>
<source>Accept</source>
<translation>接受</translation>
</message>
@@ -331,7 +331,7 @@
<context>
<name>StatusIndicator</name>
<message>
- <location filename="../../src/timeline/TimelineItem.cpp" line="+106"/>
+ <location filename="../../src/timeline/TimelineItem.cpp" line="+107"/>
<source>Encrypted</source>
<translation>加密的</translation>
</message>
@@ -354,13 +354,13 @@
<context>
<name>TextInputWidget</name>
<message>
- <location filename="../../src/TextInputWidget.cpp" line="+506"/>
+ <location filename="../../src/TextInputWidget.cpp" line="+507"/>
<source>Send a file</source>
<translation>发送一个文件</translation>
</message>
<message>
<location line="+13"/>
- <location filename="../../src/TextInputWidget.h" line="+168"/>
+ <location filename="../../src/TextInputWidget.h" line="+164"/>
<source>Write a message...</source>
<translation>写一条消息...</translation>
</message>
@@ -415,6 +415,36 @@
<source>Encryption is enabled</source>
<translation>加密已启用</translation>
</message>
+ <message>
+ <location line="+65"/>
+ <source>-- Encrypted Event (No keys found for decryption) --</source>
+ <comment>Placeholder, when the message was not decrypted yet or can't be decrypted</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+15"/>
+ <source>-- Decryption Error (failed to communicate with DB) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+19"/>
+ <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
+ <comment>Placeholder, when the message can't be decrypted, because the DB access failed.</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+12"/>
+ <source>-- Decryption Error (%1) --</source>
+ <comment>Placeholder, when the message can't be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+27"/>
+ <source>-- Encrypted Event (Unknown event type) --</source>
+ <comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>TopRoomBar</name>
@@ -424,7 +454,12 @@
<translation>聊天室选项</translation>
</message>
<message>
- <location line="+28"/>
+ <location line="+5"/>
+ <source>Mentions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+34"/>
<source>Invite users</source>
<translation>邀请用户</translation>
</message>
@@ -459,15 +494,13 @@
</context>
<context>
<name>TypingDisplay</name>
- <message>
- <location filename="../../src/TypingDisplay.cpp" line="+45"/>
- <source> is typing</source>
- <translation> 正在打字</translation>
- </message>
- <message>
- <location line="+2"/>
- <source> are typing</source>
- <translation> 正在打字</translation>
+ <message numerus="yes">
+ <location filename="../../src/TypingDisplay.cpp" line="+37"/>
+ <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>
+ </translation>
</message>
</context>
<context>
@@ -481,7 +514,7 @@
<context>
<name>UserSettingsPage</name>
<message>
- <location filename="../../src/UserSettingsPage.cpp" line="+156"/>
+ <location filename="../../src/UserSettingsPage.cpp" line="+166"/>
<source>Minimize to tray</source>
<translation>最小化至托盘</translation>
</message>
@@ -521,12 +554,17 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+11"/>
+ <location line="+13"/>
<source>Font Family</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location line="+17"/>
+ <location line="+1"/>
+ <source>Emoji Font Famly</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+33"/>
<source>Theme</source>
<translation>主题</translation>
</message>
@@ -566,7 +604,7 @@
<translation>通用</translation>
</message>
<message>
- <location line="+150"/>
+ <location line="+156"/>
<source>Open Sessions File</source>
<translation>打开会话文件</translation>
</message>
@@ -636,6 +674,14 @@
</message>
</context>
<context>
+ <name>descriptiveTime</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+104"/>
+ <source>Yesterday</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>dialogs::CreateRoom</name>
<message>
<location filename="../../src/dialogs/CreateRoom.cpp" line="+36"/>
@@ -778,7 +824,7 @@ Media size: %2
<context>
<name>dialogs::ReadReceipts</name>
<message>
- <location filename="../../src/dialogs/ReadReceipts.cpp" line="+119"/>
+ <location filename="../../src/dialogs/ReadReceipts.cpp" line="+121"/>
<source>Read receipts</source>
<translation>阅读回执</translation>
</message>
@@ -787,9 +833,17 @@ Media size: %2
<source>Close</source>
<translation type="unfinished"></translation>
</message>
+</context>
+<context>
+ <name>dialogs::ReceiptItem</name>
+ <message>
+ <location line="-44"/>
+ <source>Today %1</source>
+ <translation type="unfinished"></translation>
+ </message>
<message>
- <location line="+11"/>
- <source>ESC</source>
+ <location line="+2"/>
+ <source>Yesterday %1</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -892,12 +946,7 @@ Media size: %2
</translation>
</message>
<message>
- <location line="+71"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location line="+69"/>
+ <location line="+140"/>
<source>Failed to enable encryption: %1</source>
<translation>启用加密失败:%1</translation>
</message>
@@ -913,13 +962,13 @@ Media size: %2
</message>
<message>
<location line="+12"/>
- <source>The selected media is not an image</source>
- <translation>选择的媒体不是一个图像</translation>
+ <source>The selected file is not an image</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<location line="+5"/>
- <source>Error while reading media: %1</source>
- <translation>读取媒体时失败:%1</translation>
+ <source>Error while reading file: %1</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<location line="+35"/>
@@ -929,6 +978,19 @@ Media size: %2
</message>
</context>
<context>
+ <name>dialogs::UserMentions</name>
+ <message>
+ <location filename="../../src/dialogs/UserMentions.cpp" line="+53"/>
+ <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>dialogs::UserProfile</name>
<message>
<location filename="../../src/dialogs/UserProfile.cpp" line="+63"/>
@@ -955,11 +1017,6 @@ Media size: %2
<source>Devices</source>
<translation>设备</translation>
</message>
- <message>
- <location line="+39"/>
- <source>ESC</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>emoji::Panel</name>
@@ -1012,4 +1069,94 @@ Media size: %2
<translation>Flags</translation>
</message>
</context>
+<context>
+ <name>message-description sent:</name>
+ <message>
+ <location filename="../../src/Utils.h" line="+104"/>
+ <source>%1 an audio clip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 an image</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a video clip</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a sticker</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>%1 a notification</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+7"/>
+ <source>%1 an encrypted message</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>message-description:</name>
+ <message>
+ <location line="-26"/>
+ <source>sent</source>
+ <comment>For when someone else is the sender</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>message-description: </name>
+ <message>
+ <location line="-2"/>
+ <source>sent</source>
+ <comment>For when you are the sender</comment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>utils</name>
+ <message>
+ <location filename="../../src/Utils.cpp" line="+46"/>
+ <location filename="../../src/Utils.h" line="+55"/>
+ <source>You</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+219"/>
+ <source>sent a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an image.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent an audio file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location line="+3"/>
+ <source>sent a video</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/Utils.h" line="-23"/>
+ <source>Unknown Message Type</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/resources/styles/nheko-dark.qss b/resources/styles/nheko-dark.qss
index 1e1333b2..1271e39f 100644
--- a/resources/styles/nheko-dark.qss
+++ b/resources/styles/nheko-dark.qss
@@ -24,6 +24,17 @@ TimelineView > * {
border: none;
}
+UserMentionsWidget,
+UserMentionsWidget > * {
+ background-color: #202228;
+ border: none;
+}
+
+UserMentionsWidget > TimelineItem {
+ qproperty-backgroundColor: #202228;
+ qproperty-hoverColor: rgba(45, 49, 57, 120);
+}
+
#scroll_widget {
background-color: #202228;
}
diff --git a/resources/styles/nheko.qss b/resources/styles/nheko.qss
index a70441be..3c7f3b71 100644
--- a/resources/styles/nheko.qss
+++ b/resources/styles/nheko.qss
@@ -24,6 +24,17 @@ TimelineView > * {
border: none;
}
+UserMentionsWidget,
+UserMentionsWidget > * {
+ background-color: white;
+ border: none;
+}
+
+UserMentionsWidget > TimelineItem {
+ qproperty-backgroundColor: white;
+ qproperty-hoverColor: rgba(192, 193, 195, 120);
+}
+
#scroll_widget {
background-color: white;
}
diff --git a/resources/styles/system.qss b/resources/styles/system.qss
index dfb8ce65..0a8c4b21 100644
--- a/resources/styles/system.qss
+++ b/resources/styles/system.qss
@@ -12,6 +12,16 @@ TimelineView > * {
border: none;
}
+UserMentionsWidget,
+UserMentionsWidget > * {
+ border: none;
+}
+
+UserMentionsWidget > TimelineItem {
+ qproperty-backgroundColor: palette(window);
+ qproperty-hoverColor: palette(base);
+}
+
TextInputWidget {
border: none;
border-top: 1px solid palette(mid);
|