Merge remote-tracking branch 'origin/master' into presence

pull/216/head
Joseph Donofry 5 years ago
commit 7afb164244
No known key found for this signature in database
GPG Key ID: E8A1D78EF044B0CB
  1. 5
      CMakeLists.txt
  2. BIN
      resources/icons/ui/search.png
  3. BIN
      resources/icons/ui/search@2x.png
  4. 280
      resources/langs/nheko_de.ts
  5. 278
      resources/langs/nheko_el.ts
  6. 280
      resources/langs/nheko_en.ts
  7. 278
      resources/langs/nheko_fi.ts
  8. 278
      resources/langs/nheko_fr.ts
  9. 354
      resources/langs/nheko_it.ts
  10. 278
      resources/langs/nheko_ja.ts
  11. 278
      resources/langs/nheko_nl.ts
  12. 278
      resources/langs/nheko_pl.ts
  13. 278
      resources/langs/nheko_ru.ts
  14. 278
      resources/langs/nheko_zh_CN.ts
  15. 3
      resources/qml/ImageButton.qml
  16. 33
      resources/qml/Reactions.qml
  17. 18
      resources/qml/TimelineRow.qml
  18. 21
      resources/qml/TimelineView.qml
  19. 1
      resources/qml/delegates/Pill.qml
  20. 18
      resources/qml/emoji/EmojiButton.qml
  21. 290
      resources/qml/emoji/EmojiPicker.qml
  22. 4
      resources/res.qrc
  23. 17
      scripts/emoji_codegen.py
  24. 16
      scripts/generate_icns.sh
  25. 17
      src/ChatPage.cpp
  26. 2
      src/ChatPage.h
  27. 22
      src/UserSettingsPage.cpp
  28. 11
      src/UserSettingsPage.h
  29. 110
      src/emoji/EmojiModel.cpp
  30. 64
      src/emoji/EmojiModel.h
  31. 9656
      src/emoji/Provider.cpp
  32. 34
      src/emoji/Provider.h
  33. 7701
      src/emoji/Provider_new.cpp
  34. 8
      src/timeline/ReactionsModel.cpp
  35. 2
      src/timeline/ReactionsModel.h
  36. 61
      src/timeline/TimelineModel.cpp
  37. 1
      src/timeline/TimelineModel.h
  38. 44
      src/timeline/TimelineViewManager.cpp
  39. 12
      src/timeline/TimelineViewManager.h

@ -243,10 +243,13 @@ set(SRC_FILES
# Emoji # Emoji
src/emoji/Category.cpp src/emoji/Category.cpp
src/emoji/EmojiModel.cpp
src/emoji/ItemDelegate.cpp src/emoji/ItemDelegate.cpp
src/emoji/Panel.cpp src/emoji/Panel.cpp
src/emoji/PickButton.cpp src/emoji/PickButton.cpp
src/emoji/Provider.cpp src/emoji/Provider.cpp
src/emoji/Provider_new.cpp
# Timeline # Timeline
src/timeline/ReactionsModel.cpp src/timeline/ReactionsModel.cpp
@ -445,9 +448,11 @@ qt5_wrap_cpp(MOC_HEADERS
# Emoji # Emoji
src/emoji/Category.h src/emoji/Category.h
src/emoji/EmojiModel.h
src/emoji/ItemDelegate.h src/emoji/ItemDelegate.h
src/emoji/Panel.h src/emoji/Panel.h
src/emoji/PickButton.h src/emoji/PickButton.h
src/emoji/Provider.h
# Timeline # Timeline
src/timeline/ReactionsModel.h src/timeline/ReactionsModel.h

Binary file not shown.

After

Width:  |  Height:  |  Size: 573 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -4,7 +4,7 @@
<context> <context>
<name>Cache</name> <name>Cache</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+1341"/> <location filename="../../src/Cache.cpp" line="+1342"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation>Du bist dem Raum beigetreten.</translation> <translation>Du bist dem Raum beigetreten.</translation>
</message> </message>
@ -12,23 +12,23 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+226"/> <location filename="../../src/ChatPage.cpp" line="+227"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation>Nutzer konnte nicht eingeladen werden: %1</translation> <translation>Nutzer konnte nicht eingeladen werden: %1</translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+892"/> <location line="+923"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation>Eingeladener Benutzer: %1</translation> <translation>Eingeladener Benutzer: %1</translation>
</message> </message>
<message> <message>
<location line="-463"/> <location line="-471"/>
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source> <source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
<translation>Migrieren des Caches auf die aktuelle Version fehlgeschlagen. Das kann verschiedene Gründe als Ursache haben. Bitte lege einen Bugreport an und verwende in der Zwischenzeit eine ältere Version. Alternativ kannst du das Cache manuell entfernen.</translation> <translation>Migrieren des Caches auf die aktuelle Version fehlgeschlagen. Das kann verschiedene Gründe als Ursache haben. Bitte lege einen Bugreport an und verwende in der Zwischenzeit eine ältere Version. Alternativ kannst du das Cache manuell entfernen.</translation>
</message> </message>
<message> <message>
<location line="+428"/> <location line="+436"/>
<source>Room %1 created.</source> <source>Room %1 created.</source>
<translation>Raum %1 erzeugt.</translation> <translation>Raum %1 erzeugt.</translation>
</message> </message>
@ -68,7 +68,7 @@
<translation>Verbannung von %1 wurde aufgehoben.</translation> <translation>Verbannung von %1 wurde aufgehoben.</translation>
</message> </message>
<message> <message>
<location line="-817"/> <location line="-825"/>
<source>Failed to upload media. Please try again.</source> <source>Failed to upload media. Please try again.</source>
<translation>Medienupload fehlgeschlagen. Bitte versuche es erneut.</translation> <translation>Medienupload fehlgeschlagen. Bitte versuche es erneut.</translation>
</message> </message>
@ -98,7 +98,7 @@
<translation>Gespeicherte Nachrichten konnten nicht wiederhergestellt werden. Bitte melde Dich erneut an.</translation> <translation>Gespeicherte Nachrichten konnten nicht wiederhergestellt werden. Bitte melde Dich erneut an.</translation>
</message> </message>
<message> <message>
<location line="+148"/> <location line="+156"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source> <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
<translation>Fehler beim Setup der Verschlüsselungsschlüssel. Servermeldung: %1 %2. Bitte versuche es später erneut.</translation> <translation>Fehler beim Setup der Verschlüsselungsschlüssel. Servermeldung: %1 %2. Bitte versuche es später erneut.</translation>
</message> </message>
@ -151,6 +151,12 @@
<source>Low priority rooms</source> <source>Low priority rooms</source>
<translation>Räume niedriger Priorität</translation> <translation>Räume niedriger Priorität</translation>
</message> </message>
<message>
<location line="+2"/>
<source>Server Notices</source>
<comment>Tag translation for m.server_notice</comment>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<location line="+2"/> <location line="+2"/>
@ -166,7 +172,7 @@
<context> <context>
<name>EditModal</name> <name>EditModal</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+60"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+72"/>
<source>Apply</source> <source>Apply</source>
<translation>Anwenden</translation> <translation>Anwenden</translation>
</message> </message>
@ -186,6 +192,55 @@
<translation>Thema</translation> <translation>Thema</translation>
</message> </message>
</context> </context>
<context>
<name>EmojiPicker</name>
<message>
<location filename="../qml/emoji/EmojiPicker.qml" line="+117"/>
<location line="+139"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-42"/>
<source>People</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Nature</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Food</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Activity</source>
<translation type="unfinished">Aktivitäten</translation>
</message>
<message>
<location line="+2"/>
<source>Travel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Objects</source>
<translation type="unfinished">Objekte</translation>
</message>
<message>
<location line="+2"/>
<source>Symbols</source>
<translation type="unfinished">Symbole</translation>
</message>
<message>
<location line="+2"/>
<source>Flags</source>
<translation type="unfinished">Flaggen</translation>
</message>
</context>
<context> <context>
<name>EncryptionIndicator</name> <name>EncryptionIndicator</name>
<message> <message>
@ -202,7 +257,7 @@
<context> <context>
<name>InviteeItem</name> <name>InviteeItem</name>
<message> <message>
<location filename="../../src/InviteeItem.cpp" line="+17"/> <location filename="../../src/InviteeItem.cpp" line="+18"/>
<source>Remove</source> <source>Remove</source>
<translation>Löschen</translation> <translation>Löschen</translation>
</message> </message>
@ -210,7 +265,7 @@
<context> <context>
<name>LoginPage</name> <name>LoginPage</name>
<message> <message>
<location filename="../../src/LoginPage.cpp" line="+89"/> <location filename="../../src/LoginPage.cpp" line="+90"/>
<source>Matrix ID</source> <source>Matrix ID</source>
<translation>Matrix-ID</translation> <translation>Matrix-ID</translation>
</message> </message>
@ -242,8 +297,8 @@ Wenn Nheko deinen Server nicht automatisch erkennen kann, wird es dich nach dem
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source> <source>A name for this device, which will be shown to others, when verifying your devices. If none is provided a default is used.</source>
<translation>Ein Name für dieses Gerät. Dieser wird anderen angezeigt, wenn sie dieses Gerät verifizieren. Wenn kein Name angegeben wurde, wird automatisch ein zufälliger Name erzeugt, der keine Rückschlüsse auf deine Identität zulassen sollte.</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+6"/> <location line="+6"/>
@ -254,7 +309,7 @@ Beispiel: https://mein.server:8787</translation>
</message> </message>
<message> <message>
<location line="+16"/> <location line="+16"/>
<location line="+185"/> <location line="+191"/>
<source>LOGIN</source> <source>LOGIN</source>
<translation>ANMELDEN</translation> <translation>ANMELDEN</translation>
</message> </message>
@ -369,7 +424,7 @@ Beispiel: https://mein.server:8787</translation>
<context> <context>
<name>RegisterPage</name> <name>RegisterPage</name>
<message> <message>
<location filename="../../src/RegisterPage.cpp" line="+87"/> <location filename="../../src/RegisterPage.cpp" line="+88"/>
<source>Username</source> <source>Username</source>
<translation>Benutzername</translation> <translation>Benutzername</translation>
</message> </message>
@ -437,7 +492,7 @@ Beispiel: https://mein.server:8787</translation>
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+939"/> <location filename="../../src/Cache.cpp" line="+940"/>
<source>no version stored</source> <source>no version stored</source>
<translation>keine Version gespeichert</translation> <translation>keine Version gespeichert</translation>
</message> </message>
@ -455,7 +510,7 @@ Beispiel: https://mein.server:8787</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+18"/>
<source>Favourite</source> <source>Favourite</source>
<comment>Standard matrix tag for favourites</comment> <comment>Standard matrix tag for favourites</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -473,7 +528,7 @@ Beispiel: https://mein.server:8787</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+13"/> <location line="+12"/>
<source>Adds or removes the specified tag.</source> <source>Adds or removes the specified tag.</source>
<comment>WhatsThis hint for tag menu actions</comment> <comment>WhatsThis hint for tag menu actions</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -485,14 +540,15 @@ Beispiel: https://mein.server:8787</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+4"/>
<source>New Tag</source> <source>New Tag</source>
<comment>Tag name prompt title</comment> <comment>Tag name prompt title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+0"/> <location line="+1"/>
<source>Tag:</source> <source>Tag:</source>
<comment>Tag name prompt</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -509,7 +565,7 @@ Beispiel: https://mein.server:8787</translation>
<context> <context>
<name>SideBarActions</name> <name>SideBarActions</name>
<message> <message>
<location filename="../../src/SideBarActions.cpp" line="+38"/> <location filename="../../src/SideBarActions.cpp" line="+40"/>
<source>User settings</source> <source>User settings</source>
<translation>Benutzereinstellungen</translation> <translation>Benutzereinstellungen</translation>
</message> </message>
@ -560,7 +616,7 @@ Beispiel: https://mein.server:8787</translation>
<context> <context>
<name>TextInputWidget</name> <name>TextInputWidget</name>
<message> <message>
<location filename="../../src/TextInputWidget.cpp" line="+459"/> <location filename="../../src/TextInputWidget.cpp" line="+460"/>
<source>Send a file</source> <source>Send a file</source>
<translation>Versende Datei</translation> <translation>Versende Datei</translation>
</message> </message>
@ -581,7 +637,7 @@ Beispiel: https://mein.server:8787</translation>
<translation>Emoji</translation> <translation>Emoji</translation>
</message> </message>
<message> <message>
<location line="+84"/> <location line="+86"/>
<source>Select a file</source> <source>Select a file</source>
<translation>Datei auswählen</translation> <translation>Datei auswählen</translation>
</message> </message>
@ -599,7 +655,7 @@ Beispiel: https://mein.server:8787</translation>
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+891"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation>-- Entschlüsselungsfehler (Fehler bei Kommunikation mit Datenbank) --</translation> <translation>-- Entschlüsselungsfehler (Fehler bei Kommunikation mit Datenbank) --</translation>
@ -622,7 +678,7 @@ Beispiel: https://mein.server:8787</translation>
<translation>Nachricht zurückziehen fehlgeschlagen: %1</translation> <translation>Nachricht zurückziehen fehlgeschlagen: %1</translation>
</message> </message>
<message> <message>
<location line="+455"/> <location line="+488"/>
<source>Save image</source> <source>Save image</source>
<translation>Bild speichern</translation> <translation>Bild speichern</translation>
</message> </message>
@ -642,7 +698,7 @@ Beispiel: https://mein.server:8787</translation>
<translation>Datei speichern</translation> <translation>Datei speichern</translation>
</message> </message>
<message> <message>
<location line="-610"/> <location line="-643"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation>-- Verschlüsseltes Event (keine Schlüssel zur Entschlüsselung gefunden) --</translation> <translation>-- Verschlüsseltes Event (keine Schlüssel zur Entschlüsselung gefunden) --</translation>
@ -654,7 +710,7 @@ Beispiel: https://mein.server:8787</translation>
<translation>-- Verschlüsseltes Event (Unbekannter Eventtyp) --</translation> <translation>-- Verschlüsseltes Event (Unbekannter Eventtyp) --</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+660"/> <location line="+693"/>
<source>%1 and %2 are typing.</source> <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> <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> <translation>
@ -727,6 +783,11 @@ Beispiel: https://mein.server:8787</translation>
<source>%1 changed their avatar.</source> <source>%1 changed their avatar.</source>
<translation>%1 hat den Avatar geändert.</translation> <translation>%1 hat den Avatar geändert.</translation>
</message> </message>
<message>
<location line="+2"/>
<source>%1 changed some profile info.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>%1 joined.</source> <source>%1 joined.</source>
@ -768,12 +829,12 @@ Beispiel: https://mein.server:8787</translation>
<translation>%1 hat das Anklopfen zurückgezogen.</translation> <translation>%1 hat das Anklopfen zurückgezogen.</translation>
</message> </message>
<message> <message>
<location line="-1238"/> <location line="-1281"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation>Du bist dem Raum beigetreten.</translation> <translation>Du bist dem Raum beigetreten.</translation>
</message> </message>
<message> <message>
<location line="+1240"/> <location line="+1283"/>
<source>Rejected the knock from %1.</source> <source>Rejected the knock from %1.</source>
<translation>Hat das Anklopfen von %1 abgewiesen.</translation> <translation>Hat das Anklopfen von %1 abgewiesen.</translation>
</message> </message>
@ -797,7 +858,12 @@ Beispiel: https://mein.server:8787</translation>
<context> <context>
<name>TimelineRow</name> <name>TimelineRow</name>
<message> <message>
<location filename="../qml/TimelineRow.qml" line="+92"/> <location filename="../qml/TimelineRow.qml" line="+91"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+17"/>
<source>Reply</source> <source>Reply</source>
<translation>Antworten</translation> <translation>Antworten</translation>
</message> </message>
@ -811,6 +877,11 @@ Beispiel: https://mein.server:8787</translation>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+54"/> <location filename="../qml/TimelineView.qml" line="+54"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Reply</source> <source>Reply</source>
<translation>Antworten</translation> <translation>Antworten</translation>
</message> </message>
@ -850,7 +921,7 @@ Beispiel: https://mein.server:8787</translation>
<translation>Kein Raum geöffnet</translation> <translation>Kein Raum geöffnet</translation>
</message> </message>
<message> <message>
<location line="+257"/> <location line="+259"/>
<source>Close</source> <source>Close</source>
<translation>Schließen</translation> <translation>Schließen</translation>
</message> </message>
@ -904,7 +975,7 @@ Beispiel: https://mein.server:8787</translation>
<context> <context>
<name>UserInfoWidget</name> <name>UserInfoWidget</name>
<message> <message>
<location filename="../../src/UserInfoWidget.cpp" line="+88"/> <location filename="../../src/UserInfoWidget.cpp" line="+91"/>
<source>Logout</source> <source>Logout</source>
<translation>Abmelden</translation> <translation>Abmelden</translation>
</message> </message>
@ -912,70 +983,173 @@ Beispiel: https://mein.server:8787</translation>
<context> <context>
<name>UserSettingsPage</name> <name>UserSettingsPage</name>
<message> <message>
<location filename="../../src/UserSettingsPage.cpp" line="+339"/> <location filename="../../src/UserSettingsPage.cpp" line="+520"/>
<source>Minimize to tray</source> <source>Minimize to tray</source>
<translation>Ins Benachrichtigungsfeld minimieren</translation> <translation>Ins Benachrichtigungsfeld minimieren</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+3"/>
<source>Start in tray</source> <source>Start in tray</source>
<translation>Im Benachrichtigungsfeld starten</translation> <translation>Im Benachrichtigungsfeld starten</translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+7"/>
<source>Group&apos;s sidebar</source> <source>Group&apos;s sidebar</source>
<translation>Gruppen-Seitenleiste</translation> <translation>Gruppen-Seitenleiste</translation>
</message> </message>
<message> <message>
<location line="-1"/> <location line="-3"/>
<source>Circular Avatars</source> <source>Circular Avatars</source>
<translation>Runde Profilbilder</translation> <translation>Runde Profilbilder</translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="-5"/>
<source>Keep the application running in the background after closing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Start the application in the background without showing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Change the appearance of user avatars in chats.
OFF - square, ON - Circle.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Show a column containing groups and tags next to the room list.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Decrypt messages in sidebar</source> <source>Decrypt messages in sidebar</source>
<translation>Entschlüssele Nachrichten in der Raumliste</translation> <translation>Entschlüssele Nachrichten in der Raumliste</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Decrypt the messages shown in the sidebar.
Only affects messages in encrypted chats.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show buttons in timeline</source> <source>Show buttons in timeline</source>
<translation>Zeige Buttons in der Historie</translation> <translation>Zeige Buttons in der Historie</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show buttons to quickly reply, react or access additional options next to each message.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Limit width of timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Set the max width of messages in the timeline (in pixels). This can help readability on wide screen, when Nheko is maximised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Typing notifications</source> <source>Typing notifications</source>
<translation>Schreibbenachrichtigungen</translation> <translation>Schreibbenachrichtigungen</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show who is typing in a room.
This will also enable or disable sending typing notifications to others.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Sort rooms by unreads</source> <source>Sort rooms by unreads</source>
<translation>Sortiere ungelesene Räume zuerst</translation> <translation>Sortiere ungelesene Räume zuerst</translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>Display rooms with new messages first.
If this is off, the list of rooms will only be sorted by the timestamp of the last message in a room.
If this is on, rooms which have active notifications (the small circle with a number in it) will be sorted on top. Rooms, that you have muted, will still be sorted by timestamp, since you don&apos;t seem to consider them as important as the other rooms.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation>Lesebestätigungen</translation> <translation>Lesebestätigungen</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show if your message was read.
Status is displayed next to timestamps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Send messages as Markdown</source> <source>Send messages as Markdown</source>
<translation>Sende Nachrichten als Markdown formatiert</translation> <translation>Sende Nachrichten als Markdown formatiert</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Allow using markdown in messages.
When disabled, all messages are sent as a plain text.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Desktop notifications</source> <source>Desktop notifications</source>
<translation>Desktopbenachrichtigungen</translation> <translation>Desktopbenachrichtigungen</translation>
</message> </message>
<message>
<location line="+2"/>
<source>Notify about received message when the client is not currently focused.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Alert on notification</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show an alert when a message is received.
This usually causes the application icon in the task bar to animate in some fashion.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Highlight message on hover</source> <source>Highlight message on hover</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the background color of messages when you hover over them.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Large Emoji in timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Make font size larger if messages with only a few emojis are displayed.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+5"/> <location line="+5"/>
<source>Scale factor</source> <source>Scale factor</source>
<translation>Skalierungsfaktor</translation> <translation>Skalierungsfaktor</translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the scale factor of the whole user interface.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Font size</source> <source>Font size</source>
@ -1002,7 +1176,7 @@ Beispiel: https://mein.server:8787</translation>
<translation>Gerätefingerabdruck</translation> <translation>Gerätefingerabdruck</translation>
</message> </message>
<message> <message>
<location line="-60"/> <location line="-113"/>
<source>Session Keys</source> <source>Session Keys</source>
<translation>Sitzungsschlüssel</translation> <translation>Sitzungsschlüssel</translation>
</message> </message>
@ -1022,22 +1196,22 @@ Beispiel: https://mein.server:8787</translation>
<translation>VERSCHLÜSSELUNG</translation> <translation>VERSCHLÜSSELUNG</translation>
</message> </message>
<message> <message>
<location line="-64"/> <location line="-71"/>
<source>GENERAL</source> <source>GENERAL</source>
<translation>ALLGEMEINES</translation> <translation>ALLGEMEINES</translation>
</message> </message>
<message> <message>
<location line="+26"/> <location line="+29"/>
<source>INTERFACE</source> <source>INTERFACE</source>
<translation>OBERFLÄCHE</translation> <translation>OBERFLÄCHE</translation>
</message> </message>
<message> <message>
<location line="+109"/> <location line="+166"/>
<source>Emoji Font Family</source> <source>Emoji Font Family</source>
<translation>Emojischriftart</translation> <translation>Emojischriftart</translation>
</message> </message>
<message> <message>
<location line="+163"/> <location line="+179"/>
<source>Open Sessions File</source> <source>Open Sessions File</source>
<translation>Öffne Sessions Datei</translation> <translation>Öffne Sessions Datei</translation>
</message> </message>
@ -1109,7 +1283,7 @@ Beispiel: https://mein.server:8787</translation>
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+141"/> <location filename="../../src/Utils.cpp" line="+147"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation>Gestern</translation> <translation>Gestern</translation>
</message> </message>
@ -1183,7 +1357,7 @@ Beispiel: https://mein.server:8787</translation>
<context> <context>
<name>dialogs::InviteUsers</name> <name>dialogs::InviteUsers</name>
<message> <message>
<location filename="../../src/dialogs/InviteUsers.cpp" line="+41"/> <location filename="../../src/dialogs/InviteUsers.cpp" line="+42"/>
<source>Cancel</source> <source>Cancel</source>
<translation>Abbrechen</translation> <translation>Abbrechen</translation>
</message> </message>
@ -1280,7 +1454,7 @@ Medien-Größe: %2
<context> <context>
<name>dialogs::ReadReceipts</name> <name>dialogs::ReadReceipts</name>
<message> <message>
<location filename="../../src/dialogs/ReadReceipts.cpp" line="+117"/> <location filename="../../src/dialogs/ReadReceipts.cpp" line="+120"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation>Lesebestätigungen</translation> <translation>Lesebestätigungen</translation>
</message> </message>
@ -1293,12 +1467,12 @@ Medien-Größe: %2
<context> <context>
<name>dialogs::ReceiptItem</name> <name>dialogs::ReceiptItem</name>
<message> <message>
<location line="-44"/> <location line="-46"/>
<source>Today %1</source> <source>Today %1</source>
<translation>Heute %1</translation> <translation>Heute %1</translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+3"/>
<source>Yesterday %1</source> <source>Yesterday %1</source>
<translation>Gestern %1</translation> <translation>Gestern %1</translation>
</message> </message>
@ -1306,7 +1480,7 @@ Medien-Größe: %2
<context> <context>
<name>dialogs::RoomSettings</name> <name>dialogs::RoomSettings</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+113"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+135"/>
<source>Settings</source> <source>Settings</source>
<translation>Einstellungen</translation> <translation>Einstellungen</translation>
</message> </message>
@ -1506,7 +1680,7 @@ Medien-Größe: %2
<context> <context>
<name>message-description sent:</name> <name>message-description sent:</name>
<message> <message>
<location filename="../../src/Utils.h" line="+100"/> <location filename="../../src/Utils.h" line="+103"/>
<source>You sent an audio clip</source> <source>You sent an audio clip</source>
<translation>Du hast eine Audiodatei gesendet.</translation> <translation>Du hast eine Audiodatei gesendet.</translation>
</message> </message>

@ -4,7 +4,7 @@
<context> <context>
<name>Cache</name> <name>Cache</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+1341"/> <location filename="../../src/Cache.cpp" line="+1342"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -12,23 +12,23 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+226"/> <location filename="../../src/ChatPage.cpp" line="+227"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+892"/> <location line="+923"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-463"/> <location line="-471"/>
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source> <source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+428"/> <location line="+436"/>
<source>Room %1 created.</source> <source>Room %1 created.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -68,7 +68,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-817"/> <location line="-825"/>
<source>Failed to upload media. Please try again.</source> <source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -98,7 +98,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+148"/> <location line="+156"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source> <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -151,6 +151,12 @@
<source>Low priority rooms</source> <source>Low priority rooms</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Server Notices</source>
<comment>Tag translation for m.server_notice</comment>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<location line="+2"/> <location line="+2"/>
@ -166,7 +172,7 @@
<context> <context>
<name>EditModal</name> <name>EditModal</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+60"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+72"/>
<source>Apply</source> <source>Apply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -186,6 +192,55 @@
<translation type="unfinished">Θέμα</translation> <translation type="unfinished">Θέμα</translation>
</message> </message>
</context> </context>
<context>
<name>EmojiPicker</name>
<message>
<location filename="../qml/emoji/EmojiPicker.qml" line="+117"/>
<location line="+139"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-42"/>
<source>People</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Nature</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Food</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Activity</source>
<translation type="unfinished">Δραστηριότητες</translation>
</message>
<message>
<location line="+2"/>
<source>Travel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Objects</source>
<translation type="unfinished">Αντικείμενα</translation>
</message>
<message>
<location line="+2"/>
<source>Symbols</source>
<translation type="unfinished">Σύμβολα</translation>
</message>
<message>
<location line="+2"/>
<source>Flags</source>
<translation type="unfinished">Σημαίες</translation>
</message>
</context>
<context> <context>
<name>EncryptionIndicator</name> <name>EncryptionIndicator</name>
<message> <message>
@ -202,7 +257,7 @@
<context> <context>
<name>InviteeItem</name> <name>InviteeItem</name>
<message> <message>
<location filename="../../src/InviteeItem.cpp" line="+17"/> <location filename="../../src/InviteeItem.cpp" line="+18"/>
<source>Remove</source> <source>Remove</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -210,7 +265,7 @@
<context> <context>
<name>LoginPage</name> <name>LoginPage</name>
<message> <message>
<location filename="../../src/LoginPage.cpp" line="+89"/> <location filename="../../src/LoginPage.cpp" line="+90"/>
<source>Matrix ID</source> <source>Matrix ID</source>
<translation>Matrix ID</translation> <translation>Matrix ID</translation>
</message> </message>
@ -239,7 +294,7 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source> <source>A name for this device, which will be shown to others, when verifying your devices. If none is provided a default is used.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -250,7 +305,7 @@ Example: https://server.my:8787</source>
</message> </message>
<message> <message>
<location line="+16"/> <location line="+16"/>
<location line="+185"/> <location line="+191"/>
<source>LOGIN</source> <source>LOGIN</source>
<translation>ΕΙΣΟΔΟΣ</translation> <translation>ΕΙΣΟΔΟΣ</translation>
</message> </message>
@ -365,7 +420,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>RegisterPage</name> <name>RegisterPage</name>
<message> <message>
<location filename="../../src/RegisterPage.cpp" line="+87"/> <location filename="../../src/RegisterPage.cpp" line="+88"/>
<source>Username</source> <source>Username</source>
<translation>Όνομα χρήστη</translation> <translation>Όνομα χρήστη</translation>
</message> </message>
@ -433,7 +488,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+939"/> <location filename="../../src/Cache.cpp" line="+940"/>
<source>no version stored</source> <source>no version stored</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -451,7 +506,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+18"/>
<source>Favourite</source> <source>Favourite</source>
<comment>Standard matrix tag for favourites</comment> <comment>Standard matrix tag for favourites</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -469,7 +524,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+13"/> <location line="+12"/>
<source>Adds or removes the specified tag.</source> <source>Adds or removes the specified tag.</source>
<comment>WhatsThis hint for tag menu actions</comment> <comment>WhatsThis hint for tag menu actions</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -481,14 +536,15 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+4"/>
<source>New Tag</source> <source>New Tag</source>
<comment>Tag name prompt title</comment> <comment>Tag name prompt title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+0"/> <location line="+1"/>
<source>Tag:</source> <source>Tag:</source>
<comment>Tag name prompt</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -505,7 +561,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>SideBarActions</name> <name>SideBarActions</name>
<message> <message>
<location filename="../../src/SideBarActions.cpp" line="+38"/> <location filename="../../src/SideBarActions.cpp" line="+40"/>
<source>User settings</source> <source>User settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -556,7 +612,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TextInputWidget</name> <name>TextInputWidget</name>
<message> <message>
<location filename="../../src/TextInputWidget.cpp" line="+459"/> <location filename="../../src/TextInputWidget.cpp" line="+460"/>
<source>Send a file</source> <source>Send a file</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -577,7 +633,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+84"/> <location line="+86"/>
<source>Select a file</source> <source>Select a file</source>
<translation>Διάλεξε ένα αρχείο</translation> <translation>Διάλεξε ένα αρχείο</translation>
</message> </message>
@ -595,7 +651,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+891"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -618,7 +674,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+455"/> <location line="+488"/>
<source>Save image</source> <source>Save image</source>
<translation type="unfinished">Αποθήκευση Εικόνας</translation> <translation type="unfinished">Αποθήκευση Εικόνας</translation>
</message> </message>
@ -638,7 +694,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-610"/> <location line="-643"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -650,7 +706,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+660"/> <location line="+693"/>
<source>%1 and %2 are typing.</source> <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> <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"> <translation type="unfinished">
@ -723,6 +779,11 @@ Example: https://server.my:8787</source>
<source>%1 changed their avatar.</source> <source>%1 changed their avatar.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>%1 changed some profile info.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>%1 joined.</source> <source>%1 joined.</source>
@ -764,12 +825,12 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-1238"/> <location line="-1281"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1240"/> <location line="+1283"/>
<source>Rejected the knock from %1.</source> <source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -793,7 +854,12 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TimelineRow</name> <name>TimelineRow</name>
<message> <message>
<location filename="../qml/TimelineRow.qml" line="+92"/> <location filename="../qml/TimelineRow.qml" line="+91"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+17"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -807,6 +873,11 @@ Example: https://server.my:8787</source>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+54"/> <location filename="../qml/TimelineView.qml" line="+54"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -846,7 +917,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+257"/> <location line="+259"/>
<source>Close</source> <source>Close</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -900,7 +971,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>UserInfoWidget</name> <name>UserInfoWidget</name>
<message> <message>
<location filename="../../src/UserInfoWidget.cpp" line="+88"/> <location filename="../../src/UserInfoWidget.cpp" line="+91"/>
<source>Logout</source> <source>Logout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -908,70 +979,173 @@ Example: https://server.my:8787</source>
<context> <context>
<name>UserSettingsPage</name> <name>UserSettingsPage</name>
<message> <message>
<location filename="../../src/UserSettingsPage.cpp" line="+339"/> <location filename="../../src/UserSettingsPage.cpp" line="+520"/>
<source>Minimize to tray</source> <source>Minimize to tray</source>
<translation>Ελαχιστοποίηση</translation> <translation>Ελαχιστοποίηση</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+3"/>
<source>Start in tray</source> <source>Start in tray</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+7"/>
<source>Group&apos;s sidebar</source> <source>Group&apos;s sidebar</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-1"/> <location line="-3"/>
<source>Circular Avatars</source> <source>Circular Avatars</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="-5"/>
<source>Decrypt messages in sidebar</source> <source>Keep the application running in the background after closing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Start the application in the background without showing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Change the appearance of user avatars in chats.
OFF - square, ON - Circle.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Show a column containing groups and tags next to the room list.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Decrypt messages in sidebar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Decrypt the messages shown in the sidebar.
Only affects messages in encrypted chats.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show buttons in timeline</source> <source>Show buttons in timeline</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show buttons to quickly reply, react or access additional options next to each message.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Limit width of timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Set the max width of messages in the timeline (in pixels). This can help readability on wide screen, when Nheko is maximised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Typing notifications</source> <source>Typing notifications</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show who is typing in a room.
This will also enable or disable sending typing notifications to others.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Sort rooms by unreads</source> <source>Sort rooms by unreads</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>Display rooms with new messages first.
If this is off, the list of rooms will only be sorted by the timestamp of the last message in a room.
If this is on, rooms which have active notifications (the small circle with a number in it) will be sorted on top. Rooms, that you have muted, will still be sorted by timestamp, since you don&apos;t seem to consider them as important as the other rooms.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show if your message was read.
Status is displayed next to timestamps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Send messages as Markdown</source> <source>Send messages as Markdown</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Allow using markdown in messages.
When disabled, all messages are sent as a plain text.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Desktop notifications</source> <source>Desktop notifications</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Notify about received message when the client is not currently focused.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Alert on notification</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show an alert when a message is received.
This usually causes the application icon in the task bar to animate in some fashion.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Highlight message on hover</source> <source>Highlight message on hover</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the background color of messages when you hover over them.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Large Emoji in timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Make font size larger if messages with only a few emojis are displayed.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+5"/> <location line="+5"/>
<source>Scale factor</source> <source>Scale factor</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the scale factor of the whole user interface.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Font size</source> <source>Font size</source>
@ -998,7 +1172,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-60"/> <location line="-113"/>
<source>Session Keys</source> <source>Session Keys</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1018,22 +1192,22 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-64"/> <location line="-71"/>
<source>GENERAL</source> <source>GENERAL</source>
<translation>ΓΕΝΙΚΑ</translation> <translation>ΓΕΝΙΚΑ</translation>
</message> </message>
<message> <message>
<location line="+26"/> <location line="+29"/>
<source>INTERFACE</source> <source>INTERFACE</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+109"/> <location line="+166"/>
<source>Emoji Font Family</source> <source>Emoji Font Family</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+163"/> <location line="+179"/>
<source>Open Sessions File</source> <source>Open Sessions File</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1105,7 +1279,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+141"/> <location filename="../../src/Utils.cpp" line="+147"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1179,7 +1353,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>dialogs::InviteUsers</name> <name>dialogs::InviteUsers</name>
<message> <message>
<location filename="../../src/dialogs/InviteUsers.cpp" line="+41"/> <location filename="../../src/dialogs/InviteUsers.cpp" line="+42"/>
<source>Cancel</source> <source>Cancel</source>
<translation type="unfinished">Άκυρο</translation> <translation type="unfinished">Άκυρο</translation>
</message> </message>
@ -1274,7 +1448,7 @@ Media size: %2
<context> <context>
<name>dialogs::ReadReceipts</name> <name>dialogs::ReadReceipts</name>
<message> <message>
<location filename="../../src/dialogs/ReadReceipts.cpp" line="+117"/> <location filename="../../src/dialogs/ReadReceipts.cpp" line="+120"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1287,12 +1461,12 @@ Media size: %2
<context> <context>
<name>dialogs::ReceiptItem</name> <name>dialogs::ReceiptItem</name>
<message> <message>
<location line="-44"/> <location line="-46"/>
<source>Today %1</source> <source>Today %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+3"/>
<source>Yesterday %1</source> <source>Yesterday %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1300,7 +1474,7 @@ Media size: %2
<context> <context>
<name>dialogs::RoomSettings</name> <name>dialogs::RoomSettings</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+113"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+135"/>
<source>Settings</source> <source>Settings</source>
<translation type="unfinished">Ρυθμίσεις</translation> <translation type="unfinished">Ρυθμίσεις</translation>
</message> </message>
@ -1500,7 +1674,7 @@ Media size: %2
<context> <context>
<name>message-description sent:</name> <name>message-description sent:</name>
<message> <message>
<location filename="../../src/Utils.h" line="+100"/> <location filename="../../src/Utils.h" line="+103"/>
<source>You sent an audio clip</source> <source>You sent an audio clip</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

@ -4,7 +4,7 @@
<context> <context>
<name>Cache</name> <name>Cache</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+1341"/> <location filename="../../src/Cache.cpp" line="+1342"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation>You joined this room.</translation> <translation>You joined this room.</translation>
</message> </message>
@ -12,23 +12,23 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+226"/> <location filename="../../src/ChatPage.cpp" line="+227"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation>Failed to invite user: %1</translation> <translation>Failed to invite user: %1</translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+892"/> <location line="+923"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation>Invited user: %1</translation> <translation>Invited user: %1</translation>
</message> </message>
<message> <message>
<location line="-463"/> <location line="-471"/>
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source> <source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
<translation>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</translation> <translation>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</translation>
</message> </message>
<message> <message>
<location line="+428"/> <location line="+436"/>
<source>Room %1 created.</source> <source>Room %1 created.</source>
<translation>Room %1 created.</translation> <translation>Room %1 created.</translation>
</message> </message>
@ -68,7 +68,7 @@
<translation>Unbanned user: %1</translation> <translation>Unbanned user: %1</translation>
</message> </message>
<message> <message>
<location line="-817"/> <location line="-825"/>
<source>Failed to upload media. Please try again.</source> <source>Failed to upload media. Please try again.</source>
<translation>Failed to upload media. Please try again.</translation> <translation>Failed to upload media. Please try again.</translation>
</message> </message>
@ -98,7 +98,7 @@
<translation>Failed to restore save data. Please login again.</translation> <translation>Failed to restore save data. Please login again.</translation>
</message> </message>
<message> <message>
<location line="+148"/> <location line="+156"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source> <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> <translation>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</translation>
</message> </message>
@ -151,6 +151,12 @@
<source>Low priority rooms</source> <source>Low priority rooms</source>
<translation>Low priority rooms</translation> <translation>Low priority rooms</translation>
</message> </message>
<message>
<location line="+2"/>
<source>Server Notices</source>
<comment>Tag translation for m.server_notice</comment>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<location line="+2"/> <location line="+2"/>
@ -166,7 +172,7 @@
<context> <context>
<name>EditModal</name> <name>EditModal</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+60"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+72"/>
<source>Apply</source> <source>Apply</source>
<translation>Apply</translation> <translation>Apply</translation>
</message> </message>
@ -186,6 +192,55 @@
<translation>Topic</translation> <translation>Topic</translation>
</message> </message>
</context> </context>
<context>
<name>EmojiPicker</name>
<message>
<location filename="../qml/emoji/EmojiPicker.qml" line="+117"/>
<location line="+139"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-42"/>
<source>People</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Nature</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Food</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Activity</source>
<translation type="unfinished">Activity</translation>
</message>
<message>
<location line="+2"/>
<source>Travel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Objects</source>
<translation type="unfinished">Objects</translation>
</message>
<message>
<location line="+2"/>
<source>Symbols</source>
<translation type="unfinished">Symbols</translation>
</message>
<message>
<location line="+2"/>
<source>Flags</source>
<translation type="unfinished">Flags</translation>
</message>
</context>
<context> <context>
<name>EncryptionIndicator</name> <name>EncryptionIndicator</name>
<message> <message>
@ -202,7 +257,7 @@
<context> <context>
<name>InviteeItem</name> <name>InviteeItem</name>
<message> <message>
<location filename="../../src/InviteeItem.cpp" line="+17"/> <location filename="../../src/InviteeItem.cpp" line="+18"/>
<source>Remove</source> <source>Remove</source>
<translation>Remove</translation> <translation>Remove</translation>
</message> </message>
@ -210,7 +265,7 @@
<context> <context>
<name>LoginPage</name> <name>LoginPage</name>
<message> <message>
<location filename="../../src/LoginPage.cpp" line="+89"/> <location filename="../../src/LoginPage.cpp" line="+90"/>
<source>Matrix ID</source> <source>Matrix ID</source>
<translation>Matrix ID</translation> <translation>Matrix ID</translation>
</message> </message>
@ -242,8 +297,8 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source> <source>A name for this device, which will be shown to others, when verifying your devices. If none is provided a default is used.</source>
<translation>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+6"/> <location line="+6"/>
@ -254,7 +309,7 @@ Example: https://server.my:8787</translation>
</message> </message>
<message> <message>
<location line="+16"/> <location line="+16"/>
<location line="+185"/> <location line="+191"/>
<source>LOGIN</source> <source>LOGIN</source>
<translation>LOGIN</translation> <translation>LOGIN</translation>
</message> </message>
@ -369,7 +424,7 @@ Example: https://server.my:8787</translation>
<context> <context>
<name>RegisterPage</name> <name>RegisterPage</name>
<message> <message>
<location filename="../../src/RegisterPage.cpp" line="+87"/> <location filename="../../src/RegisterPage.cpp" line="+88"/>
<source>Username</source> <source>Username</source>
<translation>Username</translation> <translation>Username</translation>
</message> </message>
@ -437,7 +492,7 @@ Example: https://server.my:8787</translation>
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+939"/> <location filename="../../src/Cache.cpp" line="+940"/>
<source>no version stored</source> <source>no version stored</source>
<translation>no version stored</translation> <translation>no version stored</translation>
</message> </message>
@ -455,7 +510,7 @@ Example: https://server.my:8787</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+18"/>
<source>Favourite</source> <source>Favourite</source>
<comment>Standard matrix tag for favourites</comment> <comment>Standard matrix tag for favourites</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -473,7 +528,7 @@ Example: https://server.my:8787</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+13"/> <location line="+12"/>
<source>Adds or removes the specified tag.</source> <source>Adds or removes the specified tag.</source>
<comment>WhatsThis hint for tag menu actions</comment> <comment>WhatsThis hint for tag menu actions</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -485,14 +540,15 @@ Example: https://server.my:8787</translation>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+4"/>
<source>New Tag</source> <source>New Tag</source>
<comment>Tag name prompt title</comment> <comment>Tag name prompt title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+0"/> <location line="+1"/>
<source>Tag:</source> <source>Tag:</source>
<comment>Tag name prompt</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -509,7 +565,7 @@ Example: https://server.my:8787</translation>
<context> <context>
<name>SideBarActions</name> <name>SideBarActions</name>
<message> <message>
<location filename="../../src/SideBarActions.cpp" line="+38"/> <location filename="../../src/SideBarActions.cpp" line="+40"/>
<source>User settings</source> <source>User settings</source>
<translation>User settings</translation> <translation>User settings</translation>
</message> </message>
@ -560,7 +616,7 @@ Example: https://server.my:8787</translation>
<context> <context>
<name>TextInputWidget</name> <name>TextInputWidget</name>
<message> <message>
<location filename="../../src/TextInputWidget.cpp" line="+459"/> <location filename="../../src/TextInputWidget.cpp" line="+460"/>
<source>Send a file</source> <source>Send a file</source>
<translation>Send a file</translation> <translation>Send a file</translation>
</message> </message>
@ -581,7 +637,7 @@ Example: https://server.my:8787</translation>
<translation>Emoji</translation> <translation>Emoji</translation>
</message> </message>
<message> <message>
<location line="+84"/> <location line="+86"/>
<source>Select a file</source> <source>Select a file</source>
<translation>Select a file</translation> <translation>Select a file</translation>
</message> </message>
@ -599,7 +655,7 @@ Example: https://server.my:8787</translation>
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+891"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation>-- Decryption Error (failed to communicate with DB) --</translation> <translation>-- Decryption Error (failed to communicate with DB) --</translation>
@ -622,7 +678,7 @@ Example: https://server.my:8787</translation>
<translation>Message redaction failed: %1</translation> <translation>Message redaction failed: %1</translation>
</message> </message>
<message> <message>
<location line="+455"/> <location line="+488"/>
<source>Save image</source> <source>Save image</source>
<translation>Save image</translation> <translation>Save image</translation>
</message> </message>
@ -642,7 +698,7 @@ Example: https://server.my:8787</translation>
<translation>Save file</translation> <translation>Save file</translation>
</message> </message>
<message> <message>
<location line="-610"/> <location line="-643"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation>-- Encrypted Event (No keys found for decryption) --</translation> <translation>-- Encrypted Event (No keys found for decryption) --</translation>
@ -654,7 +710,7 @@ Example: https://server.my:8787</translation>
<translation>-- Encrypted Event (Unknown event type) --</translation> <translation>-- Encrypted Event (Unknown event type) --</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+660"/> <location line="+693"/>
<source>%1 and %2 are typing.</source> <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> <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> <translation>
@ -727,6 +783,11 @@ Example: https://server.my:8787</translation>
<source>%1 changed their avatar.</source> <source>%1 changed their avatar.</source>
<translation>%1 changed their avatar.</translation> <translation>%1 changed their avatar.</translation>
</message> </message>
<message>
<location line="+2"/>
<source>%1 changed some profile info.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>%1 joined.</source> <source>%1 joined.</source>
@ -768,12 +829,12 @@ Example: https://server.my:8787</translation>
<translation>%1 redacted their knock.</translation> <translation>%1 redacted their knock.</translation>
</message> </message>
<message> <message>
<location line="-1238"/> <location line="-1281"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation>You joined this room.</translation> <translation>You joined this room.</translation>
</message> </message>
<message> <message>
<location line="+1240"/> <location line="+1283"/>
<source>Rejected the knock from %1.</source> <source>Rejected the knock from %1.</source>
<translation>Rejected the knock from %1.</translation> <translation>Rejected the knock from %1.</translation>
</message> </message>
@ -797,7 +858,12 @@ Example: https://server.my:8787</translation>
<context> <context>
<name>TimelineRow</name> <name>TimelineRow</name>
<message> <message>
<location filename="../qml/TimelineRow.qml" line="+92"/> <location filename="../qml/TimelineRow.qml" line="+91"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+17"/>
<source>Reply</source> <source>Reply</source>
<translation>Reply</translation> <translation>Reply</translation>
</message> </message>
@ -811,6 +877,11 @@ Example: https://server.my:8787</translation>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+54"/> <location filename="../qml/TimelineView.qml" line="+54"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Reply</source> <source>Reply</source>
<translation>Reply</translation> <translation>Reply</translation>
</message> </message>
@ -850,7 +921,7 @@ Example: https://server.my:8787</translation>
<translation>No room open</translation> <translation>No room open</translation>
</message> </message>
<message> <message>
<location line="+257"/> <location line="+259"/>
<source>Close</source> <source>Close</source>
<translation>Close</translation> <translation>Close</translation>
</message> </message>
@ -904,7 +975,7 @@ Example: https://server.my:8787</translation>
<context> <context>
<name>UserInfoWidget</name> <name>UserInfoWidget</name>
<message> <message>
<location filename="../../src/UserInfoWidget.cpp" line="+88"/> <location filename="../../src/UserInfoWidget.cpp" line="+91"/>
<source>Logout</source> <source>Logout</source>
<translation>Logout</translation> <translation>Logout</translation>
</message> </message>
@ -912,70 +983,173 @@ Example: https://server.my:8787</translation>
<context> <context>
<name>UserSettingsPage</name> <name>UserSettingsPage</name>
<message> <message>
<location filename="../../src/UserSettingsPage.cpp" line="+339"/> <location filename="../../src/UserSettingsPage.cpp" line="+520"/>
<source>Minimize to tray</source> <source>Minimize to tray</source>
<translation>Minimize to tray</translation> <translation>Minimize to tray</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+3"/>
<source>Start in tray</source> <source>Start in tray</source>
<translation>Start in tray</translation> <translation>Start in tray</translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+7"/>
<source>Group&apos;s sidebar</source> <source>Group&apos;s sidebar</source>
<translation>Group&apos;s sidebar</translation> <translation>Group&apos;s sidebar</translation>
</message> </message>
<message> <message>
<location line="-1"/> <location line="-3"/>
<source>Circular Avatars</source> <source>Circular Avatars</source>
<translation>Circular Avatars</translation> <translation>Circular Avatars</translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="-5"/>
<source>Keep the application running in the background after closing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Start the application in the background without showing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Change the appearance of user avatars in chats.
OFF - square, ON - Circle.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Show a column containing groups and tags next to the room list.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Decrypt messages in sidebar</source> <source>Decrypt messages in sidebar</source>
<translation>Decrypt messages in sidebar</translation> <translation>Decrypt messages in sidebar</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Decrypt the messages shown in the sidebar.
Only affects messages in encrypted chats.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show buttons in timeline</source> <source>Show buttons in timeline</source>
<translation>Show buttons in timeline</translation> <translation>Show buttons in timeline</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show buttons to quickly reply, react or access additional options next to each message.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Limit width of timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Set the max width of messages in the timeline (in pixels). This can help readability on wide screen, when Nheko is maximised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Typing notifications</source> <source>Typing notifications</source>
<translation>Typing notifications</translation> <translation>Typing notifications</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show who is typing in a room.
This will also enable or disable sending typing notifications to others.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Sort rooms by unreads</source> <source>Sort rooms by unreads</source>
<translation>Sort rooms by unreads</translation> <translation>Sort rooms by unreads</translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>Display rooms with new messages first.
If this is off, the list of rooms will only be sorted by the timestamp of the last message in a room.
If this is on, rooms which have active notifications (the small circle with a number in it) will be sorted on top. Rooms, that you have muted, will still be sorted by timestamp, since you don&apos;t seem to consider them as important as the other rooms.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation>Read receipts</translation> <translation>Read receipts</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show if your message was read.
Status is displayed next to timestamps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Send messages as Markdown</source> <source>Send messages as Markdown</source>
<translation>Send messages as Markdown</translation> <translation>Send messages as Markdown</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Allow using markdown in messages.
When disabled, all messages are sent as a plain text.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Desktop notifications</source> <source>Desktop notifications</source>
<translation>Desktop notifications</translation> <translation>Desktop notifications</translation>
</message> </message>
<message>
<location line="+2"/>
<source>Notify about received message when the client is not currently focused.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Alert on notification</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show an alert when a message is received.
This usually causes the application icon in the task bar to animate in some fashion.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Highlight message on hover</source> <source>Highlight message on hover</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the background color of messages when you hover over them.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Large Emoji in timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Make font size larger if messages with only a few emojis are displayed.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+5"/> <location line="+5"/>
<source>Scale factor</source> <source>Scale factor</source>
<translation>Scale factor</translation> <translation>Scale factor</translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the scale factor of the whole user interface.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Font size</source> <source>Font size</source>
@ -1002,7 +1176,7 @@ Example: https://server.my:8787</translation>
<translation>Device Fingerprint</translation> <translation>Device Fingerprint</translation>
</message> </message>
<message> <message>
<location line="-60"/> <location line="-113"/>
<source>Session Keys</source> <source>Session Keys</source>
<translation>Session Keys</translation> <translation>Session Keys</translation>
</message> </message>
@ -1022,22 +1196,22 @@ Example: https://server.my:8787</translation>
<translation>ENCRYPTION</translation> <translation>ENCRYPTION</translation>
</message> </message>
<message> <message>
<location line="-64"/> <location line="-71"/>
<source>GENERAL</source> <source>GENERAL</source>
<translation>GENERAL</translation> <translation>GENERAL</translation>
</message> </message>
<message> <message>
<location line="+26"/> <location line="+29"/>
<source>INTERFACE</source> <source>INTERFACE</source>
<translation>INTERFACE</translation> <translation>INTERFACE</translation>
</message> </message>
<message> <message>
<location line="+109"/> <location line="+166"/>
<source>Emoji Font Family</source> <source>Emoji Font Family</source>
<translation>Emoji Font Family</translation> <translation>Emoji Font Family</translation>
</message> </message>
<message> <message>
<location line="+163"/> <location line="+179"/>
<source>Open Sessions File</source> <source>Open Sessions File</source>
<translation>Open Sessions File</translation> <translation>Open Sessions File</translation>
</message> </message>
@ -1109,7 +1283,7 @@ Example: https://server.my:8787</translation>
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+141"/> <location filename="../../src/Utils.cpp" line="+147"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation>Yesterday</translation> <translation>Yesterday</translation>
</message> </message>
@ -1183,7 +1357,7 @@ Example: https://server.my:8787</translation>
<context> <context>
<name>dialogs::InviteUsers</name> <name>dialogs::InviteUsers</name>
<message> <message>
<location filename="../../src/dialogs/InviteUsers.cpp" line="+41"/> <location filename="../../src/dialogs/InviteUsers.cpp" line="+42"/>
<source>Cancel</source> <source>Cancel</source>
<translation>Cancel</translation> <translation>Cancel</translation>
</message> </message>
@ -1280,7 +1454,7 @@ Media size: %2
<context> <context>
<name>dialogs::ReadReceipts</name> <name>dialogs::ReadReceipts</name>
<message> <message>
<location filename="../../src/dialogs/ReadReceipts.cpp" line="+117"/> <location filename="../../src/dialogs/ReadReceipts.cpp" line="+120"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation>Read receipts</translation> <translation>Read receipts</translation>
</message> </message>
@ -1293,12 +1467,12 @@ Media size: %2
<context> <context>
<name>dialogs::ReceiptItem</name> <name>dialogs::ReceiptItem</name>
<message> <message>
<location line="-44"/> <location line="-46"/>
<source>Today %1</source> <source>Today %1</source>
<translation>Today %1</translation> <translation>Today %1</translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+3"/>
<source>Yesterday %1</source> <source>Yesterday %1</source>
<translation>Yesterday %1</translation> <translation>Yesterday %1</translation>
</message> </message>
@ -1306,7 +1480,7 @@ Media size: %2
<context> <context>
<name>dialogs::RoomSettings</name> <name>dialogs::RoomSettings</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+113"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+135"/>
<source>Settings</source> <source>Settings</source>
<translation>Settings</translation> <translation>Settings</translation>
</message> </message>
@ -1508,7 +1682,7 @@ Media size: %2
<context> <context>
<name>message-description sent:</name> <name>message-description sent:</name>
<message> <message>
<location filename="../../src/Utils.h" line="+100"/> <location filename="../../src/Utils.h" line="+103"/>
<source>You sent an audio clip</source> <source>You sent an audio clip</source>
<translation>You sent an audio clip</translation> <translation>You sent an audio clip</translation>
</message> </message>

@ -4,7 +4,7 @@
<context> <context>
<name>Cache</name> <name>Cache</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+1341"/> <location filename="../../src/Cache.cpp" line="+1342"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -12,23 +12,23 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+226"/> <location filename="../../src/ChatPage.cpp" line="+227"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+892"/> <location line="+923"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-463"/> <location line="-471"/>
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source> <source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+428"/> <location line="+436"/>
<source>Room %1 created.</source> <source>Room %1 created.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -68,7 +68,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-817"/> <location line="-825"/>
<source>Failed to upload media. Please try again.</source> <source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -98,7 +98,7 @@
<translation>Tallennettujen tietojen palauttaminen epäonnistui. Ole hyvä ja kirjaudu sisään uudelleen.</translation> <translation>Tallennettujen tietojen palauttaminen epäonnistui. Ole hyvä ja kirjaudu sisään uudelleen.</translation>
</message> </message>
<message> <message>
<location line="+148"/> <location line="+156"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source> <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> <translation>Salausavainten lähetys epäonnistui. Palvelimen vastaus: %1 %2. Ole hyvä ja yritä uudelleen myöhemmin.</translation>
</message> </message>
@ -151,6 +151,12 @@
<source>Low priority rooms</source> <source>Low priority rooms</source>
<translation>Alhaisen prioriteetin huoneet</translation> <translation>Alhaisen prioriteetin huoneet</translation>
</message> </message>
<message>
<location line="+2"/>
<source>Server Notices</source>
<comment>Tag translation for m.server_notice</comment>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<location line="+2"/> <location line="+2"/>
@ -166,7 +172,7 @@
<context> <context>
<name>EditModal</name> <name>EditModal</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+60"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+72"/>
<source>Apply</source> <source>Apply</source>
<translation>Tallenna</translation> <translation>Tallenna</translation>
</message> </message>
@ -186,6 +192,55 @@
<translation>Aihe</translation> <translation>Aihe</translation>
</message> </message>
</context> </context>
<context>
<name>EmojiPicker</name>
<message>
<location filename="../qml/emoji/EmojiPicker.qml" line="+117"/>
<location line="+139"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-42"/>
<source>People</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Nature</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Food</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Activity</source>
<translation type="unfinished">Aktiviteetti</translation>
</message>
<message>
<location line="+2"/>
<source>Travel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Objects</source>
<translation type="unfinished">Esineet</translation>
</message>
<message>
<location line="+2"/>
<source>Symbols</source>
<translation type="unfinished">Symbolit</translation>
</message>
<message>
<location line="+2"/>
<source>Flags</source>
<translation type="unfinished">Liput</translation>
</message>
</context>
<context> <context>
<name>EncryptionIndicator</name> <name>EncryptionIndicator</name>
<message> <message>
@ -202,7 +257,7 @@
<context> <context>
<name>InviteeItem</name> <name>InviteeItem</name>
<message> <message>
<location filename="../../src/InviteeItem.cpp" line="+17"/> <location filename="../../src/InviteeItem.cpp" line="+18"/>
<source>Remove</source> <source>Remove</source>
<translation>Poista</translation> <translation>Poista</translation>
</message> </message>
@ -210,7 +265,7 @@
<context> <context>
<name>LoginPage</name> <name>LoginPage</name>
<message> <message>
<location filename="../../src/LoginPage.cpp" line="+89"/> <location filename="../../src/LoginPage.cpp" line="+90"/>
<source>Matrix ID</source> <source>Matrix ID</source>
<translation>Matrix-tunnus</translation> <translation>Matrix-tunnus</translation>
</message> </message>
@ -239,7 +294,7 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source> <source>A name for this device, which will be shown to others, when verifying your devices. If none is provided a default is used.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -250,7 +305,7 @@ Example: https://server.my:8787</source>
</message> </message>
<message> <message>
<location line="+16"/> <location line="+16"/>
<location line="+185"/> <location line="+191"/>
<source>LOGIN</source> <source>LOGIN</source>
<translation>KIRJAUDU</translation> <translation>KIRJAUDU</translation>
</message> </message>
@ -365,7 +420,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>RegisterPage</name> <name>RegisterPage</name>
<message> <message>
<location filename="../../src/RegisterPage.cpp" line="+87"/> <location filename="../../src/RegisterPage.cpp" line="+88"/>
<source>Username</source> <source>Username</source>
<translation>Käyttäjänimi</translation> <translation>Käyttäjänimi</translation>
</message> </message>
@ -433,7 +488,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+939"/> <location filename="../../src/Cache.cpp" line="+940"/>
<source>no version stored</source> <source>no version stored</source>
<translation>ei tallennettua versiota</translation> <translation>ei tallennettua versiota</translation>
</message> </message>
@ -451,7 +506,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+18"/>
<source>Favourite</source> <source>Favourite</source>
<comment>Standard matrix tag for favourites</comment> <comment>Standard matrix tag for favourites</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -469,7 +524,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+13"/> <location line="+12"/>
<source>Adds or removes the specified tag.</source> <source>Adds or removes the specified tag.</source>
<comment>WhatsThis hint for tag menu actions</comment> <comment>WhatsThis hint for tag menu actions</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -481,14 +536,15 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+4"/>
<source>New Tag</source> <source>New Tag</source>
<comment>Tag name prompt title</comment> <comment>Tag name prompt title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+0"/> <location line="+1"/>
<source>Tag:</source> <source>Tag:</source>
<comment>Tag name prompt</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -505,7 +561,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>SideBarActions</name> <name>SideBarActions</name>
<message> <message>
<location filename="../../src/SideBarActions.cpp" line="+38"/> <location filename="../../src/SideBarActions.cpp" line="+40"/>
<source>User settings</source> <source>User settings</source>
<translation>Käyttäjäasetukset</translation> <translation>Käyttäjäasetukset</translation>
</message> </message>
@ -556,7 +612,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TextInputWidget</name> <name>TextInputWidget</name>
<message> <message>
<location filename="../../src/TextInputWidget.cpp" line="+459"/> <location filename="../../src/TextInputWidget.cpp" line="+460"/>
<source>Send a file</source> <source>Send a file</source>
<translation>Lähetä tiedosto</translation> <translation>Lähetä tiedosto</translation>
</message> </message>
@ -577,7 +633,7 @@ Example: https://server.my:8787</source>
<translation>Emoji</translation> <translation>Emoji</translation>
</message> </message>
<message> <message>
<location line="+84"/> <location line="+86"/>
<source>Select a file</source> <source>Select a file</source>
<translation>Valitse tiedosto</translation> <translation>Valitse tiedosto</translation>
</message> </message>
@ -595,7 +651,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+891"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation type="unfinished">-- Virhe purkaessa salausta (tietokannan kanssa kommunikointi epäonnistui) --</translation> <translation type="unfinished">-- Virhe purkaessa salausta (tietokannan kanssa kommunikointi epäonnistui) --</translation>
@ -618,7 +674,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished">Viestin poisto epäonnistui: %1</translation> <translation type="unfinished">Viestin poisto epäonnistui: %1</translation>
</message> </message>
<message> <message>
<location line="+455"/> <location line="+488"/>
<source>Save image</source> <source>Save image</source>
<translation type="unfinished">Tallenna kuva</translation> <translation type="unfinished">Tallenna kuva</translation>
</message> </message>
@ -638,7 +694,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-610"/> <location line="-643"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished">-- Salattu viesti (salauksen purkuavaimia ei löydetty) --</translation> <translation type="unfinished">-- Salattu viesti (salauksen purkuavaimia ei löydetty) --</translation>
@ -650,7 +706,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished">-- Salattu viesti (tuntematon viestityyppi) --</translation> <translation type="unfinished">-- Salattu viesti (tuntematon viestityyppi) --</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+660"/> <location line="+693"/>
<source>%1 and %2 are typing.</source> <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> <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> <translation>
@ -723,6 +779,11 @@ Example: https://server.my:8787</source>
<source>%1 changed their avatar.</source> <source>%1 changed their avatar.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>%1 changed some profile info.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>%1 joined.</source> <source>%1 joined.</source>
@ -764,12 +825,12 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-1238"/> <location line="-1281"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1240"/> <location line="+1283"/>
<source>Rejected the knock from %1.</source> <source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -793,7 +854,12 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TimelineRow</name> <name>TimelineRow</name>
<message> <message>
<location filename="../qml/TimelineRow.qml" line="+92"/> <location filename="../qml/TimelineRow.qml" line="+91"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+17"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -807,6 +873,11 @@ Example: https://server.my:8787</source>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+54"/> <location filename="../qml/TimelineView.qml" line="+54"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -846,7 +917,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+257"/> <location line="+259"/>
<source>Close</source> <source>Close</source>
<translation type="unfinished">Sulje</translation> <translation type="unfinished">Sulje</translation>
</message> </message>
@ -900,7 +971,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>UserInfoWidget</name> <name>UserInfoWidget</name>
<message> <message>
<location filename="../../src/UserInfoWidget.cpp" line="+88"/> <location filename="../../src/UserInfoWidget.cpp" line="+91"/>
<source>Logout</source> <source>Logout</source>
<translation>Kirjaudu ulos</translation> <translation>Kirjaudu ulos</translation>
</message> </message>
@ -908,70 +979,173 @@ Example: https://server.my:8787</source>
<context> <context>
<name>UserSettingsPage</name> <name>UserSettingsPage</name>
<message> <message>
<location filename="../../src/UserSettingsPage.cpp" line="+339"/> <location filename="../../src/UserSettingsPage.cpp" line="+520"/>
<source>Minimize to tray</source> <source>Minimize to tray</source>
<translation>Pienennä ilmoitusalueelle</translation> <translation>Pienennä ilmoitusalueelle</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+3"/>
<source>Start in tray</source> <source>Start in tray</source>
<translation>Aloita ilmoitusalueella</translation> <translation>Aloita ilmoitusalueella</translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+7"/>
<source>Group&apos;s sidebar</source> <source>Group&apos;s sidebar</source>
<translation>Ryhmäsivupalkki</translation> <translation>Ryhmäsivupalkki</translation>
</message> </message>
<message> <message>
<location line="-1"/> <location line="-3"/>
<source>Circular Avatars</source> <source>Circular Avatars</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="-5"/>
<source>Decrypt messages in sidebar</source> <source>Keep the application running in the background after closing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Start the application in the background without showing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Change the appearance of user avatars in chats.
OFF - square, ON - Circle.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Show a column containing groups and tags next to the room list.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Decrypt messages in sidebar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Decrypt the messages shown in the sidebar.
Only affects messages in encrypted chats.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show buttons in timeline</source> <source>Show buttons in timeline</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show buttons to quickly reply, react or access additional options next to each message.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Limit width of timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Set the max width of messages in the timeline (in pixels). This can help readability on wide screen, when Nheko is maximised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Typing notifications</source> <source>Typing notifications</source>
<translation>Kirjoitusilmoitukset</translation> <translation>Kirjoitusilmoitukset</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show who is typing in a room.
This will also enable or disable sending typing notifications to others.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Sort rooms by unreads</source> <source>Sort rooms by unreads</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>Display rooms with new messages first.
If this is off, the list of rooms will only be sorted by the timestamp of the last message in a room.
If this is on, rooms which have active notifications (the small circle with a number in it) will be sorted on top. Rooms, that you have muted, will still be sorted by timestamp, since you don&apos;t seem to consider them as important as the other rooms.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation>Lukukuittaukset</translation> <translation>Lukukuittaukset</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show if your message was read.
Status is displayed next to timestamps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Send messages as Markdown</source> <source>Send messages as Markdown</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Allow using markdown in messages.
When disabled, all messages are sent as a plain text.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Desktop notifications</source> <source>Desktop notifications</source>
<translation>Työpöytäilmoitukset</translation> <translation>Työpöytäilmoitukset</translation>
</message> </message>
<message>
<location line="+2"/>
<source>Notify about received message when the client is not currently focused.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Alert on notification</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show an alert when a message is received.
This usually causes the application icon in the task bar to animate in some fashion.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Highlight message on hover</source> <source>Highlight message on hover</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the background color of messages when you hover over them.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Large Emoji in timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Make font size larger if messages with only a few emojis are displayed.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+5"/> <location line="+5"/>
<source>Scale factor</source> <source>Scale factor</source>
<translation>Mittakerroin</translation> <translation>Mittakerroin</translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the scale factor of the whole user interface.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Font size</source> <source>Font size</source>
@ -998,7 +1172,7 @@ Example: https://server.my:8787</source>
<translation>Laitteen sormenjälki</translation> <translation>Laitteen sormenjälki</translation>
</message> </message>
<message> <message>
<location line="-60"/> <location line="-113"/>
<source>Session Keys</source> <source>Session Keys</source>
<translation>Istunnon avaimet</translation> <translation>Istunnon avaimet</translation>
</message> </message>
@ -1018,22 +1192,22 @@ Example: https://server.my:8787</source>
<translation>SALAUS</translation> <translation>SALAUS</translation>
</message> </message>
<message> <message>
<location line="-64"/> <location line="-71"/>
<source>GENERAL</source> <source>GENERAL</source>
<translation>YLEISET ASETUKSET</translation> <translation>YLEISET ASETUKSET</translation>
</message> </message>
<message> <message>
<location line="+26"/> <location line="+29"/>
<source>INTERFACE</source> <source>INTERFACE</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+109"/> <location line="+166"/>
<source>Emoji Font Family</source> <source>Emoji Font Family</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+163"/> <location line="+179"/>
<source>Open Sessions File</source> <source>Open Sessions File</source>
<translation>Avaa Istuntoavaintiedosto</translation> <translation>Avaa Istuntoavaintiedosto</translation>
</message> </message>
@ -1105,7 +1279,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+141"/> <location filename="../../src/Utils.cpp" line="+147"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation>Eilen</translation> <translation>Eilen</translation>
</message> </message>
@ -1179,7 +1353,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>dialogs::InviteUsers</name> <name>dialogs::InviteUsers</name>
<message> <message>
<location filename="../../src/dialogs/InviteUsers.cpp" line="+41"/> <location filename="../../src/dialogs/InviteUsers.cpp" line="+42"/>
<source>Cancel</source> <source>Cancel</source>
<translation>Peruuta</translation> <translation>Peruuta</translation>
</message> </message>
@ -1276,7 +1450,7 @@ Median koko: %2
<context> <context>
<name>dialogs::ReadReceipts</name> <name>dialogs::ReadReceipts</name>
<message> <message>
<location filename="../../src/dialogs/ReadReceipts.cpp" line="+117"/> <location filename="../../src/dialogs/ReadReceipts.cpp" line="+120"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation>Lukukuittaukset</translation> <translation>Lukukuittaukset</translation>
</message> </message>
@ -1289,12 +1463,12 @@ Median koko: %2
<context> <context>
<name>dialogs::ReceiptItem</name> <name>dialogs::ReceiptItem</name>
<message> <message>
<location line="-44"/> <location line="-46"/>
<source>Today %1</source> <source>Today %1</source>
<translation>Tänään %1</translation> <translation>Tänään %1</translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+3"/>
<source>Yesterday %1</source> <source>Yesterday %1</source>
<translation>Eilen %1</translation> <translation>Eilen %1</translation>
</message> </message>
@ -1302,7 +1476,7 @@ Median koko: %2
<context> <context>
<name>dialogs::RoomSettings</name> <name>dialogs::RoomSettings</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+113"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+135"/>
<source>Settings</source> <source>Settings</source>
<translation>Asetukset</translation> <translation>Asetukset</translation>
</message> </message>
@ -1504,7 +1678,7 @@ Median koko: %2
<context> <context>
<name>message-description sent:</name> <name>message-description sent:</name>
<message> <message>
<location filename="../../src/Utils.h" line="+100"/> <location filename="../../src/Utils.h" line="+103"/>
<source>You sent an audio clip</source> <source>You sent an audio clip</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

@ -4,7 +4,7 @@
<context> <context>
<name>Cache</name> <name>Cache</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+1341"/> <location filename="../../src/Cache.cpp" line="+1342"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -12,23 +12,23 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+226"/> <location filename="../../src/ChatPage.cpp" line="+227"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+892"/> <location line="+923"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-463"/> <location line="-471"/>
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source> <source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+428"/> <location line="+436"/>
<source>Room %1 created.</source> <source>Room %1 created.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -68,7 +68,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-817"/> <location line="-825"/>
<source>Failed to upload media. Please try again.</source> <source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -98,7 +98,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+148"/> <location line="+156"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source> <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -151,6 +151,12 @@
<source>Low priority rooms</source> <source>Low priority rooms</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Server Notices</source>
<comment>Tag translation for m.server_notice</comment>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<location line="+2"/> <location line="+2"/>
@ -166,7 +172,7 @@
<context> <context>
<name>EditModal</name> <name>EditModal</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+60"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+72"/>
<source>Apply</source> <source>Apply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -186,6 +192,55 @@
<translation>Sujet</translation> <translation>Sujet</translation>
</message> </message>
</context> </context>
<context>
<name>EmojiPicker</name>
<message>
<location filename="../qml/emoji/EmojiPicker.qml" line="+117"/>
<location line="+139"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-42"/>
<source>People</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Nature</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Food</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Activity</source>
<translation type="unfinished">Activités</translation>
</message>
<message>
<location line="+2"/>
<source>Travel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Objects</source>
<translation type="unfinished">Objets</translation>
</message>
<message>
<location line="+2"/>
<source>Symbols</source>
<translation type="unfinished">Symboles</translation>
</message>
<message>
<location line="+2"/>
<source>Flags</source>
<translation type="unfinished">Drapeaux</translation>
</message>
</context>
<context> <context>
<name>EncryptionIndicator</name> <name>EncryptionIndicator</name>
<message> <message>
@ -202,7 +257,7 @@
<context> <context>
<name>InviteeItem</name> <name>InviteeItem</name>
<message> <message>
<location filename="../../src/InviteeItem.cpp" line="+17"/> <location filename="../../src/InviteeItem.cpp" line="+18"/>
<source>Remove</source> <source>Remove</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -210,7 +265,7 @@
<context> <context>
<name>LoginPage</name> <name>LoginPage</name>
<message> <message>
<location filename="../../src/LoginPage.cpp" line="+89"/> <location filename="../../src/LoginPage.cpp" line="+90"/>
<source>Matrix ID</source> <source>Matrix ID</source>
<translation>Identifiant Matrix</translation> <translation>Identifiant Matrix</translation>
</message> </message>
@ -239,7 +294,7 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source> <source>A name for this device, which will be shown to others, when verifying your devices. If none is provided a default is used.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -250,7 +305,7 @@ Example: https://server.my:8787</source>
</message> </message>
<message> <message>
<location line="+16"/> <location line="+16"/>
<location line="+185"/> <location line="+191"/>
<source>LOGIN</source> <source>LOGIN</source>
<translation>CONNEXION</translation> <translation>CONNEXION</translation>
</message> </message>
@ -365,7 +420,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>RegisterPage</name> <name>RegisterPage</name>
<message> <message>
<location filename="../../src/RegisterPage.cpp" line="+87"/> <location filename="../../src/RegisterPage.cpp" line="+88"/>
<source>Username</source> <source>Username</source>
<translation>Nom d&apos;utilisateur</translation> <translation>Nom d&apos;utilisateur</translation>
</message> </message>
@ -433,7 +488,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+939"/> <location filename="../../src/Cache.cpp" line="+940"/>
<source>no version stored</source> <source>no version stored</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -451,7 +506,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+18"/>
<source>Favourite</source> <source>Favourite</source>
<comment>Standard matrix tag for favourites</comment> <comment>Standard matrix tag for favourites</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -469,7 +524,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+13"/> <location line="+12"/>
<source>Adds or removes the specified tag.</source> <source>Adds or removes the specified tag.</source>
<comment>WhatsThis hint for tag menu actions</comment> <comment>WhatsThis hint for tag menu actions</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -481,14 +536,15 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+4"/>
<source>New Tag</source> <source>New Tag</source>
<comment>Tag name prompt title</comment> <comment>Tag name prompt title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+0"/> <location line="+1"/>
<source>Tag:</source> <source>Tag:</source>
<comment>Tag name prompt</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -505,7 +561,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>SideBarActions</name> <name>SideBarActions</name>
<message> <message>
<location filename="../../src/SideBarActions.cpp" line="+38"/> <location filename="../../src/SideBarActions.cpp" line="+40"/>
<source>User settings</source> <source>User settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -556,7 +612,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TextInputWidget</name> <name>TextInputWidget</name>
<message> <message>
<location filename="../../src/TextInputWidget.cpp" line="+459"/> <location filename="../../src/TextInputWidget.cpp" line="+460"/>
<source>Send a file</source> <source>Send a file</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -577,7 +633,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+84"/> <location line="+86"/>
<source>Select a file</source> <source>Select a file</source>
<translation>Sélectionnez un fichier</translation> <translation>Sélectionnez un fichier</translation>
</message> </message>
@ -595,7 +651,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+891"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -618,7 +674,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+455"/> <location line="+488"/>
<source>Save image</source> <source>Save image</source>
<translation type="unfinished">Enregistrer l&apos;image</translation> <translation type="unfinished">Enregistrer l&apos;image</translation>
</message> </message>
@ -638,7 +694,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-610"/> <location line="-643"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -650,7 +706,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+660"/> <location line="+693"/>
<source>%1 and %2 are typing.</source> <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> <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"> <translation type="unfinished">
@ -723,6 +779,11 @@ Example: https://server.my:8787</source>
<source>%1 changed their avatar.</source> <source>%1 changed their avatar.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>%1 changed some profile info.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>%1 joined.</source> <source>%1 joined.</source>
@ -764,12 +825,12 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-1238"/> <location line="-1281"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1240"/> <location line="+1283"/>
<source>Rejected the knock from %1.</source> <source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -793,7 +854,12 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TimelineRow</name> <name>TimelineRow</name>
<message> <message>
<location filename="../qml/TimelineRow.qml" line="+92"/> <location filename="../qml/TimelineRow.qml" line="+91"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+17"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -807,6 +873,11 @@ Example: https://server.my:8787</source>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+54"/> <location filename="../qml/TimelineView.qml" line="+54"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -846,7 +917,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+257"/> <location line="+259"/>
<source>Close</source> <source>Close</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -900,7 +971,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>UserInfoWidget</name> <name>UserInfoWidget</name>
<message> <message>
<location filename="../../src/UserInfoWidget.cpp" line="+88"/> <location filename="../../src/UserInfoWidget.cpp" line="+91"/>
<source>Logout</source> <source>Logout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -908,70 +979,173 @@ Example: https://server.my:8787</source>
<context> <context>
<name>UserSettingsPage</name> <name>UserSettingsPage</name>
<message> <message>
<location filename="../../src/UserSettingsPage.cpp" line="+339"/> <location filename="../../src/UserSettingsPage.cpp" line="+520"/>
<source>Minimize to tray</source> <source>Minimize to tray</source>
<translation>Réduire à la barre des tâches</translation> <translation>Réduire à la barre des tâches</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+3"/>
<source>Start in tray</source> <source>Start in tray</source>
<translation>Démarrer dans la barre des tâches</translation> <translation>Démarrer dans la barre des tâches</translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+7"/>
<source>Group&apos;s sidebar</source> <source>Group&apos;s sidebar</source>
<translation>Barre latérale des groupes</translation> <translation>Barre latérale des groupes</translation>
</message> </message>
<message> <message>
<location line="-1"/> <location line="-3"/>
<source>Circular Avatars</source> <source>Circular Avatars</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="-5"/>
<source>Decrypt messages in sidebar</source> <source>Keep the application running in the background after closing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Start the application in the background without showing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Change the appearance of user avatars in chats.
OFF - square, ON - Circle.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Show a column containing groups and tags next to the room list.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Decrypt messages in sidebar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Decrypt the messages shown in the sidebar.
Only affects messages in encrypted chats.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show buttons in timeline</source> <source>Show buttons in timeline</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show buttons to quickly reply, react or access additional options next to each message.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Limit width of timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Set the max width of messages in the timeline (in pixels). This can help readability on wide screen, when Nheko is maximised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Typing notifications</source> <source>Typing notifications</source>
<translation>Notifications d&apos;écriture</translation> <translation>Notifications d&apos;écriture</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show who is typing in a room.
This will also enable or disable sending typing notifications to others.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Sort rooms by unreads</source> <source>Sort rooms by unreads</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>Display rooms with new messages first.
If this is off, the list of rooms will only be sorted by the timestamp of the last message in a room.
If this is on, rooms which have active notifications (the small circle with a number in it) will be sorted on top. Rooms, that you have muted, will still be sorted by timestamp, since you don&apos;t seem to consider them as important as the other rooms.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation>Accusés de lecture</translation> <translation>Accusés de lecture</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show if your message was read.
Status is displayed next to timestamps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Send messages as Markdown</source> <source>Send messages as Markdown</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Allow using markdown in messages.
When disabled, all messages are sent as a plain text.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Desktop notifications</source> <source>Desktop notifications</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Notify about received message when the client is not currently focused.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Alert on notification</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show an alert when a message is received.
This usually causes the application icon in the task bar to animate in some fashion.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Highlight message on hover</source> <source>Highlight message on hover</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the background color of messages when you hover over them.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Large Emoji in timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Make font size larger if messages with only a few emojis are displayed.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+5"/> <location line="+5"/>
<source>Scale factor</source> <source>Scale factor</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the scale factor of the whole user interface.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Font size</source> <source>Font size</source>
@ -998,7 +1172,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-60"/> <location line="-113"/>
<source>Session Keys</source> <source>Session Keys</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1018,22 +1192,22 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-64"/> <location line="-71"/>
<source>GENERAL</source> <source>GENERAL</source>
<translation>GÉNÉRAL</translation> <translation>GÉNÉRAL</translation>
</message> </message>
<message> <message>
<location line="+26"/> <location line="+29"/>
<source>INTERFACE</source> <source>INTERFACE</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+109"/> <location line="+166"/>
<source>Emoji Font Family</source> <source>Emoji Font Family</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+163"/> <location line="+179"/>
<source>Open Sessions File</source> <source>Open Sessions File</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1105,7 +1279,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+141"/> <location filename="../../src/Utils.cpp" line="+147"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1179,7 +1353,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>dialogs::InviteUsers</name> <name>dialogs::InviteUsers</name>
<message> <message>
<location filename="../../src/dialogs/InviteUsers.cpp" line="+41"/> <location filename="../../src/dialogs/InviteUsers.cpp" line="+42"/>
<source>Cancel</source> <source>Cancel</source>
<translation type="unfinished">Annuler</translation> <translation type="unfinished">Annuler</translation>
</message> </message>
@ -1276,7 +1450,7 @@ Taille du média : %2
<context> <context>
<name>dialogs::ReadReceipts</name> <name>dialogs::ReadReceipts</name>
<message> <message>
<location filename="../../src/dialogs/ReadReceipts.cpp" line="+117"/> <location filename="../../src/dialogs/ReadReceipts.cpp" line="+120"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation>Accusés de lecture</translation> <translation>Accusés de lecture</translation>
</message> </message>
@ -1289,12 +1463,12 @@ Taille du média : %2
<context> <context>
<name>dialogs::ReceiptItem</name> <name>dialogs::ReceiptItem</name>
<message> <message>
<location line="-44"/> <location line="-46"/>
<source>Today %1</source> <source>Today %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+3"/>
<source>Yesterday %1</source> <source>Yesterday %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1302,7 +1476,7 @@ Taille du média : %2
<context> <context>
<name>dialogs::RoomSettings</name> <name>dialogs::RoomSettings</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+113"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+135"/>
<source>Settings</source> <source>Settings</source>
<translation type="unfinished">Paramètres</translation> <translation type="unfinished">Paramètres</translation>
</message> </message>
@ -1502,7 +1676,7 @@ Taille du média : %2
<context> <context>
<name>message-description sent:</name> <name>message-description sent:</name>
<message> <message>
<location filename="../../src/Utils.h" line="+100"/> <location filename="../../src/Utils.h" line="+103"/>
<source>You sent an audio clip</source> <source>You sent an audio clip</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

@ -4,7 +4,7 @@
<context> <context>
<name>Cache</name> <name>Cache</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+1341"/> <location filename="../../src/Cache.cpp" line="+1342"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation>Sei entrato in questa stanza.</translation> <translation>Sei entrato in questa stanza.</translation>
</message> </message>
@ -12,23 +12,23 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+226"/> <location filename="../../src/ChatPage.cpp" line="+227"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation>Impossibile invitare l&apos;utente: %1</translation> <translation>Impossibile invitare l&apos;utente: %1</translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+892"/> <location line="+923"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation>Invitato utente: %1</translation> <translation>Invitato utente: %1</translation>
</message> </message>
<message> <message>
<location line="-463"/> <location line="-471"/>
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source> <source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
<translation>Migrazione della cache alla versione corrente fallita. Questo può avere diverse cause. Per favore apri una issue e nel frattempo prova ad usare una versione più vecchia. In alternativa puoi provare a cancellare la cache manualmente.</translation> <translation>Migrazione della cache alla versione corrente fallita. Questo può avere diverse cause. Per favore apri una issue e nel frattempo prova ad usare una versione più vecchia. In alternativa puoi provare a cancellare la cache manualmente.</translation>
</message> </message>
<message> <message>
<location line="+428"/> <location line="+436"/>
<source>Room %1 created.</source> <source>Room %1 created.</source>
<translation>Stanza %1 creata.</translation> <translation>Stanza %1 creata.</translation>
</message> </message>
@ -68,7 +68,7 @@
<translation>Rimosso il ban dall&apos;utente: %1</translation> <translation>Rimosso il ban dall&apos;utente: %1</translation>
</message> </message>
<message> <message>
<location line="-817"/> <location line="-825"/>
<source>Failed to upload media. Please try again.</source> <source>Failed to upload media. Please try again.</source>
<translation>Impossibile inviare il file multimediale. Per favore riprova.</translation> <translation>Impossibile inviare il file multimediale. Per favore riprova.</translation>
</message> </message>
@ -98,7 +98,7 @@
<translation>Impossibile ripristinare i dati salvati. Per favore accedi nuovamente.</translation> <translation>Impossibile ripristinare i dati salvati. Per favore accedi nuovamente.</translation>
</message> </message>
<message> <message>
<location line="+148"/> <location line="+156"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source> <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
<translation>Impossibile configurare le chiavi crittografiche. Risposta del server: %1 %2. Per favore riprova in seguito.</translation> <translation>Impossibile configurare le chiavi crittografiche. Risposta del server: %1 %2. Per favore riprova in seguito.</translation>
</message> </message>
@ -151,6 +151,12 @@
<source>Low priority rooms</source> <source>Low priority rooms</source>
<translation>Stanze a bassa priorità</translation> <translation>Stanze a bassa priorità</translation>
</message> </message>
<message>
<location line="+2"/>
<source>Server Notices</source>
<comment>Tag translation for m.server_notice</comment>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<location line="+2"/> <location line="+2"/>
@ -166,7 +172,7 @@
<context> <context>
<name>EditModal</name> <name>EditModal</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+60"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+72"/>
<source>Apply</source> <source>Apply</source>
<translation>Applica</translation> <translation>Applica</translation>
</message> </message>
@ -186,6 +192,55 @@
<translation>Argomento</translation> <translation>Argomento</translation>
</message> </message>
</context> </context>
<context>
<name>EmojiPicker</name>
<message>
<location filename="../qml/emoji/EmojiPicker.qml" line="+117"/>
<location line="+139"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-42"/>
<source>People</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Nature</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Food</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Activity</source>
<translation type="unfinished">Attività</translation>
</message>
<message>
<location line="+2"/>
<source>Travel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Objects</source>
<translation type="unfinished">Oggetti</translation>
</message>
<message>
<location line="+2"/>
<source>Symbols</source>
<translation type="unfinished">Simboli</translation>
</message>
<message>
<location line="+2"/>
<source>Flags</source>
<translation type="unfinished">Bandiere</translation>
</message>
</context>
<context> <context>
<name>EncryptionIndicator</name> <name>EncryptionIndicator</name>
<message> <message>
@ -202,7 +257,7 @@
<context> <context>
<name>InviteeItem</name> <name>InviteeItem</name>
<message> <message>
<location filename="../../src/InviteeItem.cpp" line="+17"/> <location filename="../../src/InviteeItem.cpp" line="+18"/>
<source>Remove</source> <source>Remove</source>
<translation>Rimuovi</translation> <translation>Rimuovi</translation>
</message> </message>
@ -210,7 +265,7 @@
<context> <context>
<name>LoginPage</name> <name>LoginPage</name>
<message> <message>
<location filename="../../src/LoginPage.cpp" line="+89"/> <location filename="../../src/LoginPage.cpp" line="+90"/>
<source>Matrix ID</source> <source>Matrix ID</source>
<translation>ID Matrix</translation> <translation>ID Matrix</translation>
</message> </message>
@ -242,8 +297,8 @@ Se Nheko non conclude la ricerca del tuo homeserver, ti mostrerà un campo in cu
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source> <source>A name for this device, which will be shown to others, when verifying your devices. If none is provided a default is used.</source>
<translation>Un nome per questo dispositivo, che sarà mostrato agli altri mentre si verificano i tuoi dispositivi. Se non ne fornisci uno, verrà usata una stringa casuale per ragioni di privacy. </translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+6"/> <location line="+6"/>
@ -254,7 +309,7 @@ Esempio: https://server.mio:8787</translation>
</message> </message>
<message> <message>
<location line="+16"/> <location line="+16"/>
<location line="+185"/> <location line="+191"/>
<source>LOGIN</source> <source>LOGIN</source>
<translation>ACCEDI</translation> <translation>ACCEDI</translation>
</message> </message>
@ -369,7 +424,7 @@ Esempio: https://server.mio:8787</translation>
<context> <context>
<name>RegisterPage</name> <name>RegisterPage</name>
<message> <message>
<location filename="../../src/RegisterPage.cpp" line="+87"/> <location filename="../../src/RegisterPage.cpp" line="+88"/>
<source>Username</source> <source>Username</source>
<translation>Nome utente</translation> <translation>Nome utente</translation>
</message> </message>
@ -437,7 +492,7 @@ Esempio: https://server.mio:8787</translation>
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+939"/> <location filename="../../src/Cache.cpp" line="+940"/>
<source>no version stored</source> <source>no version stored</source>
<translation>nessuna versione memorizzata</translation> <translation>nessuna versione memorizzata</translation>
</message> </message>
@ -445,12 +500,59 @@ Esempio: https://server.mio:8787</translation>
<context> <context>
<name>RoomInfoListItem</name> <name>RoomInfoListItem</name>
<message> <message>
<location filename="../../src/RoomInfoListItem.cpp" line="+98"/> <location filename="../../src/RoomInfoListItem.cpp" line="+102"/>
<source>Leave room</source> <source>Leave room</source>
<translation>Lascia la stanza</translation> <translation>Lascia la stanza</translation>
</message> </message>
<message> <message>
<location line="+160"/> <location line="+7"/>
<source>Tag room as:</source>
<translation type="unfinished">stanza come:</translation>
</message>
<message>
<location line="+18"/>
<source>Favourite</source>
<comment>Standard matrix tag for favourites</comment>
<translation type="unfinished">Tag matrix standard per i preferiti</translation>
</message>
<message>
<location line="+3"/>
<source>Low Priority</source>
<comment>Standard matrix tag for low priority rooms</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Server Notice</source>
<comment>Standard matrix tag for server notices</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+12"/>
<source>Adds or removes the specified tag.</source>
<comment>WhatsThis hint for tag menu actions</comment>
<translation type="unfinished">Aggiungi o rimuovi il tag specificato.</translation>
</message>
<message>
<location line="+38"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>New Tag</source>
<comment>Tag name prompt title</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Tag:</source>
<comment>Tag name prompt</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+173"/>
<source>Accept</source> <source>Accept</source>
<translation>Accetta</translation> <translation>Accetta</translation>
</message> </message>
@ -463,7 +565,7 @@ Esempio: https://server.mio:8787</translation>
<context> <context>
<name>SideBarActions</name> <name>SideBarActions</name>
<message> <message>
<location filename="../../src/SideBarActions.cpp" line="+38"/> <location filename="../../src/SideBarActions.cpp" line="+40"/>
<source>User settings</source> <source>User settings</source>
<translation>Impostazioni utente</translation> <translation>Impostazioni utente</translation>
</message> </message>
@ -514,7 +616,7 @@ Esempio: https://server.mio:8787</translation>
<context> <context>
<name>TextInputWidget</name> <name>TextInputWidget</name>
<message> <message>
<location filename="../../src/TextInputWidget.cpp" line="+459"/> <location filename="../../src/TextInputWidget.cpp" line="+460"/>
<source>Send a file</source> <source>Send a file</source>
<translation>Invia un file</translation> <translation>Invia un file</translation>
</message> </message>
@ -535,7 +637,7 @@ Esempio: https://server.mio:8787</translation>
<translation>Emoji</translation> <translation>Emoji</translation>
</message> </message>
<message> <message>
<location line="+84"/> <location line="+86"/>
<source>Select a file</source> <source>Select a file</source>
<translation>Seleziona un file</translation> <translation>Seleziona un file</translation>
</message> </message>
@ -553,7 +655,7 @@ Esempio: https://server.mio:8787</translation>
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+891"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation>-- Errore di Decriptazione (impossibile comunicare con il DB) --</translation> <translation>-- Errore di Decriptazione (impossibile comunicare con il DB) --</translation>
@ -576,7 +678,7 @@ Esempio: https://server.mio:8787</translation>
<translation>Oscuramento del messaggio fallito: %1</translation> <translation>Oscuramento del messaggio fallito: %1</translation>
</message> </message>
<message> <message>
<location line="+455"/> <location line="+488"/>
<source>Save image</source> <source>Save image</source>
<translation>Salva immagine</translation> <translation>Salva immagine</translation>
</message> </message>
@ -596,7 +698,7 @@ Esempio: https://server.mio:8787</translation>
<translation>Salva file</translation> <translation>Salva file</translation>
</message> </message>
<message> <message>
<location line="-610"/> <location line="-643"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation>-- Evento Criptato (Chiavi per la decriptazione non trovate) --</translation> <translation>-- Evento Criptato (Chiavi per la decriptazione non trovate) --</translation>
@ -608,7 +710,7 @@ Esempio: https://server.mio:8787</translation>
<translation>-- Evento Criptato (Tipo di evento ignoto) --</translation> <translation>-- Evento Criptato (Tipo di evento ignoto) --</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+660"/> <location line="+693"/>
<source>%1 and %2 are typing.</source> <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> <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> <translation>
@ -681,6 +783,11 @@ Esempio: https://server.mio:8787</translation>
<source>%1 changed their avatar.</source> <source>%1 changed their avatar.</source>
<translation>%1 ha cambiato il suo avatar.</translation> <translation>%1 ha cambiato il suo avatar.</translation>
</message> </message>
<message>
<location line="+2"/>
<source>%1 changed some profile info.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>%1 joined.</source> <source>%1 joined.</source>
@ -722,12 +829,12 @@ Esempio: https://server.mio:8787</translation>
<translation>%1 ha oscurato la sua bussata.</translation> <translation>%1 ha oscurato la sua bussata.</translation>
</message> </message>
<message> <message>
<location line="-1238"/> <location line="-1281"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation>Sei entrato in questa stanza.</translation> <translation>Sei entrato in questa stanza.</translation>
</message> </message>
<message> <message>
<location line="+1240"/> <location line="+1283"/>
<source>Rejected the knock from %1.</source> <source>Rejected the knock from %1.</source>
<translation>Rifiutata la bussata di %1.</translation> <translation>Rifiutata la bussata di %1.</translation>
</message> </message>
@ -751,7 +858,12 @@ Esempio: https://server.mio:8787</translation>
<context> <context>
<name>TimelineRow</name> <name>TimelineRow</name>
<message> <message>
<location filename="../qml/TimelineRow.qml" line="+88"/> <location filename="../qml/TimelineRow.qml" line="+91"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+17"/>
<source>Reply</source> <source>Reply</source>
<translation>Rispondi</translation> <translation>Rispondi</translation>
</message> </message>
@ -764,7 +876,12 @@ Esempio: https://server.mio:8787</translation>
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+53"/> <location filename="../qml/TimelineView.qml" line="+54"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Reply</source> <source>Reply</source>
<translation>Risposta</translation> <translation>Risposta</translation>
</message> </message>
@ -804,7 +921,7 @@ Esempio: https://server.mio:8787</translation>
<translation>Nessuna stanza aperta</translation> <translation>Nessuna stanza aperta</translation>
</message> </message>
<message> <message>
<location line="+256"/> <location line="+259"/>
<source>Close</source> <source>Close</source>
<translation>Chiudi</translation> <translation>Chiudi</translation>
</message> </message>
@ -858,7 +975,7 @@ Esempio: https://server.mio:8787</translation>
<context> <context>
<name>UserInfoWidget</name> <name>UserInfoWidget</name>
<message> <message>
<location filename="../../src/UserInfoWidget.cpp" line="+88"/> <location filename="../../src/UserInfoWidget.cpp" line="+91"/>
<source>Logout</source> <source>Logout</source>
<translation>Disconnettiti</translation> <translation>Disconnettiti</translation>
</message> </message>
@ -866,65 +983,173 @@ Esempio: https://server.mio:8787</translation>
<context> <context>
<name>UserSettingsPage</name> <name>UserSettingsPage</name>
<message> <message>
<location filename="../../src/UserSettingsPage.cpp" line="+335"/> <location filename="../../src/UserSettingsPage.cpp" line="+520"/>
<source>Minimize to tray</source> <source>Minimize to tray</source>
<translation>Minimizza nella tray</translation> <translation>Minimizza nella tray</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+3"/>
<source>Start in tray</source> <source>Start in tray</source>
<translation>Avvia nella tray</translation> <translation>Avvia nella tray</translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+7"/>
<source>Group&apos;s sidebar</source> <source>Group&apos;s sidebar</source>
<translation>Barra laterale dei gruppi</translation> <translation>Barra laterale dei gruppi</translation>
</message> </message>
<message> <message>
<location line="-1"/> <location line="-3"/>
<source>Circular Avatars</source> <source>Circular Avatars</source>
<translation>Avatar Circolari</translation> <translation>Avatar Circolari</translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="-5"/>
<source>Keep the application running in the background after closing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Start the application in the background without showing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Change the appearance of user avatars in chats.
OFF - square, ON - Circle.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Show a column containing groups and tags next to the room list.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Decrypt messages in sidebar</source> <source>Decrypt messages in sidebar</source>
<translation>Decripta messaggi nella barra laterale</translation> <translation>Decripta messaggi nella barra laterale</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Decrypt the messages shown in the sidebar.
Only affects messages in encrypted chats.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show buttons in timeline</source> <source>Show buttons in timeline</source>
<translation>Mostra pulsanti nella timeline</translation> <translation>Mostra pulsanti nella timeline</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show buttons to quickly reply, react or access additional options next to each message.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Limit width of timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Set the max width of messages in the timeline (in pixels). This can help readability on wide screen, when Nheko is maximised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Typing notifications</source> <source>Typing notifications</source>
<translation>Notifiche di scrittura</translation> <translation>Notifiche di scrittura</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show who is typing in a room.
This will also enable or disable sending typing notifications to others.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Sort rooms by unreads</source> <source>Sort rooms by unreads</source>
<translation>Ordina stanze per non letti</translation> <translation>Ordina stanze per non letti</translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>Display rooms with new messages first.
If this is off, the list of rooms will only be sorted by the timestamp of the last message in a room.
If this is on, rooms which have active notifications (the small circle with a number in it) will be sorted on top. Rooms, that you have muted, will still be sorted by timestamp, since you don&apos;t seem to consider them as important as the other rooms.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation>Ricevute di lettura</translation> <translation>Ricevute di lettura</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show if your message was read.
Status is displayed next to timestamps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Send messages as Markdown</source> <source>Send messages as Markdown</source>
<translation>Invia messaggi come Markdown</translation> <translation>Invia messaggi come Markdown</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Allow using markdown in messages.
When disabled, all messages are sent as a plain text.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Desktop notifications</source> <source>Desktop notifications</source>
<translation>Notifiche desktop</translation> <translation>Notifiche desktop</translation>
</message> </message>
<message>
<location line="+2"/>
<source>Notify about received message when the client is not currently focused.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Alert on notification</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show an alert when a message is received.
This usually causes the application icon in the task bar to animate in some fashion.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Highlight message on hover</source>
<translation type="unfinished">Evidenzia il messaggio al passaggio del mouse</translation>
</message>
<message>
<location line="+2"/>
<source>Change the background color of messages when you hover over them.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Large Emoji in timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Make font size larger if messages with only a few emojis are displayed.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+5"/> <location line="+5"/>
<source>Scale factor</source> <source>Scale factor</source>
<translation>Fattore di scala</translation> <translation>Fattore di scala</translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the scale factor of the whole user interface.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Font size</source> <source>Font size</source>
@ -951,7 +1176,7 @@ Esempio: https://server.mio:8787</translation>
<translation>Impronta digitale del dispositivo</translation> <translation>Impronta digitale del dispositivo</translation>
</message> </message>
<message> <message>
<location line="-59"/> <location line="-113"/>
<source>Session Keys</source> <source>Session Keys</source>
<translation>Chiavi di Sessione</translation> <translation>Chiavi di Sessione</translation>
</message> </message>
@ -971,22 +1196,22 @@ Esempio: https://server.mio:8787</translation>
<translation>CRITTOGRAFIA</translation> <translation>CRITTOGRAFIA</translation>
</message> </message>
<message> <message>
<location line="-63"/> <location line="-71"/>
<source>GENERAL</source> <source>GENERAL</source>
<translation>GENERALE</translation> <translation>GENERALE</translation>
</message> </message>
<message> <message>
<location line="+25"/> <location line="+29"/>
<source>INTERFACE</source> <source>INTERFACE</source>
<translation>INTERFACCIA</translation> <translation>INTERFACCIA</translation>
</message> </message>
<message> <message>
<location line="+108"/> <location line="+166"/>
<source>Emoji Font Family</source> <source>Emoji Font Family</source>
<translation>Famiglia dei caratteri delle Emoji</translation> <translation>Famiglia dei caratteri delle Emoji</translation>
</message> </message>
<message> <message>
<location line="+158"/> <location line="+179"/>
<source>Open Sessions File</source> <source>Open Sessions File</source>
<translation>Apri File delle Sessioni</translation> <translation>Apri File delle Sessioni</translation>
</message> </message>
@ -1058,7 +1283,7 @@ Esempio: https://server.mio:8787</translation>
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+141"/> <location filename="../../src/Utils.cpp" line="+147"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation>Ieri</translation> <translation>Ieri</translation>
</message> </message>
@ -1132,7 +1357,7 @@ Esempio: https://server.mio:8787</translation>
<context> <context>
<name>dialogs::InviteUsers</name> <name>dialogs::InviteUsers</name>
<message> <message>
<location filename="../../src/dialogs/InviteUsers.cpp" line="+41"/> <location filename="../../src/dialogs/InviteUsers.cpp" line="+42"/>
<source>Cancel</source> <source>Cancel</source>
<translation>Annulla</translation> <translation>Annulla</translation>
</message> </message>
@ -1229,7 +1454,7 @@ Peso media: %2
<context> <context>
<name>dialogs::ReadReceipts</name> <name>dialogs::ReadReceipts</name>
<message> <message>
<location filename="../../src/dialogs/ReadReceipts.cpp" line="+117"/> <location filename="../../src/dialogs/ReadReceipts.cpp" line="+120"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation>Ricevute di lettura</translation> <translation>Ricevute di lettura</translation>
</message> </message>
@ -1242,12 +1467,12 @@ Peso media: %2
<context> <context>
<name>dialogs::ReceiptItem</name> <name>dialogs::ReceiptItem</name>
<message> <message>
<location line="-44"/> <location line="-46"/>
<source>Today %1</source> <source>Today %1</source>
<translation>Oggi %1</translation> <translation>Oggi %1</translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+3"/>
<source>Yesterday %1</source> <source>Yesterday %1</source>
<translation>Ieri %1</translation> <translation>Ieri %1</translation>
</message> </message>
@ -1255,7 +1480,7 @@ Peso media: %2
<context> <context>
<name>dialogs::RoomSettings</name> <name>dialogs::RoomSettings</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+113"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+135"/>
<source>Settings</source> <source>Settings</source>
<translation>Impostazioni</translation> <translation>Impostazioni</translation>
</message> </message>
@ -1457,7 +1682,7 @@ Peso media: %2
<context> <context>
<name>message-description sent:</name> <name>message-description sent:</name>
<message> <message>
<location filename="../../src/Utils.h" line="+100"/> <location filename="../../src/Utils.h" line="+103"/>
<source>You sent an audio clip</source> <source>You sent an audio clip</source>
<translation>Hai inviato una clip audio</translation> <translation>Hai inviato una clip audio</translation>
</message> </message>
@ -1558,29 +1783,4 @@ Peso media: %2
<translation>Tipo di Messaggio sconosciuto</translation> <translation>Tipo di Messaggio sconosciuto</translation>
</message> </message>
</context> </context>
<context>
<name></name>
<message>
<location line="+7"/>
<source>Tag room as:</source>
<translation>stanza come:</translation>
</message>
<message>
<location line="+7"/>
<source>Favourite</source>
<comment>Standard matrix tag for favourites</comment>
<translation>Tag matrix standard per i preferiti</translation>
</message>
<message>
<location line="+13"/>
<source>Adds or removes the specified tag.</source>
<comment>WhatsThis hint for tag menu actions</comment>
<translation>Aggiungi o rimuovi il tag specificato.</translation>
</message>
<message>
<location line="+1"/>
<source>Highlight message on hover</source>
<translation>Evidenzia il messaggio al passaggio del mouse</translation>
</message>
</context>
</TS> </TS>

@ -4,7 +4,7 @@
<context> <context>
<name>Cache</name> <name>Cache</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+1341"/> <location filename="../../src/Cache.cpp" line="+1342"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -12,23 +12,23 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+226"/> <location filename="../../src/ChatPage.cpp" line="+227"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation>: %1</translation> <translation>: %1</translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+892"/> <location line="+923"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation>: %1</translation> <translation>: %1</translation>
</message> </message>
<message> <message>
<location line="-463"/> <location line="-471"/>
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source> <source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+428"/> <location line="+436"/>
<source>Room %1 created.</source> <source>Room %1 created.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -68,7 +68,7 @@
<translation>: %1</translation> <translation>: %1</translation>
</message> </message>
<message> <message>
<location line="-817"/> <location line="-825"/>
<source>Failed to upload media. Please try again.</source> <source>Failed to upload media. Please try again.</source>
<translation></translation> <translation></translation>
</message> </message>
@ -98,7 +98,7 @@
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+148"/> <location line="+156"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source> <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
<translation>: %1 %2. </translation> <translation>: %1 %2. </translation>
</message> </message>
@ -151,6 +151,12 @@
<source>Low priority rooms</source> <source>Low priority rooms</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Server Notices</source>
<comment>Tag translation for m.server_notice</comment>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<location line="+2"/> <location line="+2"/>
@ -166,7 +172,7 @@
<context> <context>
<name>EditModal</name> <name>EditModal</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+60"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+72"/>
<source>Apply</source> <source>Apply</source>
<translation></translation> <translation></translation>
</message> </message>
@ -186,6 +192,55 @@
<translation></translation> <translation></translation>
</message> </message>
</context> </context>
<context>
<name>EmojiPicker</name>
<message>
<location filename="../qml/emoji/EmojiPicker.qml" line="+117"/>
<location line="+139"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-42"/>
<source>People</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Nature</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Food</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Activity</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Travel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Symbols</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Flags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>EncryptionIndicator</name> <name>EncryptionIndicator</name>
<message> <message>
@ -202,7 +257,7 @@
<context> <context>
<name>InviteeItem</name> <name>InviteeItem</name>
<message> <message>
<location filename="../../src/InviteeItem.cpp" line="+17"/> <location filename="../../src/InviteeItem.cpp" line="+18"/>
<source>Remove</source> <source>Remove</source>
<translation></translation> <translation></translation>
</message> </message>
@ -210,7 +265,7 @@
<context> <context>
<name>LoginPage</name> <name>LoginPage</name>
<message> <message>
<location filename="../../src/LoginPage.cpp" line="+89"/> <location filename="../../src/LoginPage.cpp" line="+90"/>
<source>Matrix ID</source> <source>Matrix ID</source>
<translation>Matrix ID</translation> <translation>Matrix ID</translation>
</message> </message>
@ -239,7 +294,7 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source> <source>A name for this device, which will be shown to others, when verifying your devices. If none is provided a default is used.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -250,7 +305,7 @@ Example: https://server.my:8787</source>
</message> </message>
<message> <message>
<location line="+16"/> <location line="+16"/>
<location line="+185"/> <location line="+191"/>
<source>LOGIN</source> <source>LOGIN</source>
<translation></translation> <translation></translation>
</message> </message>
@ -365,7 +420,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>RegisterPage</name> <name>RegisterPage</name>
<message> <message>
<location filename="../../src/RegisterPage.cpp" line="+87"/> <location filename="../../src/RegisterPage.cpp" line="+88"/>
<source>Username</source> <source>Username</source>
<translation></translation> <translation></translation>
</message> </message>
@ -433,7 +488,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+939"/> <location filename="../../src/Cache.cpp" line="+940"/>
<source>no version stored</source> <source>no version stored</source>
<translation></translation> <translation></translation>
</message> </message>
@ -451,7 +506,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+18"/>
<source>Favourite</source> <source>Favourite</source>
<comment>Standard matrix tag for favourites</comment> <comment>Standard matrix tag for favourites</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -469,7 +524,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+13"/> <location line="+12"/>
<source>Adds or removes the specified tag.</source> <source>Adds or removes the specified tag.</source>
<comment>WhatsThis hint for tag menu actions</comment> <comment>WhatsThis hint for tag menu actions</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -481,14 +536,15 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+4"/>
<source>New Tag</source> <source>New Tag</source>
<comment>Tag name prompt title</comment> <comment>Tag name prompt title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+0"/> <location line="+1"/>
<source>Tag:</source> <source>Tag:</source>
<comment>Tag name prompt</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -505,7 +561,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>SideBarActions</name> <name>SideBarActions</name>
<message> <message>
<location filename="../../src/SideBarActions.cpp" line="+38"/> <location filename="../../src/SideBarActions.cpp" line="+40"/>
<source>User settings</source> <source>User settings</source>
<translation></translation> <translation></translation>
</message> </message>
@ -556,7 +612,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TextInputWidget</name> <name>TextInputWidget</name>
<message> <message>
<location filename="../../src/TextInputWidget.cpp" line="+459"/> <location filename="../../src/TextInputWidget.cpp" line="+460"/>
<source>Send a file</source> <source>Send a file</source>
<translation></translation> <translation></translation>
</message> </message>
@ -577,7 +633,7 @@ Example: https://server.my:8787</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+84"/> <location line="+86"/>
<source>Select a file</source> <source>Select a file</source>
<translation></translation> <translation></translation>
</message> </message>
@ -595,7 +651,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+891"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation>-- () --</translation> <translation>-- () --</translation>
@ -618,7 +674,7 @@ Example: https://server.my:8787</source>
<translation>: %1</translation> <translation>: %1</translation>
</message> </message>
<message> <message>
<location line="+455"/> <location line="+488"/>
<source>Save image</source> <source>Save image</source>
<translation></translation> <translation></translation>
</message> </message>
@ -638,7 +694,7 @@ Example: https://server.my:8787</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="-610"/> <location line="-643"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished">-- () --</translation> <translation type="unfinished">-- () --</translation>
@ -650,7 +706,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished">-- () --</translation> <translation type="unfinished">-- () --</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+660"/> <location line="+693"/>
<source>%1 and %2 are typing.</source> <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> <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> <translation>
@ -722,6 +778,11 @@ Example: https://server.my:8787</source>
<source>%1 changed their avatar.</source> <source>%1 changed their avatar.</source>
<translation>%1</translation> <translation>%1</translation>
</message> </message>
<message>
<location line="+2"/>
<source>%1 changed some profile info.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>%1 joined.</source> <source>%1 joined.</source>
@ -763,12 +824,12 @@ Example: https://server.my:8787</source>
<translation>%1</translation> <translation>%1</translation>
</message> </message>
<message> <message>
<location line="-1238"/> <location line="-1281"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1240"/> <location line="+1283"/>
<source>Rejected the knock from %1.</source> <source>Rejected the knock from %1.</source>
<translation>%1</translation> <translation>%1</translation>
</message> </message>
@ -792,7 +853,12 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TimelineRow</name> <name>TimelineRow</name>
<message> <message>
<location filename="../qml/TimelineRow.qml" line="+92"/> <location filename="../qml/TimelineRow.qml" line="+91"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+17"/>
<source>Reply</source> <source>Reply</source>
<translation></translation> <translation></translation>
</message> </message>
@ -806,6 +872,11 @@ Example: https://server.my:8787</source>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+54"/> <location filename="../qml/TimelineView.qml" line="+54"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -845,7 +916,7 @@ Example: https://server.my:8787</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+257"/> <location line="+259"/>
<source>Close</source> <source>Close</source>
<translation></translation> <translation></translation>
</message> </message>
@ -899,7 +970,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>UserInfoWidget</name> <name>UserInfoWidget</name>
<message> <message>
<location filename="../../src/UserInfoWidget.cpp" line="+88"/> <location filename="../../src/UserInfoWidget.cpp" line="+91"/>
<source>Logout</source> <source>Logout</source>
<translation></translation> <translation></translation>
</message> </message>
@ -907,70 +978,173 @@ Example: https://server.my:8787</source>
<context> <context>
<name>UserSettingsPage</name> <name>UserSettingsPage</name>
<message> <message>
<location filename="../../src/UserSettingsPage.cpp" line="+339"/> <location filename="../../src/UserSettingsPage.cpp" line="+520"/>
<source>Minimize to tray</source> <source>Minimize to tray</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+3"/>
<source>Start in tray</source> <source>Start in tray</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+7"/>
<source>Group&apos;s sidebar</source> <source>Group&apos;s sidebar</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="-1"/> <location line="-3"/>
<source>Circular Avatars</source> <source>Circular Avatars</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="-5"/>
<source>Decrypt messages in sidebar</source> <source>Keep the application running in the background after closing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Start the application in the background without showing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Change the appearance of user avatars in chats.
OFF - square, ON - Circle.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Show a column containing groups and tags next to the room list.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Decrypt messages in sidebar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Decrypt the messages shown in the sidebar.
Only affects messages in encrypted chats.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show buttons in timeline</source> <source>Show buttons in timeline</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show buttons to quickly reply, react or access additional options next to each message.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Limit width of timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Set the max width of messages in the timeline (in pixels). This can help readability on wide screen, when Nheko is maximised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Typing notifications</source> <source>Typing notifications</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show who is typing in a room.
This will also enable or disable sending typing notifications to others.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Sort rooms by unreads</source> <source>Sort rooms by unreads</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>Display rooms with new messages first.
If this is off, the list of rooms will only be sorted by the timestamp of the last message in a room.
If this is on, rooms which have active notifications (the small circle with a number in it) will be sorted on top. Rooms, that you have muted, will still be sorted by timestamp, since you don&apos;t seem to consider them as important as the other rooms.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show if your message was read.
Status is displayed next to timestamps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Send messages as Markdown</source> <source>Send messages as Markdown</source>
<translation>Markdownとして送信</translation> <translation>Markdownとして送信</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Allow using markdown in messages.
When disabled, all messages are sent as a plain text.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Desktop notifications</source> <source>Desktop notifications</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Notify about received message when the client is not currently focused.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Alert on notification</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show an alert when a message is received.
This usually causes the application icon in the task bar to animate in some fashion.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Highlight message on hover</source> <source>Highlight message on hover</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the background color of messages when you hover over them.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Large Emoji in timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Make font size larger if messages with only a few emojis are displayed.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+5"/> <location line="+5"/>
<source>Scale factor</source> <source>Scale factor</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the scale factor of the whole user interface.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Font size</source> <source>Font size</source>
@ -997,7 +1171,7 @@ Example: https://server.my:8787</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="-60"/> <location line="-113"/>
<source>Session Keys</source> <source>Session Keys</source>
<translation></translation> <translation></translation>
</message> </message>
@ -1017,22 +1191,22 @@ Example: https://server.my:8787</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="-64"/> <location line="-71"/>
<source>GENERAL</source> <source>GENERAL</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+26"/> <location line="+29"/>
<source>INTERFACE</source> <source>INTERFACE</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+109"/> <location line="+166"/>
<source>Emoji Font Family</source> <source>Emoji Font Family</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+163"/> <location line="+179"/>
<source>Open Sessions File</source> <source>Open Sessions File</source>
<translation></translation> <translation></translation>
</message> </message>
@ -1104,7 +1278,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+141"/> <location filename="../../src/Utils.cpp" line="+147"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation></translation> <translation></translation>
</message> </message>
@ -1178,7 +1352,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>dialogs::InviteUsers</name> <name>dialogs::InviteUsers</name>
<message> <message>
<location filename="../../src/dialogs/InviteUsers.cpp" line="+41"/> <location filename="../../src/dialogs/InviteUsers.cpp" line="+42"/>
<source>Cancel</source> <source>Cancel</source>
<translation></translation> <translation></translation>
</message> </message>
@ -1275,7 +1449,7 @@ Media size: %2
<context> <context>
<name>dialogs::ReadReceipts</name> <name>dialogs::ReadReceipts</name>
<message> <message>
<location filename="../../src/dialogs/ReadReceipts.cpp" line="+117"/> <location filename="../../src/dialogs/ReadReceipts.cpp" line="+120"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation></translation> <translation></translation>
</message> </message>
@ -1288,12 +1462,12 @@ Media size: %2
<context> <context>
<name>dialogs::ReceiptItem</name> <name>dialogs::ReceiptItem</name>
<message> <message>
<location line="-44"/> <location line="-46"/>
<source>Today %1</source> <source>Today %1</source>
<translation> %1</translation> <translation> %1</translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+3"/>
<source>Yesterday %1</source> <source>Yesterday %1</source>
<translation> %1</translation> <translation> %1</translation>
</message> </message>
@ -1301,7 +1475,7 @@ Media size: %2
<context> <context>
<name>dialogs::RoomSettings</name> <name>dialogs::RoomSettings</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+113"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+135"/>
<source>Settings</source> <source>Settings</source>
<translation></translation> <translation></translation>
</message> </message>
@ -1502,7 +1676,7 @@ Media size: %2
<context> <context>
<name>message-description sent:</name> <name>message-description sent:</name>
<message> <message>
<location filename="../../src/Utils.h" line="+100"/> <location filename="../../src/Utils.h" line="+103"/>
<source>You sent an audio clip</source> <source>You sent an audio clip</source>
<translation></translation> <translation></translation>
</message> </message>

@ -4,7 +4,7 @@
<context> <context>
<name>Cache</name> <name>Cache</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+1341"/> <location filename="../../src/Cache.cpp" line="+1342"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -12,23 +12,23 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+226"/> <location filename="../../src/ChatPage.cpp" line="+227"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+892"/> <location line="+923"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-463"/> <location line="-471"/>
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source> <source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+428"/> <location line="+436"/>
<source>Room %1 created.</source> <source>Room %1 created.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -68,7 +68,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-817"/> <location line="-825"/>
<source>Failed to upload media. Please try again.</source> <source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -98,7 +98,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+148"/> <location line="+156"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source> <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -151,6 +151,12 @@
<source>Low priority rooms</source> <source>Low priority rooms</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Server Notices</source>
<comment>Tag translation for m.server_notice</comment>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<location line="+2"/> <location line="+2"/>
@ -166,7 +172,7 @@
<context> <context>
<name>EditModal</name> <name>EditModal</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+60"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+72"/>
<source>Apply</source> <source>Apply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -186,6 +192,55 @@
<translation>Onderwerp</translation> <translation>Onderwerp</translation>
</message> </message>
</context> </context>
<context>
<name>EmojiPicker</name>
<message>
<location filename="../qml/emoji/EmojiPicker.qml" line="+117"/>
<location line="+139"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-42"/>
<source>People</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Nature</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Food</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Activity</source>
<translation type="unfinished">Activiteit</translation>
</message>
<message>
<location line="+2"/>
<source>Travel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Objects</source>
<translation type="unfinished">Objecten</translation>
</message>
<message>
<location line="+2"/>
<source>Symbols</source>
<translation type="unfinished">Symbolen</translation>
</message>
<message>
<location line="+2"/>
<source>Flags</source>
<translation type="unfinished">Vlaggen</translation>
</message>
</context>
<context> <context>
<name>EncryptionIndicator</name> <name>EncryptionIndicator</name>
<message> <message>
@ -202,7 +257,7 @@
<context> <context>
<name>InviteeItem</name> <name>InviteeItem</name>
<message> <message>
<location filename="../../src/InviteeItem.cpp" line="+17"/> <location filename="../../src/InviteeItem.cpp" line="+18"/>
<source>Remove</source> <source>Remove</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -210,7 +265,7 @@
<context> <context>
<name>LoginPage</name> <name>LoginPage</name>
<message> <message>
<location filename="../../src/LoginPage.cpp" line="+89"/> <location filename="../../src/LoginPage.cpp" line="+90"/>
<source>Matrix ID</source> <source>Matrix ID</source>
<translation>Matrix-id</translation> <translation>Matrix-id</translation>
</message> </message>
@ -239,7 +294,7 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source> <source>A name for this device, which will be shown to others, when verifying your devices. If none is provided a default is used.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -250,7 +305,7 @@ Example: https://server.my:8787</source>
</message> </message>
<message> <message>
<location line="+16"/> <location line="+16"/>
<location line="+185"/> <location line="+191"/>
<source>LOGIN</source> <source>LOGIN</source>
<translation>INLOGGEN</translation> <translation>INLOGGEN</translation>
</message> </message>
@ -365,7 +420,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>RegisterPage</name> <name>RegisterPage</name>
<message> <message>
<location filename="../../src/RegisterPage.cpp" line="+87"/> <location filename="../../src/RegisterPage.cpp" line="+88"/>
<source>Username</source> <source>Username</source>
<translation>Gebruikersnaam</translation> <translation>Gebruikersnaam</translation>
</message> </message>
@ -433,7 +488,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+939"/> <location filename="../../src/Cache.cpp" line="+940"/>
<source>no version stored</source> <source>no version stored</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -451,7 +506,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+18"/>
<source>Favourite</source> <source>Favourite</source>
<comment>Standard matrix tag for favourites</comment> <comment>Standard matrix tag for favourites</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -469,7 +524,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+13"/> <location line="+12"/>
<source>Adds or removes the specified tag.</source> <source>Adds or removes the specified tag.</source>
<comment>WhatsThis hint for tag menu actions</comment> <comment>WhatsThis hint for tag menu actions</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -481,14 +536,15 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+4"/>
<source>New Tag</source> <source>New Tag</source>
<comment>Tag name prompt title</comment> <comment>Tag name prompt title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+0"/> <location line="+1"/>
<source>Tag:</source> <source>Tag:</source>
<comment>Tag name prompt</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -505,7 +561,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>SideBarActions</name> <name>SideBarActions</name>
<message> <message>
<location filename="../../src/SideBarActions.cpp" line="+38"/> <location filename="../../src/SideBarActions.cpp" line="+40"/>
<source>User settings</source> <source>User settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -556,7 +612,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TextInputWidget</name> <name>TextInputWidget</name>
<message> <message>
<location filename="../../src/TextInputWidget.cpp" line="+459"/> <location filename="../../src/TextInputWidget.cpp" line="+460"/>
<source>Send a file</source> <source>Send a file</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -577,7 +633,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+84"/> <location line="+86"/>
<source>Select a file</source> <source>Select a file</source>
<translation>Kies een bestand</translation> <translation>Kies een bestand</translation>
</message> </message>
@ -595,7 +651,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+891"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -618,7 +674,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+455"/> <location line="+488"/>
<source>Save image</source> <source>Save image</source>
<translation type="unfinished">Afbeelding opslaan</translation> <translation type="unfinished">Afbeelding opslaan</translation>
</message> </message>
@ -638,7 +694,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-610"/> <location line="-643"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -650,7 +706,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+660"/> <location line="+693"/>
<source>%1 and %2 are typing.</source> <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> <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"> <translation type="unfinished">
@ -723,6 +779,11 @@ Example: https://server.my:8787</source>
<source>%1 changed their avatar.</source> <source>%1 changed their avatar.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>%1 changed some profile info.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>%1 joined.</source> <source>%1 joined.</source>
@ -764,12 +825,12 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-1238"/> <location line="-1281"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1240"/> <location line="+1283"/>
<source>Rejected the knock from %1.</source> <source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -793,7 +854,12 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TimelineRow</name> <name>TimelineRow</name>
<message> <message>
<location filename="../qml/TimelineRow.qml" line="+92"/> <location filename="../qml/TimelineRow.qml" line="+91"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+17"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -807,6 +873,11 @@ Example: https://server.my:8787</source>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+54"/> <location filename="../qml/TimelineView.qml" line="+54"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -846,7 +917,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+257"/> <location line="+259"/>
<source>Close</source> <source>Close</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -900,7 +971,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>UserInfoWidget</name> <name>UserInfoWidget</name>
<message> <message>
<location filename="../../src/UserInfoWidget.cpp" line="+88"/> <location filename="../../src/UserInfoWidget.cpp" line="+91"/>
<source>Logout</source> <source>Logout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -908,70 +979,173 @@ Example: https://server.my:8787</source>
<context> <context>
<name>UserSettingsPage</name> <name>UserSettingsPage</name>
<message> <message>
<location filename="../../src/UserSettingsPage.cpp" line="+339"/> <location filename="../../src/UserSettingsPage.cpp" line="+520"/>
<source>Minimize to tray</source> <source>Minimize to tray</source>
<translation>Minimaliseren naar systeemvak</translation> <translation>Minimaliseren naar systeemvak</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+3"/>
<source>Start in tray</source> <source>Start in tray</source>
<translation>Geminimaliseerd opstarten</translation> <translation>Geminimaliseerd opstarten</translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+7"/>
<source>Group&apos;s sidebar</source> <source>Group&apos;s sidebar</source>
<translation>Zijbalk van groep</translation> <translation>Zijbalk van groep</translation>
</message> </message>
<message> <message>
<location line="-1"/> <location line="-3"/>
<source>Circular Avatars</source> <source>Circular Avatars</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="-5"/>
<source>Decrypt messages in sidebar</source> <source>Keep the application running in the background after closing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Start the application in the background without showing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Change the appearance of user avatars in chats.
OFF - square, ON - Circle.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Show a column containing groups and tags next to the room list.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Decrypt messages in sidebar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Decrypt the messages shown in the sidebar.
Only affects messages in encrypted chats.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show buttons in timeline</source> <source>Show buttons in timeline</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show buttons to quickly reply, react or access additional options next to each message.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Limit width of timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Set the max width of messages in the timeline (in pixels). This can help readability on wide screen, when Nheko is maximised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Typing notifications</source> <source>Typing notifications</source>
<translation>Meldingen bij typen van berichten</translation> <translation>Meldingen bij typen van berichten</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show who is typing in a room.
This will also enable or disable sending typing notifications to others.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Sort rooms by unreads</source> <source>Sort rooms by unreads</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>Display rooms with new messages first.
If this is off, the list of rooms will only be sorted by the timestamp of the last message in a room.
If this is on, rooms which have active notifications (the small circle with a number in it) will be sorted on top. Rooms, that you have muted, will still be sorted by timestamp, since you don&apos;t seem to consider them as important as the other rooms.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation>Leesbevestigingen</translation> <translation>Leesbevestigingen</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show if your message was read.
Status is displayed next to timestamps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Send messages as Markdown</source> <source>Send messages as Markdown</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Allow using markdown in messages.
When disabled, all messages are sent as a plain text.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Desktop notifications</source> <source>Desktop notifications</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Notify about received message when the client is not currently focused.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Alert on notification</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show an alert when a message is received.
This usually causes the application icon in the task bar to animate in some fashion.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Highlight message on hover</source> <source>Highlight message on hover</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the background color of messages when you hover over them.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Large Emoji in timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Make font size larger if messages with only a few emojis are displayed.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+5"/> <location line="+5"/>
<source>Scale factor</source> <source>Scale factor</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the scale factor of the whole user interface.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Font size</source> <source>Font size</source>
@ -998,7 +1172,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-60"/> <location line="-113"/>
<source>Session Keys</source> <source>Session Keys</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1018,22 +1192,22 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-64"/> <location line="-71"/>
<source>GENERAL</source> <source>GENERAL</source>
<translation>ALGEMEEN</translation> <translation>ALGEMEEN</translation>
</message> </message>
<message> <message>
<location line="+26"/> <location line="+29"/>
<source>INTERFACE</source> <source>INTERFACE</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+109"/> <location line="+166"/>
<source>Emoji Font Family</source> <source>Emoji Font Family</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+163"/> <location line="+179"/>
<source>Open Sessions File</source> <source>Open Sessions File</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1105,7 +1279,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+141"/> <location filename="../../src/Utils.cpp" line="+147"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1179,7 +1353,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>dialogs::InviteUsers</name> <name>dialogs::InviteUsers</name>
<message> <message>
<location filename="../../src/dialogs/InviteUsers.cpp" line="+41"/> <location filename="../../src/dialogs/InviteUsers.cpp" line="+42"/>
<source>Cancel</source> <source>Cancel</source>
<translation type="unfinished">Annuleren</translation> <translation type="unfinished">Annuleren</translation>
</message> </message>
@ -1276,7 +1450,7 @@ Mediagrootte: %2
<context> <context>
<name>dialogs::ReadReceipts</name> <name>dialogs::ReadReceipts</name>
<message> <message>
<location filename="../../src/dialogs/ReadReceipts.cpp" line="+117"/> <location filename="../../src/dialogs/ReadReceipts.cpp" line="+120"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation>Leesbevestigingen</translation> <translation>Leesbevestigingen</translation>
</message> </message>
@ -1289,12 +1463,12 @@ Mediagrootte: %2
<context> <context>
<name>dialogs::ReceiptItem</name> <name>dialogs::ReceiptItem</name>
<message> <message>
<location line="-44"/> <location line="-46"/>
<source>Today %1</source> <source>Today %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+3"/>
<source>Yesterday %1</source> <source>Yesterday %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1302,7 +1476,7 @@ Mediagrootte: %2
<context> <context>
<name>dialogs::RoomSettings</name> <name>dialogs::RoomSettings</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+113"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+135"/>
<source>Settings</source> <source>Settings</source>
<translation type="unfinished">Instellingen</translation> <translation type="unfinished">Instellingen</translation>
</message> </message>
@ -1502,7 +1676,7 @@ Mediagrootte: %2
<context> <context>
<name>message-description sent:</name> <name>message-description sent:</name>
<message> <message>
<location filename="../../src/Utils.h" line="+100"/> <location filename="../../src/Utils.h" line="+103"/>
<source>You sent an audio clip</source> <source>You sent an audio clip</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

@ -4,7 +4,7 @@
<context> <context>
<name>Cache</name> <name>Cache</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+1341"/> <location filename="../../src/Cache.cpp" line="+1342"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -12,23 +12,23 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+226"/> <location filename="../../src/ChatPage.cpp" line="+227"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+892"/> <location line="+923"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-463"/> <location line="-471"/>
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source> <source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+428"/> <location line="+436"/>
<source>Room %1 created.</source> <source>Room %1 created.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -68,7 +68,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-817"/> <location line="-825"/>
<source>Failed to upload media. Please try again.</source> <source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -98,7 +98,7 @@
<translation>Nie udało się przywrócić zapisanych danych. Spróbuj zalogować się ponownie.</translation> <translation>Nie udało się przywrócić zapisanych danych. Spróbuj zalogować się ponownie.</translation>
</message> </message>
<message> <message>
<location line="+148"/> <location line="+156"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source> <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -151,6 +151,12 @@
<source>Low priority rooms</source> <source>Low priority rooms</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Server Notices</source>
<comment>Tag translation for m.server_notice</comment>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<location line="+2"/> <location line="+2"/>
@ -166,7 +172,7 @@
<context> <context>
<name>EditModal</name> <name>EditModal</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+60"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+72"/>
<source>Apply</source> <source>Apply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -186,6 +192,55 @@
<translation>Temat</translation> <translation>Temat</translation>
</message> </message>
</context> </context>
<context>
<name>EmojiPicker</name>
<message>
<location filename="../qml/emoji/EmojiPicker.qml" line="+117"/>
<location line="+139"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-42"/>
<source>People</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Nature</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Food</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Activity</source>
<translation type="unfinished">Aktywność</translation>
</message>
<message>
<location line="+2"/>
<source>Travel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Objects</source>
<translation type="unfinished">Przedmioty</translation>
</message>
<message>
<location line="+2"/>
<source>Symbols</source>
<translation type="unfinished">Symbole</translation>
</message>
<message>
<location line="+2"/>
<source>Flags</source>
<translation type="unfinished">Flagi</translation>
</message>
</context>
<context> <context>
<name>EncryptionIndicator</name> <name>EncryptionIndicator</name>
<message> <message>
@ -202,7 +257,7 @@
<context> <context>
<name>InviteeItem</name> <name>InviteeItem</name>
<message> <message>
<location filename="../../src/InviteeItem.cpp" line="+17"/> <location filename="../../src/InviteeItem.cpp" line="+18"/>
<source>Remove</source> <source>Remove</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -210,7 +265,7 @@
<context> <context>
<name>LoginPage</name> <name>LoginPage</name>
<message> <message>
<location filename="../../src/LoginPage.cpp" line="+89"/> <location filename="../../src/LoginPage.cpp" line="+90"/>
<source>Matrix ID</source> <source>Matrix ID</source>
<translation>ID Matrixa</translation> <translation>ID Matrixa</translation>
</message> </message>
@ -239,7 +294,7 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source> <source>A name for this device, which will be shown to others, when verifying your devices. If none is provided a default is used.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -250,7 +305,7 @@ Example: https://server.my:8787</source>
</message> </message>
<message> <message>
<location line="+16"/> <location line="+16"/>
<location line="+185"/> <location line="+191"/>
<source>LOGIN</source> <source>LOGIN</source>
<translation>ZALOGUJ</translation> <translation>ZALOGUJ</translation>
</message> </message>
@ -365,7 +420,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>RegisterPage</name> <name>RegisterPage</name>
<message> <message>
<location filename="../../src/RegisterPage.cpp" line="+87"/> <location filename="../../src/RegisterPage.cpp" line="+88"/>
<source>Username</source> <source>Username</source>
<translation>Nazwa użytkownika</translation> <translation>Nazwa użytkownika</translation>
</message> </message>
@ -433,7 +488,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+939"/> <location filename="../../src/Cache.cpp" line="+940"/>
<source>no version stored</source> <source>no version stored</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -451,7 +506,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+18"/>
<source>Favourite</source> <source>Favourite</source>
<comment>Standard matrix tag for favourites</comment> <comment>Standard matrix tag for favourites</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -469,7 +524,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+13"/> <location line="+12"/>
<source>Adds or removes the specified tag.</source> <source>Adds or removes the specified tag.</source>
<comment>WhatsThis hint for tag menu actions</comment> <comment>WhatsThis hint for tag menu actions</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -481,14 +536,15 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+4"/>
<source>New Tag</source> <source>New Tag</source>
<comment>Tag name prompt title</comment> <comment>Tag name prompt title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+0"/> <location line="+1"/>
<source>Tag:</source> <source>Tag:</source>
<comment>Tag name prompt</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -505,7 +561,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>SideBarActions</name> <name>SideBarActions</name>
<message> <message>
<location filename="../../src/SideBarActions.cpp" line="+38"/> <location filename="../../src/SideBarActions.cpp" line="+40"/>
<source>User settings</source> <source>User settings</source>
<translation>Ustawienia użytkownika</translation> <translation>Ustawienia użytkownika</translation>
</message> </message>
@ -556,7 +612,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TextInputWidget</name> <name>TextInputWidget</name>
<message> <message>
<location filename="../../src/TextInputWidget.cpp" line="+459"/> <location filename="../../src/TextInputWidget.cpp" line="+460"/>
<source>Send a file</source> <source>Send a file</source>
<translation>Wyślij plik</translation> <translation>Wyślij plik</translation>
</message> </message>
@ -577,7 +633,7 @@ Example: https://server.my:8787</source>
<translation>Emoji</translation> <translation>Emoji</translation>
</message> </message>
<message> <message>
<location line="+84"/> <location line="+86"/>
<source>Select a file</source> <source>Select a file</source>
<translation>Wybierz plik</translation> <translation>Wybierz plik</translation>
</message> </message>
@ -595,7 +651,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+891"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -618,7 +674,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished">Redagowanie wiadomości nie powiodło się: %1</translation> <translation type="unfinished">Redagowanie wiadomości nie powiodło się: %1</translation>
</message> </message>
<message> <message>
<location line="+455"/> <location line="+488"/>
<source>Save image</source> <source>Save image</source>
<translation type="unfinished">Zapisz obraz</translation> <translation type="unfinished">Zapisz obraz</translation>
</message> </message>
@ -638,7 +694,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-610"/> <location line="-643"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -650,7 +706,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+660"/> <location line="+693"/>
<source>%1 and %2 are typing.</source> <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> <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"> <translation type="unfinished">
@ -724,6 +780,11 @@ Example: https://server.my:8787</source>
<source>%1 changed their avatar.</source> <source>%1 changed their avatar.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>%1 changed some profile info.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>%1 joined.</source> <source>%1 joined.</source>
@ -765,12 +826,12 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-1238"/> <location line="-1281"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1240"/> <location line="+1283"/>
<source>Rejected the knock from %1.</source> <source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -794,7 +855,12 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TimelineRow</name> <name>TimelineRow</name>
<message> <message>
<location filename="../qml/TimelineRow.qml" line="+92"/> <location filename="../qml/TimelineRow.qml" line="+91"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+17"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -808,6 +874,11 @@ Example: https://server.my:8787</source>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+54"/> <location filename="../qml/TimelineView.qml" line="+54"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -847,7 +918,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+257"/> <location line="+259"/>
<source>Close</source> <source>Close</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -901,7 +972,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>UserInfoWidget</name> <name>UserInfoWidget</name>
<message> <message>
<location filename="../../src/UserInfoWidget.cpp" line="+88"/> <location filename="../../src/UserInfoWidget.cpp" line="+91"/>
<source>Logout</source> <source>Logout</source>
<translation>Wyloguj</translation> <translation>Wyloguj</translation>
</message> </message>
@ -909,70 +980,173 @@ Example: https://server.my:8787</source>
<context> <context>
<name>UserSettingsPage</name> <name>UserSettingsPage</name>
<message> <message>
<location filename="../../src/UserSettingsPage.cpp" line="+339"/> <location filename="../../src/UserSettingsPage.cpp" line="+520"/>
<source>Minimize to tray</source> <source>Minimize to tray</source>
<translation>Zminimalizuj do paska zadań</translation> <translation>Zminimalizuj do paska zadań</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+3"/>
<source>Start in tray</source> <source>Start in tray</source>
<translation>Rozpocznij na pasku zadań</translation> <translation>Rozpocznij na pasku zadań</translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+7"/>
<source>Group&apos;s sidebar</source> <source>Group&apos;s sidebar</source>
<translation>Pasek boczny grupy</translation> <translation>Pasek boczny grupy</translation>
</message> </message>
<message> <message>
<location line="-1"/> <location line="-3"/>
<source>Circular Avatars</source> <source>Circular Avatars</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="-5"/>
<source>Decrypt messages in sidebar</source> <source>Keep the application running in the background after closing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Start the application in the background without showing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Change the appearance of user avatars in chats.
OFF - square, ON - Circle.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Show a column containing groups and tags next to the room list.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Decrypt messages in sidebar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Decrypt the messages shown in the sidebar.
Only affects messages in encrypted chats.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show buttons in timeline</source> <source>Show buttons in timeline</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show buttons to quickly reply, react or access additional options next to each message.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Limit width of timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Set the max width of messages in the timeline (in pixels). This can help readability on wide screen, when Nheko is maximised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Typing notifications</source> <source>Typing notifications</source>
<translation>Powiadomienia o pisaniu</translation> <translation>Powiadomienia o pisaniu</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show who is typing in a room.
This will also enable or disable sending typing notifications to others.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Sort rooms by unreads</source> <source>Sort rooms by unreads</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>Display rooms with new messages first.
If this is off, the list of rooms will only be sorted by the timestamp of the last message in a room.
If this is on, rooms which have active notifications (the small circle with a number in it) will be sorted on top. Rooms, that you have muted, will still be sorted by timestamp, since you don&apos;t seem to consider them as important as the other rooms.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation>Potwierdzenia przeczytania</translation> <translation>Potwierdzenia przeczytania</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show if your message was read.
Status is displayed next to timestamps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Send messages as Markdown</source> <source>Send messages as Markdown</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Allow using markdown in messages.
When disabled, all messages are sent as a plain text.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Desktop notifications</source> <source>Desktop notifications</source>
<translation>Powiadomienia na pulpicie</translation> <translation>Powiadomienia na pulpicie</translation>
</message> </message>
<message>
<location line="+2"/>
<source>Notify about received message when the client is not currently focused.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Alert on notification</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show an alert when a message is received.
This usually causes the application icon in the task bar to animate in some fashion.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Highlight message on hover</source> <source>Highlight message on hover</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the background color of messages when you hover over them.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Large Emoji in timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Make font size larger if messages with only a few emojis are displayed.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+5"/> <location line="+5"/>
<source>Scale factor</source> <source>Scale factor</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the scale factor of the whole user interface.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Font size</source> <source>Font size</source>
@ -999,7 +1173,7 @@ Example: https://server.my:8787</source>
<translation>Odcisk palca urządzenia</translation> <translation>Odcisk palca urządzenia</translation>
</message> </message>
<message> <message>
<location line="-60"/> <location line="-113"/>
<source>Session Keys</source> <source>Session Keys</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1019,22 +1193,22 @@ Example: https://server.my:8787</source>
<translation>SZYFROWANIE</translation> <translation>SZYFROWANIE</translation>
</message> </message>
<message> <message>
<location line="-64"/> <location line="-71"/>
<source>GENERAL</source> <source>GENERAL</source>
<translation>OGÓLNE</translation> <translation>OGÓLNE</translation>
</message> </message>
<message> <message>
<location line="+26"/> <location line="+29"/>
<source>INTERFACE</source> <source>INTERFACE</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+109"/> <location line="+166"/>
<source>Emoji Font Family</source> <source>Emoji Font Family</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+163"/> <location line="+179"/>
<source>Open Sessions File</source> <source>Open Sessions File</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1106,7 +1280,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+141"/> <location filename="../../src/Utils.cpp" line="+147"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1180,7 +1354,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>dialogs::InviteUsers</name> <name>dialogs::InviteUsers</name>
<message> <message>
<location filename="../../src/dialogs/InviteUsers.cpp" line="+41"/> <location filename="../../src/dialogs/InviteUsers.cpp" line="+42"/>
<source>Cancel</source> <source>Cancel</source>
<translation type="unfinished">Anuluj</translation> <translation type="unfinished">Anuluj</translation>
</message> </message>
@ -1277,7 +1451,7 @@ Rozmiar multimediów: %2
<context> <context>
<name>dialogs::ReadReceipts</name> <name>dialogs::ReadReceipts</name>
<message> <message>
<location filename="../../src/dialogs/ReadReceipts.cpp" line="+117"/> <location filename="../../src/dialogs/ReadReceipts.cpp" line="+120"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation>Potwierdzenia przeczytania</translation> <translation>Potwierdzenia przeczytania</translation>
</message> </message>
@ -1290,12 +1464,12 @@ Rozmiar multimediów: %2
<context> <context>
<name>dialogs::ReceiptItem</name> <name>dialogs::ReceiptItem</name>
<message> <message>
<location line="-44"/> <location line="-46"/>
<source>Today %1</source> <source>Today %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+3"/>
<source>Yesterday %1</source> <source>Yesterday %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1303,7 +1477,7 @@ Rozmiar multimediów: %2
<context> <context>
<name>dialogs::RoomSettings</name> <name>dialogs::RoomSettings</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+113"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+135"/>
<source>Settings</source> <source>Settings</source>
<translation>Ustawienia</translation> <translation>Ustawienia</translation>
</message> </message>
@ -1506,7 +1680,7 @@ Rozmiar multimediów: %2
<context> <context>
<name>message-description sent:</name> <name>message-description sent:</name>
<message> <message>
<location filename="../../src/Utils.h" line="+100"/> <location filename="../../src/Utils.h" line="+103"/>
<source>You sent an audio clip</source> <source>You sent an audio clip</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

@ -4,7 +4,7 @@
<context> <context>
<name>Cache</name> <name>Cache</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+1341"/> <location filename="../../src/Cache.cpp" line="+1342"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -12,23 +12,23 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+226"/> <location filename="../../src/ChatPage.cpp" line="+227"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+892"/> <location line="+923"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-463"/> <location line="-471"/>
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source> <source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+428"/> <location line="+436"/>
<source>Room %1 created.</source> <source>Room %1 created.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -68,7 +68,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-817"/> <location line="-825"/>
<source>Failed to upload media. Please try again.</source> <source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -98,7 +98,7 @@
<translation>Не удалось восстановить сохраненные данные. Пожалуйста, войдите снова.</translation> <translation>Не удалось восстановить сохраненные данные. Пожалуйста, войдите снова.</translation>
</message> </message>
<message> <message>
<location line="+148"/> <location line="+156"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source> <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
<translation>Не удалось настроить ключи шифрования. Ответ сервера:%1 %2. Пожалуйста, попробуйте позже.</translation> <translation>Не удалось настроить ключи шифрования. Ответ сервера:%1 %2. Пожалуйста, попробуйте позже.</translation>
</message> </message>
@ -151,6 +151,12 @@
<source>Low priority rooms</source> <source>Low priority rooms</source>
<translation>Комнаты с низким приоритетом</translation> <translation>Комнаты с низким приоритетом</translation>
</message> </message>
<message>
<location line="+2"/>
<source>Server Notices</source>
<comment>Tag translation for m.server_notice</comment>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<location line="+2"/> <location line="+2"/>
@ -166,7 +172,7 @@
<context> <context>
<name>EditModal</name> <name>EditModal</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+60"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+72"/>
<source>Apply</source> <source>Apply</source>
<translation>Применить</translation> <translation>Применить</translation>
</message> </message>
@ -186,6 +192,55 @@
<translation>Тема</translation> <translation>Тема</translation>
</message> </message>
</context> </context>
<context>
<name>EmojiPicker</name>
<message>
<location filename="../qml/emoji/EmojiPicker.qml" line="+117"/>
<location line="+139"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-42"/>
<source>People</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Nature</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Food</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Activity</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Travel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Objects</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Symbols</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Flags</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>EncryptionIndicator</name> <name>EncryptionIndicator</name>
<message> <message>
@ -202,7 +257,7 @@
<context> <context>
<name>InviteeItem</name> <name>InviteeItem</name>
<message> <message>
<location filename="../../src/InviteeItem.cpp" line="+17"/> <location filename="../../src/InviteeItem.cpp" line="+18"/>
<source>Remove</source> <source>Remove</source>
<translation>Удалить</translation> <translation>Удалить</translation>
</message> </message>
@ -210,7 +265,7 @@
<context> <context>
<name>LoginPage</name> <name>LoginPage</name>
<message> <message>
<location filename="../../src/LoginPage.cpp" line="+89"/> <location filename="../../src/LoginPage.cpp" line="+90"/>
<source>Matrix ID</source> <source>Matrix ID</source>
<translation>Идентификатор Matrix</translation> <translation>Идентификатор Matrix</translation>
</message> </message>
@ -239,7 +294,7 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source> <source>A name for this device, which will be shown to others, when verifying your devices. If none is provided a default is used.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -250,7 +305,7 @@ Example: https://server.my:8787</source>
</message> </message>
<message> <message>
<location line="+16"/> <location line="+16"/>
<location line="+185"/> <location line="+191"/>
<source>LOGIN</source> <source>LOGIN</source>
<translation>ВОЙТИ</translation> <translation>ВОЙТИ</translation>
</message> </message>
@ -365,7 +420,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>RegisterPage</name> <name>RegisterPage</name>
<message> <message>
<location filename="../../src/RegisterPage.cpp" line="+87"/> <location filename="../../src/RegisterPage.cpp" line="+88"/>
<source>Username</source> <source>Username</source>
<translation>Имя пользователя</translation> <translation>Имя пользователя</translation>
</message> </message>
@ -433,7 +488,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+939"/> <location filename="../../src/Cache.cpp" line="+940"/>
<source>no version stored</source> <source>no version stored</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -451,7 +506,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+18"/>
<source>Favourite</source> <source>Favourite</source>
<comment>Standard matrix tag for favourites</comment> <comment>Standard matrix tag for favourites</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -469,7 +524,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+13"/> <location line="+12"/>
<source>Adds or removes the specified tag.</source> <source>Adds or removes the specified tag.</source>
<comment>WhatsThis hint for tag menu actions</comment> <comment>WhatsThis hint for tag menu actions</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -481,14 +536,15 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+4"/>
<source>New Tag</source> <source>New Tag</source>
<comment>Tag name prompt title</comment> <comment>Tag name prompt title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+0"/> <location line="+1"/>
<source>Tag:</source> <source>Tag:</source>
<comment>Tag name prompt</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -505,7 +561,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>SideBarActions</name> <name>SideBarActions</name>
<message> <message>
<location filename="../../src/SideBarActions.cpp" line="+38"/> <location filename="../../src/SideBarActions.cpp" line="+40"/>
<source>User settings</source> <source>User settings</source>
<translation>Пользовательские настройки</translation> <translation>Пользовательские настройки</translation>
</message> </message>
@ -556,7 +612,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TextInputWidget</name> <name>TextInputWidget</name>
<message> <message>
<location filename="../../src/TextInputWidget.cpp" line="+459"/> <location filename="../../src/TextInputWidget.cpp" line="+460"/>
<source>Send a file</source> <source>Send a file</source>
<translation>Отправить файл</translation> <translation>Отправить файл</translation>
</message> </message>
@ -577,7 +633,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+84"/> <location line="+86"/>
<source>Select a file</source> <source>Select a file</source>
<translation>Выберите файл</translation> <translation>Выберите файл</translation>
</message> </message>
@ -595,7 +651,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+891"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -618,7 +674,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished">Ошибка редактирования сообщения: %1</translation> <translation type="unfinished">Ошибка редактирования сообщения: %1</translation>
</message> </message>
<message> <message>
<location line="+455"/> <location line="+488"/>
<source>Save image</source> <source>Save image</source>
<translation type="unfinished">Сохранить изображение</translation> <translation type="unfinished">Сохранить изображение</translation>
</message> </message>
@ -638,7 +694,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-610"/> <location line="-643"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -650,7 +706,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+660"/> <location line="+693"/>
<source>%1 and %2 are typing.</source> <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> <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"> <translation type="unfinished">
@ -724,6 +780,11 @@ Example: https://server.my:8787</source>
<source>%1 changed their avatar.</source> <source>%1 changed their avatar.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>%1 changed some profile info.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>%1 joined.</source> <source>%1 joined.</source>
@ -765,12 +826,12 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-1238"/> <location line="-1281"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1240"/> <location line="+1283"/>
<source>Rejected the knock from %1.</source> <source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -794,7 +855,12 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TimelineRow</name> <name>TimelineRow</name>
<message> <message>
<location filename="../qml/TimelineRow.qml" line="+92"/> <location filename="../qml/TimelineRow.qml" line="+91"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+17"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -808,6 +874,11 @@ Example: https://server.my:8787</source>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+54"/> <location filename="../qml/TimelineView.qml" line="+54"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -847,7 +918,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+257"/> <location line="+259"/>
<source>Close</source> <source>Close</source>
<translation type="unfinished">Закрыть</translation> <translation type="unfinished">Закрыть</translation>
</message> </message>
@ -901,7 +972,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>UserInfoWidget</name> <name>UserInfoWidget</name>
<message> <message>
<location filename="../../src/UserInfoWidget.cpp" line="+88"/> <location filename="../../src/UserInfoWidget.cpp" line="+91"/>
<source>Logout</source> <source>Logout</source>
<translation>Выйти</translation> <translation>Выйти</translation>
</message> </message>
@ -909,70 +980,173 @@ Example: https://server.my:8787</source>
<context> <context>
<name>UserSettingsPage</name> <name>UserSettingsPage</name>
<message> <message>
<location filename="../../src/UserSettingsPage.cpp" line="+339"/> <location filename="../../src/UserSettingsPage.cpp" line="+520"/>
<source>Minimize to tray</source> <source>Minimize to tray</source>
<translation>Сворачивать в системную панель</translation> <translation>Сворачивать в системную панель</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+3"/>
<source>Start in tray</source> <source>Start in tray</source>
<translation>Запускать в системной панели</translation> <translation>Запускать в системной панели</translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+7"/>
<source>Group&apos;s sidebar</source> <source>Group&apos;s sidebar</source>
<translation>Боковая панель групп</translation> <translation>Боковая панель групп</translation>
</message> </message>
<message> <message>
<location line="-1"/> <location line="-3"/>
<source>Circular Avatars</source> <source>Circular Avatars</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="-5"/>
<source>Decrypt messages in sidebar</source> <source>Keep the application running in the background after closing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Start the application in the background without showing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Change the appearance of user avatars in chats.
OFF - square, ON - Circle.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Show a column containing groups and tags next to the room list.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Decrypt messages in sidebar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Decrypt the messages shown in the sidebar.
Only affects messages in encrypted chats.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show buttons in timeline</source> <source>Show buttons in timeline</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show buttons to quickly reply, react or access additional options next to each message.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Limit width of timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Set the max width of messages in the timeline (in pixels). This can help readability on wide screen, when Nheko is maximised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Typing notifications</source> <source>Typing notifications</source>
<translation>Сообщать о наборе сообщения</translation> <translation>Сообщать о наборе сообщения</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show who is typing in a room.
This will also enable or disable sending typing notifications to others.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Sort rooms by unreads</source> <source>Sort rooms by unreads</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>Display rooms with new messages first.
If this is off, the list of rooms will only be sorted by the timestamp of the last message in a room.
If this is on, rooms which have active notifications (the small circle with a number in it) will be sorted on top. Rooms, that you have muted, will still be sorted by timestamp, since you don&apos;t seem to consider them as important as the other rooms.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation>Подтверждать прочтение</translation> <translation>Подтверждать прочтение</translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show if your message was read.
Status is displayed next to timestamps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Send messages as Markdown</source> <source>Send messages as Markdown</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Allow using markdown in messages.
When disabled, all messages are sent as a plain text.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Desktop notifications</source> <source>Desktop notifications</source>
<translation>Уведомления на рабочем столе</translation> <translation>Уведомления на рабочем столе</translation>
</message> </message>
<message>
<location line="+2"/>
<source>Notify about received message when the client is not currently focused.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Alert on notification</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show an alert when a message is received.
This usually causes the application icon in the task bar to animate in some fashion.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Highlight message on hover</source> <source>Highlight message on hover</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the background color of messages when you hover over them.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Large Emoji in timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Make font size larger if messages with only a few emojis are displayed.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+5"/> <location line="+5"/>
<source>Scale factor</source> <source>Scale factor</source>
<translation>Масштаб</translation> <translation>Масштаб</translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the scale factor of the whole user interface.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Font size</source> <source>Font size</source>
@ -999,7 +1173,7 @@ Example: https://server.my:8787</source>
<translation>Отпечаток устройства</translation> <translation>Отпечаток устройства</translation>
</message> </message>
<message> <message>
<location line="-60"/> <location line="-113"/>
<source>Session Keys</source> <source>Session Keys</source>
<translation>Ключи сеанса</translation> <translation>Ключи сеанса</translation>
</message> </message>
@ -1019,22 +1193,22 @@ Example: https://server.my:8787</source>
<translation>ШИФРОВАНИЕ</translation> <translation>ШИФРОВАНИЕ</translation>
</message> </message>
<message> <message>
<location line="-64"/> <location line="-71"/>
<source>GENERAL</source> <source>GENERAL</source>
<translation>ГЛАВНОЕ</translation> <translation>ГЛАВНОЕ</translation>
</message> </message>
<message> <message>
<location line="+26"/> <location line="+29"/>
<source>INTERFACE</source> <source>INTERFACE</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+109"/> <location line="+166"/>
<source>Emoji Font Family</source> <source>Emoji Font Family</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+163"/> <location line="+179"/>
<source>Open Sessions File</source> <source>Open Sessions File</source>
<translation>Открыть файл сеансов</translation> <translation>Открыть файл сеансов</translation>
</message> </message>
@ -1107,7 +1281,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+141"/> <location filename="../../src/Utils.cpp" line="+147"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1181,7 +1355,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>dialogs::InviteUsers</name> <name>dialogs::InviteUsers</name>
<message> <message>
<location filename="../../src/dialogs/InviteUsers.cpp" line="+41"/> <location filename="../../src/dialogs/InviteUsers.cpp" line="+42"/>
<source>Cancel</source> <source>Cancel</source>
<translation>Отмена</translation> <translation>Отмена</translation>
</message> </message>
@ -1278,7 +1452,7 @@ Media size: %2
<context> <context>
<name>dialogs::ReadReceipts</name> <name>dialogs::ReadReceipts</name>
<message> <message>
<location filename="../../src/dialogs/ReadReceipts.cpp" line="+117"/> <location filename="../../src/dialogs/ReadReceipts.cpp" line="+120"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation>Подтверждать прочтение</translation> <translation>Подтверждать прочтение</translation>
</message> </message>
@ -1291,12 +1465,12 @@ Media size: %2
<context> <context>
<name>dialogs::ReceiptItem</name> <name>dialogs::ReceiptItem</name>
<message> <message>
<location line="-44"/> <location line="-46"/>
<source>Today %1</source> <source>Today %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+3"/>
<source>Yesterday %1</source> <source>Yesterday %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1304,7 +1478,7 @@ Media size: %2
<context> <context>
<name>dialogs::RoomSettings</name> <name>dialogs::RoomSettings</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+113"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+135"/>
<source>Settings</source> <source>Settings</source>
<translation>Настройки</translation> <translation>Настройки</translation>
</message> </message>
@ -1505,7 +1679,7 @@ Media size: %2
<context> <context>
<name>message-description sent:</name> <name>message-description sent:</name>
<message> <message>
<location filename="../../src/Utils.h" line="+100"/> <location filename="../../src/Utils.h" line="+103"/>
<source>You sent an audio clip</source> <source>You sent an audio clip</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

@ -4,7 +4,7 @@
<context> <context>
<name>Cache</name> <name>Cache</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+1341"/> <location filename="../../src/Cache.cpp" line="+1342"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -12,23 +12,23 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+226"/> <location filename="../../src/ChatPage.cpp" line="+227"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+892"/> <location line="+923"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-463"/> <location line="-471"/>
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source> <source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+428"/> <location line="+436"/>
<source>Room %1 created.</source> <source>Room %1 created.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -68,7 +68,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-817"/> <location line="-825"/>
<source>Failed to upload media. Please try again.</source> <source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -98,7 +98,7 @@
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+148"/> <location line="+156"/>
<source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source> <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -151,6 +151,12 @@
<source>Low priority rooms</source> <source>Low priority rooms</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Server Notices</source>
<comment>Tag translation for m.server_notice</comment>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<location line="+2"/> <location line="+2"/>
@ -166,7 +172,7 @@
<context> <context>
<name>EditModal</name> <name>EditModal</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+60"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+72"/>
<source>Apply</source> <source>Apply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -186,6 +192,55 @@
<translation></translation> <translation></translation>
</message> </message>
</context> </context>
<context>
<name>EmojiPicker</name>
<message>
<location filename="../qml/emoji/EmojiPicker.qml" line="+117"/>
<location line="+139"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-42"/>
<source>People</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Nature</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Food</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Activity</source>
<translation type="unfinished">Activity</translation>
</message>
<message>
<location line="+2"/>
<source>Travel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Objects</source>
<translation type="unfinished">Objects</translation>
</message>
<message>
<location line="+2"/>
<source>Symbols</source>
<translation type="unfinished">Symbols</translation>
</message>
<message>
<location line="+2"/>
<source>Flags</source>
<translation type="unfinished">Flags</translation>
</message>
</context>
<context> <context>
<name>EncryptionIndicator</name> <name>EncryptionIndicator</name>
<message> <message>
@ -202,7 +257,7 @@
<context> <context>
<name>InviteeItem</name> <name>InviteeItem</name>
<message> <message>
<location filename="../../src/InviteeItem.cpp" line="+17"/> <location filename="../../src/InviteeItem.cpp" line="+18"/>
<source>Remove</source> <source>Remove</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -210,7 +265,7 @@
<context> <context>
<name>LoginPage</name> <name>LoginPage</name>
<message> <message>
<location filename="../../src/LoginPage.cpp" line="+89"/> <location filename="../../src/LoginPage.cpp" line="+90"/>
<source>Matrix ID</source> <source>Matrix ID</source>
<translation></translation> <translation></translation>
</message> </message>
@ -239,7 +294,7 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source> <source>A name for this device, which will be shown to others, when verifying your devices. If none is provided a default is used.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -250,7 +305,7 @@ Example: https://server.my:8787</source>
</message> </message>
<message> <message>
<location line="+16"/> <location line="+16"/>
<location line="+185"/> <location line="+191"/>
<source>LOGIN</source> <source>LOGIN</source>
<translation></translation> <translation></translation>
</message> </message>
@ -365,7 +420,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>RegisterPage</name> <name>RegisterPage</name>
<message> <message>
<location filename="../../src/RegisterPage.cpp" line="+87"/> <location filename="../../src/RegisterPage.cpp" line="+88"/>
<source>Username</source> <source>Username</source>
<translation></translation> <translation></translation>
</message> </message>
@ -433,7 +488,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+939"/> <location filename="../../src/Cache.cpp" line="+940"/>
<source>no version stored</source> <source>no version stored</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -451,7 +506,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+18"/>
<source>Favourite</source> <source>Favourite</source>
<comment>Standard matrix tag for favourites</comment> <comment>Standard matrix tag for favourites</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -469,7 +524,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+13"/> <location line="+12"/>
<source>Adds or removes the specified tag.</source> <source>Adds or removes the specified tag.</source>
<comment>WhatsThis hint for tag menu actions</comment> <comment>WhatsThis hint for tag menu actions</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -481,14 +536,15 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+4"/>
<source>New Tag</source> <source>New Tag</source>
<comment>Tag name prompt title</comment> <comment>Tag name prompt title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+0"/> <location line="+1"/>
<source>Tag:</source> <source>Tag:</source>
<comment>Tag name prompt</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -505,7 +561,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>SideBarActions</name> <name>SideBarActions</name>
<message> <message>
<location filename="../../src/SideBarActions.cpp" line="+38"/> <location filename="../../src/SideBarActions.cpp" line="+40"/>
<source>User settings</source> <source>User settings</source>
<translation></translation> <translation></translation>
</message> </message>
@ -556,7 +612,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TextInputWidget</name> <name>TextInputWidget</name>
<message> <message>
<location filename="../../src/TextInputWidget.cpp" line="+459"/> <location filename="../../src/TextInputWidget.cpp" line="+460"/>
<source>Send a file</source> <source>Send a file</source>
<translation></translation> <translation></translation>
</message> </message>
@ -577,7 +633,7 @@ Example: https://server.my:8787</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+84"/> <location line="+86"/>
<source>Select a file</source> <source>Select a file</source>
<translation></translation> <translation></translation>
</message> </message>
@ -595,7 +651,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+891"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -618,7 +674,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished">%1</translation> <translation type="unfinished">%1</translation>
</message> </message>
<message> <message>
<location line="+455"/> <location line="+488"/>
<source>Save image</source> <source>Save image</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -638,7 +694,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-610"/> <location line="-643"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -650,7 +706,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+660"/> <location line="+693"/>
<source>%1 and %2 are typing.</source> <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> <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"> <translation type="unfinished">
@ -722,6 +778,11 @@ Example: https://server.my:8787</source>
<source>%1 changed their avatar.</source> <source>%1 changed their avatar.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>%1 changed some profile info.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>%1 joined.</source> <source>%1 joined.</source>
@ -763,12 +824,12 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-1238"/> <location line="-1281"/>
<source>You joined this room.</source> <source>You joined this room.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1240"/> <location line="+1283"/>
<source>Rejected the knock from %1.</source> <source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -792,7 +853,12 @@ Example: https://server.my:8787</source>
<context> <context>
<name>TimelineRow</name> <name>TimelineRow</name>
<message> <message>
<location filename="../qml/TimelineRow.qml" line="+92"/> <location filename="../qml/TimelineRow.qml" line="+91"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+17"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -806,6 +872,11 @@ Example: https://server.my:8787</source>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+54"/> <location filename="../qml/TimelineView.qml" line="+54"/>
<source>React</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -845,7 +916,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+257"/> <location line="+259"/>
<source>Close</source> <source>Close</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -899,7 +970,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>UserInfoWidget</name> <name>UserInfoWidget</name>
<message> <message>
<location filename="../../src/UserInfoWidget.cpp" line="+88"/> <location filename="../../src/UserInfoWidget.cpp" line="+91"/>
<source>Logout</source> <source>Logout</source>
<translation></translation> <translation></translation>
</message> </message>
@ -907,70 +978,173 @@ Example: https://server.my:8787</source>
<context> <context>
<name>UserSettingsPage</name> <name>UserSettingsPage</name>
<message> <message>
<location filename="../../src/UserSettingsPage.cpp" line="+339"/> <location filename="../../src/UserSettingsPage.cpp" line="+520"/>
<source>Minimize to tray</source> <source>Minimize to tray</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+3"/>
<source>Start in tray</source> <source>Start in tray</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+3"/> <location line="+7"/>
<source>Group&apos;s sidebar</source> <source>Group&apos;s sidebar</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="-1"/> <location line="-3"/>
<source>Circular Avatars</source> <source>Circular Avatars</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="-5"/>
<source>Decrypt messages in sidebar</source> <source>Keep the application running in the background after closing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Start the application in the background without showing the client window.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>Change the appearance of user avatars in chats.
OFF - square, ON - Circle.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Show a column containing groups and tags next to the room list.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Decrypt messages in sidebar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Decrypt the messages shown in the sidebar.
Only affects messages in encrypted chats.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show buttons in timeline</source> <source>Show buttons in timeline</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show buttons to quickly reply, react or access additional options next to each message.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Limit width of timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Set the max width of messages in the timeline (in pixels). This can help readability on wide screen, when Nheko is maximised</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Typing notifications</source> <source>Typing notifications</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show who is typing in a room.
This will also enable or disable sending typing notifications to others.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Sort rooms by unreads</source> <source>Sort rooms by unreads</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>Display rooms with new messages first.
If this is off, the list of rooms will only be sorted by the timestamp of the last message in a room.
If this is on, rooms which have active notifications (the small circle with a number in it) will be sorted on top. Rooms, that you have muted, will still be sorted by timestamp, since you don&apos;t seem to consider them as important as the other rooms.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Show if your message was read.
Status is displayed next to timestamps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Send messages as Markdown</source> <source>Send messages as Markdown</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+2"/>
<source>Allow using markdown in messages.
When disabled, all messages are sent as a plain text.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Desktop notifications</source> <source>Desktop notifications</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Notify about received message when the client is not currently focused.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<source>Alert on notification</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Show an alert when a message is received.
This usually causes the application icon in the task bar to animate in some fashion.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Highlight message on hover</source> <source>Highlight message on hover</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the background color of messages when you hover over them.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>Large Emoji in timeline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>Make font size larger if messages with only a few emojis are displayed.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+5"/> <location line="+5"/>
<source>Scale factor</source> <source>Scale factor</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+2"/>
<source>Change the scale factor of the whole user interface.</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Font size</source> <source>Font size</source>
@ -997,7 +1171,7 @@ Example: https://server.my:8787</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="-60"/> <location line="-113"/>
<source>Session Keys</source> <source>Session Keys</source>
<translation></translation> <translation></translation>
</message> </message>
@ -1017,22 +1191,22 @@ Example: https://server.my:8787</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="-64"/> <location line="-71"/>
<source>GENERAL</source> <source>GENERAL</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+26"/> <location line="+29"/>
<source>INTERFACE</source> <source>INTERFACE</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+109"/> <location line="+166"/>
<source>Emoji Font Family</source> <source>Emoji Font Family</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+163"/> <location line="+179"/>
<source>Open Sessions File</source> <source>Open Sessions File</source>
<translation></translation> <translation></translation>
</message> </message>
@ -1104,7 +1278,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+141"/> <location filename="../../src/Utils.cpp" line="+147"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1178,7 +1352,7 @@ Example: https://server.my:8787</source>
<context> <context>
<name>dialogs::InviteUsers</name> <name>dialogs::InviteUsers</name>
<message> <message>
<location filename="../../src/dialogs/InviteUsers.cpp" line="+41"/> <location filename="../../src/dialogs/InviteUsers.cpp" line="+42"/>
<source>Cancel</source> <source>Cancel</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1275,7 +1449,7 @@ Media size: %2
<context> <context>
<name>dialogs::ReadReceipts</name> <name>dialogs::ReadReceipts</name>
<message> <message>
<location filename="../../src/dialogs/ReadReceipts.cpp" line="+117"/> <location filename="../../src/dialogs/ReadReceipts.cpp" line="+120"/>
<source>Read receipts</source> <source>Read receipts</source>
<translation></translation> <translation></translation>
</message> </message>
@ -1288,12 +1462,12 @@ Media size: %2
<context> <context>
<name>dialogs::ReceiptItem</name> <name>dialogs::ReceiptItem</name>
<message> <message>
<location line="-44"/> <location line="-46"/>
<source>Today %1</source> <source>Today %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+3"/>
<source>Yesterday %1</source> <source>Yesterday %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1301,7 +1475,7 @@ Media size: %2
<context> <context>
<name>dialogs::RoomSettings</name> <name>dialogs::RoomSettings</name>
<message> <message>
<location filename="../../src/dialogs/RoomSettings.cpp" line="+113"/> <location filename="../../src/dialogs/RoomSettings.cpp" line="+135"/>
<source>Settings</source> <source>Settings</source>
<translation></translation> <translation></translation>
</message> </message>
@ -1510,7 +1684,7 @@ Media size: %2
<context> <context>
<name>message-description sent:</name> <name>message-description sent:</name>
<message> <message>
<location filename="../../src/Utils.h" line="+100"/> <location filename="../../src/Utils.h" line="+103"/>
<source>You sent an audio clip</source> <source>You sent an audio clip</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

@ -3,7 +3,8 @@ import QtQuick.Controls 2.3
AbstractButton { AbstractButton {
property string image: undefined property string image: undefined
width: 16
height: 16
id: button id: button
Image { Image {

@ -1,7 +1,19 @@
import QtQuick 2.6 import QtQuick 2.6
import QtQuick.Controls 2.2 import QtQuick.Controls 2.2
// This class is for showing Reactions in the timeline row, not for
// adding new reactions via the emoji picker
Flow { Flow {
id: reactionFlow
// highlight colors for selfReactedEvent background
property real highlightHue: colors.highlight.hslHue
property real highlightSat: colors.highlight.hslSaturation
property real highlightLight: colors.highlight.hslLightness
property string eventId
property string roomId
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
spacing: 4 spacing: 4
@ -11,9 +23,8 @@ Flow {
Repeater { Repeater {
id: repeater id: repeater
AbstractButton { delegate: AbstractButton {
id: reaction id: reaction
text: model.key
hoverEnabled: true hoverEnabled: true
implicitWidth: contentItem.childrenRect.width + contentItem.leftPadding*2 implicitWidth: contentItem.childrenRect.width + contentItem.leftPadding*2
implicitHeight: contentItem.childrenRect.height implicitHeight: contentItem.childrenRect.height
@ -21,6 +32,11 @@ Flow {
ToolTip.visible: hovered ToolTip.visible: hovered
ToolTip.text: model.users ToolTip.text: model.users
onClicked: {
console.debug("Picked " + model.key + "in response to " + reactionFlow.eventId + " in room " + reactionFlow.roomId + ". selfReactedEvent: " + model.selfReactedEvent)
timelineManager.reactToMessage(reactionFlow.roomId, reactionFlow.eventId, model.key, model.selfReactedEvent)
}
contentItem: Row { contentItem: Row {
anchors.centerIn: parent anchors.centerIn: parent
@ -33,13 +49,13 @@ Flow {
font.family: settings.emojiFont font.family: settings.emojiFont
elide: Text.ElideRight elide: Text.ElideRight
elideWidth: 150 elideWidth: 150
text: reaction.text text: model.key
} }
Text { Text {
anchors.baseline: reactionCounter.baseline anchors.baseline: reactionCounter.baseline
id: reactionText id: reactionText
text: textMetrics.elidedText + (textMetrics.elidedText == textMetrics.text ? "" : "…") text: textMetrics.elidedText + (textMetrics.elidedText == model.key ? "" : "…")
font.family: settings.emojiFont font.family: settings.emojiFont
color: reaction.hovered ? colors.highlight : colors.text color: reaction.hovered ? colors.highlight : colors.text
maximumLineCount: 1 maximumLineCount: 1
@ -49,7 +65,7 @@ Flow {
id: divider id: divider
height: Math.floor(reactionCounter.implicitHeight * 1.4) height: Math.floor(reactionCounter.implicitHeight * 1.4)
width: 1 width: 1
color: reaction.hovered ? colors.highlight : colors.text color: (reaction.hovered || model.selfReactedEvent !== '') ? colors.highlight : colors.text
} }
Text { Text {
@ -63,10 +79,11 @@ Flow {
background: Rectangle { background: Rectangle {
anchors.centerIn: parent anchors.centerIn: parent
implicitWidth: reaction.implicitWidth implicitWidth: reaction.implicitWidth
height: reaction.implicitHeight implicitHeight: reaction.implicitHeight
border.color: (reaction.hovered || model.selfReacted )? colors.highlight : colors.text border.color: (reaction.hovered || model.selfReactedEvent !== '') ? colors.highlight : colors.text
color: colors.base color: model.selfReactedEvent !== '' ? Qt.hsla(highlightHue, highlightSat, highlightLight, 0.20) : colors.base
border.width: 1 border.width: 1
radius: reaction.height / 2.0 radius: reaction.height / 2.0
} }

@ -6,6 +6,7 @@ import QtQuick.Window 2.2
import im.nheko 1.0 import im.nheko 1.0
import "./delegates" import "./delegates"
import "./emoji"
MouseArea { MouseArea {
anchors.left: parent.left anchors.left: parent.left
@ -58,7 +59,10 @@ MouseArea {
} }
Reactions { Reactions {
id: reactionRow
reactions: model.reactions reactions: model.reactions
roomId: model.roomId
eventId: model.id
} }
} }
@ -76,7 +80,19 @@ MouseArea {
Layout.preferredHeight: 16 Layout.preferredHeight: 16
width: 16 width: 16
} }
EmojiButton {
visible: settings.buttonsInTimeline
Layout.alignment: Qt.AlignRight | Qt.AlignTop
Layout.preferredHeight: 16
width: 16
id: reactButton
hoverEnabled: true
ToolTip.visible: hovered
ToolTip.text: qsTr("React")
emojiPicker: emojiPopup
room_id: model.roomId
event_id: model.id
}
ImageButton { ImageButton {
visible: settings.buttonsInTimeline visible: settings.buttonsInTimeline
Layout.alignment: Qt.AlignRight | Qt.AlignTop Layout.alignment: Qt.AlignRight | Qt.AlignTop

@ -5,14 +5,19 @@ import QtGraphicalEffects 1.0
import QtQuick.Window 2.2 import QtQuick.Window 2.2
import im.nheko 1.0 import im.nheko 1.0
import im.nheko.EmojiModel 1.0
import "./delegates" import "./delegates"
import "./emoji"
Page { Page {
property var colors: currentActivePalette property var colors: currentActivePalette
property var systemInactive: SystemPalette { colorGroup: SystemPalette.Disabled } property var systemInactive: SystemPalette { colorGroup: SystemPalette.Disabled }
property var inactiveColors: currentInactivePalette ? currentInactivePalette : systemInactive property var inactiveColors: currentInactivePalette ? currentInactivePalette : systemInactive
property int avatarSize: 40 property int avatarSize: 40
property real highlightHue: colors.highlight.hslHue
property real highlightSat: colors.highlight.hslSaturation
property real highlightLight: colors.highlight.hslLightness
palette: colors palette: colors
@ -20,6 +25,17 @@ Page {
id: fontMetrics id: fontMetrics
} }
EmojiPicker {
id: emojiPopup
width: 7 * 52 + 20
height: 6 * 52
colors: palette
model: EmojiProxyModel {
category: EmojiCategory.People
sourceModel: EmojiModel {}
}
}
Menu { Menu {
id: messageContextMenu id: messageContextMenu
modal: true modal: true
@ -34,7 +50,10 @@ Page {
property string eventId property string eventId
property int eventType property int eventType
property bool isEncrypted property bool isEncrypted
MenuItem {
text: qsTr("React")
onClicked: chat.model.reactAction(messageContextMenu.eventId)
}
MenuItem { MenuItem {
text: qsTr("Reply") text: qsTr("Reply")
onClicked: chat.model.replyAction(messageContextMenu.eventId) onClicked: chat.model.replyAction(messageContextMenu.eventId)

@ -11,5 +11,4 @@ Label {
radius: parent.height / 2 radius: parent.height / 2
color: colors.dark color: colors.dark
} }
} }

@ -0,0 +1,18 @@
import QtQuick 2.10
import QtQuick.Controls 2.1
import im.nheko 1.0
import im.nheko.EmojiModel 1.0
import "../"
ImageButton {
property var colors: currentActivePalette
property var emojiPicker
property string room_id
property string event_id
image: ":/icons/icons/ui/smile.png"
id: emojiButton
onClicked: emojiPicker.visible ? emojiPicker.close() : emojiPicker.show(emojiButton, room_id, event_id)
}

@ -0,0 +1,290 @@
import QtQuick 2.9
import QtQuick.Controls 2.9
import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.9
import im.nheko 1.0
import im.nheko.EmojiModel 1.0
import "../"
Popup {
function show(showAt, room_id, event_id) {
console.debug("Showing emojiPicker for " + event_id + "in room " + room_id)
parent = showAt
x = Math.round((showAt.width - width) / 2)
y = showAt.height
emojiPopup.room_id = room_id
emojiPopup.event_id = event_id
open()
}
property string room_id
property string event_id
property var colors
property alias model: gridView.model
property var textArea
property string emojiCategory: "people"
property real highlightHue: colors.highlight.hslHue
property real highlightSat: colors.highlight.hslSaturation
property real highlightLight: colors.highlight.hslLightness
id: emojiPopup
margins: 0
bottomPadding: 1
leftPadding: 1
rightPadding: 1
modal: true
focus: true
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
ColumnLayout {
id: columnView
anchors.fill: parent
spacing: 0
Layout.bottomMargin: 0
Layout.leftMargin: 3
Layout.rightMargin: 3
Layout.topMargin: 2
// emoji grid
GridView {
id: gridView
Layout.preferredHeight: emojiPopup.height
Layout.fillWidth: true
Layout.fillHeight: true
Layout.leftMargin: 4
cellWidth: 52
cellHeight: 52
boundsBehavior: Flickable.StopAtBounds
clip: true
// Individual emoji
delegate: AbstractButton {
width: 48
height: 48
contentItem: Text {
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
font.family: settings.emojiFont
font.pixelSize: 36
text: model.unicode
}
background: Rectangle {
anchors.fill: parent
color: hovered ? colors.highlight : 'transparent'
radius: 5
}
hoverEnabled: true
ToolTip.text: model.shortName
ToolTip.visible: hovered
// give the emoji a little oomf
DropShadow {
width: parent.width;
height: parent.height;
horizontalOffset: 3
verticalOffset: 3
radius: 8.0
samples: 17
color: "#80000000"
source: parent.contentItem
}
// TODO: maybe add favorites at some point?
onClicked: {
console.debug("Picked " + model.unicode + "in response to " + emojiPopup.event_id + " in room " + emojiPopup.room_id)
emojiPopup.close()
timelineManager.queueReactionMessage(emojiPopup.room_id, emojiPopup.event_id, model.unicode)
}
}
// Search field
header: TextField {
id: emojiSearch
anchors.left: parent.left
anchors.right: parent.right
anchors.rightMargin: emojiScroll.width + 4
placeholderText: qsTr("Search")
selectByMouse: true
rightPadding: clearSearch.width
Timer {
id: searchTimer
interval: 350 // tweak as needed?
onTriggered: {
emojiPopup.model.filter = emojiSearch.text
emojiPopup.model.category = EmojiCategory.Search
}
}
ToolButton {
id: clearSearch
anchors {
verticalCenter: parent.verticalCenter
right: parent.right
}
// clear the default hover effects.
background: Item {}
visible: emojiSearch.text !== ''
icon.source: "image://colorimage/:/icons/icons/ui/round-remove-button.png?" + (clearSearch.hovered ? colors.highlight : colors.buttonText)
focusPolicy: Qt.NoFocus
onClicked: emojiSearch.clear()
}
onTextChanged: searchTimer.restart()
onVisibleChanged: if (visible) forceActiveFocus()
}
ScrollBar.vertical: ScrollBar {
id: emojiScroll
}
}
// Separator
Rectangle {
Layout.fillWidth: true
Layout.preferredHeight: 1
color: emojiPopup.colors.dark
}
// Category picker row
RowLayout {
Layout.bottomMargin: 0
Layout.preferredHeight: 42
implicitHeight: 42
Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom
// Display the normal categories
Repeater {
model: ListModel {
// TODO: Would like to get 'simple' icons for the categories
ListElement { image: ":/icons/icons/emoji-categories/people.png"; category: EmojiCategory.People }
ListElement { image: ":/icons/icons/emoji-categories/nature.png"; category: EmojiCategory.Nature }
ListElement { image: ":/icons/icons/emoji-categories/foods.png"; category: EmojiCategory.Food }
ListElement { image: ":/icons/icons/emoji-categories/activity.png"; category: EmojiCategory.Activity }
ListElement { image: ":/icons/icons/emoji-categories/travel.png"; category: EmojiCategory.Travel }
ListElement { image: ":/icons/icons/emoji-categories/objects.png"; category: EmojiCategory.Objects }
ListElement { image: ":/icons/icons/emoji-categories/symbols.png"; category: EmojiCategory.Symbols }
ListElement { image: ":/icons/icons/emoji-categories/flags.png"; category: EmojiCategory.Flags }
}
delegate: AbstractButton {
Layout.preferredWidth: 36
Layout.preferredHeight: 36
contentItem: Image {
horizontalAlignment: Image.AlignHCenter
verticalAlignment: Image.AlignVCenter
fillMode: Image.Pad
sourceSize.width: 32
sourceSize.height: 32
source: "image://colorimage/" + model.image + "?" + (hovered ? colors.highlight : colors.buttonText)
}
MouseArea
{
id: mouseArea
anchors.fill: parent
onPressed: mouse.accepted = false
cursorShape: Qt.PointingHandCursor
}
background: Rectangle {
anchors.fill: parent
color: emojiPopup.model.category === model.category ? Qt.hsla(highlightHue, highlightSat, highlightLight, 0.20) : 'transparent'
radius: 5
border.color: emojiPopup.model.category === model.category ? colors.highlight : 'transparent'
}
hoverEnabled: true
ToolTip.text: {
switch (model.category) {
case EmojiCategory.People:
return qsTr('People');
case EmojiCategory.Nature:
return qsTr('Nature');
case EmojiCategory.Food:
return qsTr('Food');
case EmojiCategory.Activity:
return qsTr('Activity');
case EmojiCategory.Travel:
return qsTr('Travel');
case EmojiCategory.Objects:
return qsTr('Objects');
case EmojiCategory.Symbols:
return qsTr('Symbols');
case EmojiCategory.Flags:
return qsTr('Flags');
}
}
ToolTip.visible: hovered
onClicked: {
emojiPopup.model.category = model.category
}
}
}
// Separator
Rectangle {
Layout.fillHeight: true
Layout.preferredWidth: 1
implicitWidth: 1
height: parent.height
color: emojiPopup.colors.dark
}
// Search Button is special
AbstractButton {
id: searchBtn
hoverEnabled: true
Layout.alignment: Qt.AlignRight
Layout.bottomMargin: 0
ToolTip.text: qsTr("Search")
ToolTip.visible: hovered
onClicked: {
// clear any filters
emojiPopup.model.category = EmojiCategory.Search
gridView.positionViewAtBeginning()
emojiSearch.forceActiveFocus()
}
Layout.preferredWidth: 36
Layout.preferredHeight: 36
implicitWidth: 36
implicitHeight: 36
contentItem: Image {
anchors.right: parent.right
horizontalAlignment: Image.AlignHCenter
verticalAlignment: Image.AlignVCenter
sourceSize.width: 32
sourceSize.height: 32
fillMode: Image.Pad
smooth: true
source: "image://colorimage/:/icons/icons/ui/search.png?" + (parent.hovered ? colors.highlight : colors.buttonText)
}
MouseArea
{
id: mouseArea
anchors.fill: parent
onPressed: mouse.accepted = false
cursorShape: Qt.PointingHandCursor
}
}
}
}
}

@ -22,6 +22,8 @@
<file>icons/ui/checkmark@2x.png</file> <file>icons/ui/checkmark@2x.png</file>
<file>icons/ui/cursor.png</file> <file>icons/ui/cursor.png</file>
<file>icons/ui/cursor@2x.png</file> <file>icons/ui/cursor@2x.png</file>
<file>icons/ui/search.png</file>
<file>icons/ui/search@2x.png</file>
<file>icons/ui/settings.png</file> <file>icons/ui/settings.png</file>
<file>icons/ui/settings@2x.png</file> <file>icons/ui/settings@2x.png</file>
<file>icons/ui/smile.png</file> <file>icons/ui/smile.png</file>
@ -122,6 +124,8 @@
<file>qml/Reactions.qml</file> <file>qml/Reactions.qml</file>
<file>qml/ScrollHelper.qml</file> <file>qml/ScrollHelper.qml</file>
<file>qml/TimelineRow.qml</file> <file>qml/TimelineRow.qml</file>
<file>qml/emoji/EmojiButton.qml</file>
<file>qml/emoji/EmojiPicker.qml</file>
<file>qml/delegates/MessageDelegate.qml</file> <file>qml/delegates/MessageDelegate.qml</file>
<file>qml/delegates/TextMessage.qml</file> <file>qml/delegates/TextMessage.qml</file>
<file>qml/delegates/NoticeMessage.qml</file> <file>qml/delegates/NoticeMessage.qml</file>

@ -14,8 +14,9 @@ class Emoji(object):
def generate_code(emojis, category): def generate_code(emojis, category):
tmpl = Template(''' tmpl = Template('''
const std::vector<Emoji> emoji::Provider::{{ category }} = { const std::vector<Emoji> emoji::Provider::{{ category }} = {
// {{ category.capitalize() }}
{%- for e in emoji %} {%- for e in emoji %}
Emoji{QString::fromUtf8("{{ e.code }}"), "{{ e.shortname }}"}, Emoji{QString::fromUtf8("{{ e.code }}"), "{{ e.shortname }}", emoji::EmojiCategory::{{ category.capitalize() }}},
{%- endfor %} {%- endfor %}
}; };
''') ''')
@ -23,6 +24,19 @@ const std::vector<Emoji> emoji::Provider::{{ category }} = {
d = dict(category=category, emoji=emojis) d = dict(category=category, emoji=emojis)
print(tmpl.render(d)) print(tmpl.render(d))
def generate_qml_list(**kwargs):
tmpl = Template('''
const QVector<Emoji> emoji::Provider::emoji = {
{%- for c in kwargs.items() %}
// {{ c[0].capitalize() }}
{%- for e in c[1] %}
Emoji{QString::fromUtf8("{{ e.code }}"), "{{ e.shortname }}", emoji::EmojiCategory::{{ c[0].capitalize() }}},
{%- endfor %}
{%- endfor %}
};
''')
d = dict(kwargs=kwargs)
print(tmpl.render(d))
if __name__ == '__main__': if __name__ == '__main__':
if len(sys.argv) < 2: if len(sys.argv) < 2:
@ -87,3 +101,4 @@ if __name__ == '__main__':
generate_code(objects, 'objects') generate_code(objects, 'objects')
generate_code(symbols, 'symbols') generate_code(symbols, 'symbols')
generate_code(flags, 'flags') generate_code(flags, 'flags')
generate_qml_list(people=people, nature=nature, food=food, activity=activity, travel=travel, objects=objects, symbols=symbols, flags=flags)

@ -9,8 +9,23 @@ set -eu
INPUT=$1 INPUT=$1
OUTPUT=nheko OUTPUT=nheko
filename=$(basename -- "$1")
extension="${filename##*.}"
mkdir ${OUTPUT}.iconset mkdir ${OUTPUT}.iconset
if [ extension = "svg" ]; then
rsvg-convert -h 16 "${INPUT}" > ${OUTPUT}.iconset/icon_16x16.png
rsvg-convert -h 32 "${INPUT}" > ${OUTPUT}.iconset/icon_16x16@2x.png
rsvg-convert -h 32 "${INPUT}" > ${OUTPUT}.iconset/icon_32x32.png
rsvg-convert -h 64 "${INPUT}" > ${OUTPUT}.iconset/icon_32x32@2x.png
rsvg-convert -h 128 "${INPUT}" > ${OUTPUT}.iconset/icon_128x128.png
rsvg-convert -h 256 "${INPUT}" > ${OUTPUT}.iconset/icon_128x128@2x.png
rsvg-convert -h 256 "${INPUT}" > ${OUTPUT}.iconset/icon_256x256.png
rsvg-convert -h 512 "${INPUT}" > ${OUTPUT}.iconset/icon_256x256@2x.png
rsvg-convert -h 512 "${INPUT}" > ${OUTPUT}.iconset/icon_512x512.png
rsvg-convert -h 1024 "${INPUT}" > ${OUTPUT}.iconset/icon_512x512@2x.png
else
sips -z 16 16 "${INPUT}" --out ${OUTPUT}.iconset/icon_16x16.png sips -z 16 16 "${INPUT}" --out ${OUTPUT}.iconset/icon_16x16.png
sips -z 32 32 "${INPUT}" --out ${OUTPUT}.iconset/icon_16x16@2x.png sips -z 32 32 "${INPUT}" --out ${OUTPUT}.iconset/icon_16x16@2x.png
sips -z 32 32 "${INPUT}" --out ${OUTPUT}.iconset/icon_32x32.png sips -z 32 32 "${INPUT}" --out ${OUTPUT}.iconset/icon_32x32.png
@ -22,6 +37,7 @@ sips -z 512 512 "${INPUT}" --out ${OUTPUT}.iconset/icon_256x256@2x.png
sips -z 512 512 "${INPUT}" --out ${OUTPUT}.iconset/icon_512x512.png sips -z 512 512 "${INPUT}" --out ${OUTPUT}.iconset/icon_512x512.png
cp "${INPUT}" ${OUTPUT}.iconset/icon_512x512@2x.png cp "${INPUT}" ${OUTPUT}.iconset/icon_512x512@2x.png
fi
iconutil -c icns ${OUTPUT}.iconset iconutil -c icns ${OUTPUT}.iconset

@ -452,7 +452,7 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent)
this, &ChatPage::updateGroupsInfo, communitiesList_, &CommunitiesList::setCommunities); this, &ChatPage::updateGroupsInfo, communitiesList_, &CommunitiesList::setCommunities);
connect(this, &ChatPage::leftRoom, this, &ChatPage::removeRoom); connect(this, &ChatPage::leftRoom, this, &ChatPage::removeRoom);
connect(this, &ChatPage::notificationsRetrieved, this, &ChatPage::sendDesktopNotifications); connect(this, &ChatPage::notificationsRetrieved, this, &ChatPage::sendNotifications);
connect(this, connect(this,
&ChatPage::highlightedNotifsRetrieved, &ChatPage::highlightedNotifsRetrieved,
this, this,
@ -527,7 +527,7 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent)
hasNotifications = true; hasNotifications = true;
} }
if (hasNotifications && userSettings_->hasDesktopNotifications()) if (hasNotifications && userSettings_->hasNotifications())
http::client()->notifications( http::client()->notifications(
5, 5,
"", "",
@ -885,7 +885,7 @@ ChatPage::updateRoomNotificationCount(const QString &room_id,
} }
void void
ChatPage::sendDesktopNotifications(const mtx::responses::Notifications &res) ChatPage::sendNotifications(const mtx::responses::Notifications &res)
{ {
for (const auto &item : res.notifications) { for (const auto &item : res.notifications) {
const auto event_id = mtx::accessors::event_id(item.event); const auto event_id = mtx::accessors::event_id(item.event);
@ -908,16 +908,23 @@ ChatPage::sendDesktopNotifications(const mtx::responses::Notifications &res)
if (isRoomActive(room_id)) if (isRoomActive(room_id))
continue; continue;
if (userSettings_->hasAlertOnNotification()) {
QApplication::alert(this);
}
if (userSettings_->hasDesktopNotifications()) {
notificationsManager.postNotification( notificationsManager.postNotification(
room_id, room_id,
QString::fromStdString(event_id), QString::fromStdString(event_id),
QString::fromStdString(cache::singleRoomInfo(item.room_id).name), QString::fromStdString(
cache::singleRoomInfo(item.room_id).name),
cache::displayName(room_id, user_id), cache::displayName(room_id, user_id),
utils::event_body(item.event), utils::event_body(item.event),
cache::getRoomAvatar(room_id)); cache::getRoomAvatar(room_id));
} }
}
} catch (const lmdb::error &e) { } catch (const lmdb::error &e) {
nhlog::db()->warn("error while sending desktop notification: {}", e.what()); nhlog::db()->warn("error while sending notification: {}", e.what());
} }
} }
} }

@ -212,7 +212,7 @@ private:
uint16_t notification_count, uint16_t notification_count,
uint16_t highlight_count); uint16_t highlight_count);
//! Send desktop notification for the received messages. //! Send desktop notification for the received messages.
void sendDesktopNotifications(const mtx::responses::Notifications &); void sendNotifications(const mtx::responses::Notifications &);
void showNotificationsDialog(const QPoint &point); void showNotificationsDialog(const QPoint &point);

@ -55,6 +55,7 @@ UserSettings::load()
QSettings settings; QSettings settings;
tray_ = settings.value("user/window/tray", false).toBool(); tray_ = settings.value("user/window/tray", false).toBool();
hasDesktopNotifications_ = settings.value("user/desktop_notifications", true).toBool(); hasDesktopNotifications_ = settings.value("user/desktop_notifications", true).toBool();
hasAlertOnNotification_ = settings.value("user/alert_on_notification", false).toBool();
startInTray_ = settings.value("user/window/start_in_tray", false).toBool(); startInTray_ = settings.value("user/window/start_in_tray", false).toBool();
groupView_ = settings.value("user/group_view", true).toBool(); groupView_ = settings.value("user/group_view", true).toBool();
buttonsInTimeline_ = settings.value("user/timeline/buttons", true).toBool(); buttonsInTimeline_ = settings.value("user/timeline/buttons", true).toBool();
@ -197,6 +198,16 @@ UserSettings::setDesktopNotifications(bool state)
save(); save();
} }
void
UserSettings::setAlertOnNotification(bool state)
{
if (state == hasAlertOnNotification_)
return;
hasAlertOnNotification_ = state;
emit alertOnNotificationChanged(state);
save();
}
void void
UserSettings::setAvatarCircles(bool state) UserSettings::setAvatarCircles(bool state)
{ {
@ -348,6 +359,7 @@ UserSettings::save()
settings.setValue("group_view", groupView_); settings.setValue("group_view", groupView_);
settings.setValue("markdown_enabled", markdown_); settings.setValue("markdown_enabled", markdown_);
settings.setValue("desktop_notifications", hasDesktopNotifications_); settings.setValue("desktop_notifications", hasDesktopNotifications_);
settings.setValue("alert_on_notification", hasAlertOnNotification_);
settings.setValue("theme", theme()); settings.setValue("theme", theme());
settings.setValue("font_family", font_); settings.setValue("font_family", font_);
settings.setValue("emoji_font_family", emojiFont_); settings.setValue("emoji_font_family", emojiFont_);
@ -416,6 +428,7 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
readReceipts_ = new Toggle{this}; readReceipts_ = new Toggle{this};
markdown_ = new Toggle{this}; markdown_ = new Toggle{this};
desktopNotifications_ = new Toggle{this}; desktopNotifications_ = new Toggle{this};
alertOnNotification_ = new Toggle{this};
scaleFactorCombo_ = new QComboBox{this}; scaleFactorCombo_ = new QComboBox{this};
fontSizeCombo_ = new QComboBox{this}; fontSizeCombo_ = new QComboBox{this};
fontSelectionCombo_ = new QComboBox{this}; fontSelectionCombo_ = new QComboBox{this};
@ -569,6 +582,10 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
boxWrap(tr("Desktop notifications"), boxWrap(tr("Desktop notifications"),
desktopNotifications_, desktopNotifications_,
tr("Notify about received message when the client is not currently focused.")); tr("Notify about received message when the client is not currently focused."));
boxWrap(tr("Alert on notification"),
alertOnNotification_,
tr("Show an alert when a message is received.\nThis usually causes the application "
"icon in the task bar to animate in some fashion."));
boxWrap(tr("Highlight message on hover"), boxWrap(tr("Highlight message on hover"),
messageHoverHighlight_, messageHoverHighlight_,
tr("Change the background color of messages when you hover over them.")); tr("Change the background color of messages when you hover over them."));
@ -695,6 +712,10 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
settings_->setDesktopNotifications(!disabled); settings_->setDesktopNotifications(!disabled);
}); });
connect(alertOnNotification_, &Toggle::toggled, this, [this](bool disabled) {
settings_->setAlertOnNotification(!disabled);
});
connect(messageHoverHighlight_, &Toggle::toggled, this, [this](bool disabled) { connect(messageHoverHighlight_, &Toggle::toggled, this, [this](bool disabled) {
settings_->setMessageHoverHighlight(!disabled); settings_->setMessageHoverHighlight(!disabled);
}); });
@ -740,6 +761,7 @@ UserSettingsPage::showEvent(QShowEvent *)
readReceipts_->setState(!settings_->readReceipts()); readReceipts_->setState(!settings_->readReceipts());
markdown_->setState(!settings_->markdown()); markdown_->setState(!settings_->markdown());
desktopNotifications_->setState(!settings_->hasDesktopNotifications()); desktopNotifications_->setState(!settings_->hasDesktopNotifications());
alertOnNotification_->setState(!settings_->hasAlertOnNotification());
messageHoverHighlight_->setState(!settings_->messageHoverHighlight()); messageHoverHighlight_->setState(!settings_->messageHoverHighlight());
enlargeEmojiOnlyMessages_->setState(!settings_->enlargeEmojiOnlyMessages()); enlargeEmojiOnlyMessages_->setState(!settings_->enlargeEmojiOnlyMessages());
deviceIdValue_->setText(QString::fromStdString(http::client()->device_id())); deviceIdValue_->setText(QString::fromStdString(http::client()->device_id()));

@ -58,6 +58,8 @@ class UserSettings : public QObject
bool readReceipts READ readReceipts WRITE setReadReceipts NOTIFY readReceiptsChanged) bool readReceipts READ readReceipts WRITE setReadReceipts NOTIFY readReceiptsChanged)
Q_PROPERTY(bool desktopNotifications READ hasDesktopNotifications WRITE Q_PROPERTY(bool desktopNotifications READ hasDesktopNotifications WRITE
setDesktopNotifications NOTIFY desktopNotificationsChanged) setDesktopNotifications NOTIFY desktopNotificationsChanged)
Q_PROPERTY(bool alertOnNotification READ hasAlertOnNotification WRITE setAlertOnNotification
NOTIFY alertOnNotificationChanged)
Q_PROPERTY( Q_PROPERTY(
bool avatarCircles READ avatarCircles WRITE setAvatarCircles NOTIFY avatarCirclesChanged) bool avatarCircles READ avatarCircles WRITE setAvatarCircles NOTIFY avatarCirclesChanged)
Q_PROPERTY(bool decryptSidebar READ decryptSidebar WRITE setDecryptSidebar NOTIFY Q_PROPERTY(bool decryptSidebar READ decryptSidebar WRITE setDecryptSidebar NOTIFY
@ -101,6 +103,7 @@ public:
void setButtonsInTimeline(bool state); void setButtonsInTimeline(bool state);
void setTimelineMaxWidth(int state); void setTimelineMaxWidth(int state);
void setDesktopNotifications(bool state); void setDesktopNotifications(bool state);
void setAlertOnNotification(bool state);
void setAvatarCircles(bool state); void setAvatarCircles(bool state);
void setDecryptSidebar(bool state); void setDecryptSidebar(bool state);
void setPresence(Presence state); void setPresence(Presence state);
@ -119,6 +122,11 @@ public:
bool buttonsInTimeline() const { return buttonsInTimeline_; } bool buttonsInTimeline() const { return buttonsInTimeline_; }
bool readReceipts() const { return readReceipts_; } bool readReceipts() const { return readReceipts_; }
bool hasDesktopNotifications() const { return hasDesktopNotifications_; } bool hasDesktopNotifications() const { return hasDesktopNotifications_; }
bool hasAlertOnNotification() const { return hasAlertOnNotification_; }
bool hasNotifications() const
{
return hasDesktopNotifications() || hasAlertOnNotification();
}
int timelineMaxWidth() const { return timelineMaxWidth_; } int timelineMaxWidth() const { return timelineMaxWidth_; }
double fontSize() const { return baseFontSize_; } double fontSize() const { return baseFontSize_; }
QString font() const { return font_; } QString font() const { return font_; }
@ -138,6 +146,7 @@ signals:
void buttonInTimelineChanged(bool state); void buttonInTimelineChanged(bool state);
void readReceiptsChanged(bool state); void readReceiptsChanged(bool state);
void desktopNotificationsChanged(bool state); void desktopNotificationsChanged(bool state);
void alertOnNotificationChanged(bool state);
void avatarCirclesChanged(bool state); void avatarCirclesChanged(bool state);
void decryptSidebarChanged(bool state); void decryptSidebarChanged(bool state);
void timelineMaxWidthChanged(int state); void timelineMaxWidthChanged(int state);
@ -164,6 +173,7 @@ private:
bool buttonsInTimeline_; bool buttonsInTimeline_;
bool readReceipts_; bool readReceipts_;
bool hasDesktopNotifications_; bool hasDesktopNotifications_;
bool hasAlertOnNotification_;
bool avatarCircles_; bool avatarCircles_;
bool decryptSidebar_; bool decryptSidebar_;
int timelineMaxWidth_; int timelineMaxWidth_;
@ -222,6 +232,7 @@ private:
Toggle *readReceipts_; Toggle *readReceipts_;
Toggle *markdown_; Toggle *markdown_;
Toggle *desktopNotifications_; Toggle *desktopNotifications_;
Toggle *alertOnNotification_;
Toggle *avatarCircles_; Toggle *avatarCircles_;
Toggle *decryptSidebar_; Toggle *decryptSidebar_;
QLabel *deviceFingerprintValue_; QLabel *deviceFingerprintValue_;

@ -0,0 +1,110 @@
#include "EmojiModel.h"
#include <Cache.h>
#include <MatrixClient.h>
using namespace emoji;
QHash<int, QByteArray>
EmojiModel::roleNames() const
{
static QHash<int, QByteArray> roles;
if (roles.isEmpty()) {
roles = QAbstractListModel::roleNames();
roles[static_cast<int>(EmojiModel::Roles::Unicode)] = QByteArrayLiteral("unicode");
roles[static_cast<int>(EmojiModel::Roles::ShortName)] =
QByteArrayLiteral("shortName");
roles[static_cast<int>(EmojiModel::Roles::Category)] =
QByteArrayLiteral("category");
roles[static_cast<int>(EmojiModel::Roles::Emoji)] = QByteArrayLiteral("emoji");
}
return roles;
}
int
EmojiModel::rowCount(const QModelIndex &parent) const
{
return parent == QModelIndex() ? Provider::emoji.count() : 0;
}
QVariant
EmojiModel::data(const QModelIndex &index, int role) const
{
if (hasIndex(index.row(), index.column(), index.parent())) {
switch (role) {
case Qt::DisplayRole:
case static_cast<int>(EmojiModel::Roles::Unicode):
return Provider::emoji[index.row()].unicode;
case Qt::ToolTipRole:
case static_cast<int>(EmojiModel::Roles::ShortName):
return Provider::emoji[index.row()].shortName;
case static_cast<int>(EmojiModel::Roles::Category):
return QVariant::fromValue(Provider::emoji[index.row()].category);
case static_cast<int>(EmojiModel::Roles::Emoji):
return QVariant::fromValue(Provider::emoji[index.row()]);
}
}
return {};
}
EmojiProxyModel::EmojiProxyModel(QObject *parent)
: QSortFilterProxyModel(parent)
{}
EmojiProxyModel::~EmojiProxyModel() {}
EmojiCategory
EmojiProxyModel::category() const
{
return category_;
}
void
EmojiProxyModel::setCategory(EmojiCategory cat)
{
if (category_ == cat) {
return;
}
category_ = cat;
emit categoryChanged();
invalidateFilter();
}
QString
EmojiProxyModel::filter() const
{
return filterRegExp().pattern();
}
void
EmojiProxyModel::setFilter(const QString &filter)
{
if (filterRegExp().pattern() == filter) {
return;
}
setFilterWildcard(filter);
emit filterChanged();
}
bool
EmojiProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
{
const QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);
const Emoji emoji = index.data(static_cast<int>(EmojiModel::Roles::Emoji)).value<Emoji>();
// TODO: Add favorites / recently used
if (category_ != EmojiCategory::Search) {
return emoji.category == category_;
}
return filterRegExp().isEmpty() ? true : filterRegExp().indexIn(emoji.shortName) != -1;
}

@ -0,0 +1,64 @@
#pragma once
#include <QAbstractListModel>
#include <QSet>
#include <QSortFilterProxyModel>
#include <QVector>
#include "Provider.h"
namespace emoji {
/*
* Provides access to the emojis in Provider.h to QML
*/
class EmojiModel : public QAbstractListModel
{
Q_OBJECT
public:
enum Roles
{
Unicode = Qt::UserRole, // unicode of emoji
Category, // category of emoji
ShortName, // shortext of the emoji
Emoji, // Contains everything from the Emoji
};
using QAbstractListModel::QAbstractListModel;
QHash<int, QByteArray> roleNames() const override;
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
};
class EmojiProxyModel : public QSortFilterProxyModel
{
Q_OBJECT
Q_PROPERTY(
emoji::EmojiCategory category READ category WRITE setCategory NOTIFY categoryChanged)
Q_PROPERTY(QString filter READ filter WRITE setFilter NOTIFY filterChanged)
public:
explicit EmojiProxyModel(QObject *parent = nullptr);
~EmojiProxyModel() override;
EmojiCategory category() const;
void setCategory(EmojiCategory cat);
QString filter() const;
void setFilter(const QString &filter);
signals:
void categoryChanged();
void filterChanged();
protected:
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override;
private:
EmojiCategory category_ = EmojiCategory::Search;
emoji::Provider emoji_provider_;
};
}

File diff suppressed because it is too large Load Diff

@ -17,22 +17,48 @@
#pragma once #pragma once
#include <QObject>
#include <QSet>
#include <QString> #include <QString>
#include <QVector>
#include <vector> #include <vector>
namespace emoji { namespace emoji {
Q_NAMESPACE
enum class EmojiCategory
{
People,
Nature,
Food,
Activity,
Travel,
Objects,
Symbols,
Flags,
Search
};
Q_ENUM_NS(EmojiCategory)
struct Emoji struct Emoji
{ {
// Unicode code. Q_GADGET
Q_PROPERTY(const QString &unicode MEMBER unicode)
Q_PROPERTY(const QString &shortName MEMBER shortName)
Q_PROPERTY(emoji::EmojiCategory category MEMBER category)
public:
QString unicode; QString unicode;
// Keyboard shortcut e.g :emoji: QString shortName;
QString shortname; EmojiCategory category;
}; };
class Provider class Provider
{ {
public: public:
// all emoji for QML purposes
static const QVector<Emoji> emoji;
static const std::vector<Emoji> people; static const std::vector<Emoji> people;
static const std::vector<Emoji> nature; static const std::vector<Emoji> nature;
static const std::vector<Emoji> food; static const std::vector<Emoji> food;
@ -42,4 +68,6 @@ public:
static const std::vector<Emoji> symbols; static const std::vector<Emoji> symbols;
static const std::vector<Emoji> flags; static const std::vector<Emoji> flags;
}; };
} // namespace emoji } // namespace emoji
Q_DECLARE_METATYPE(emoji::Emoji)

File diff suppressed because it is too large Load Diff

@ -10,7 +10,7 @@ ReactionsModel::roleNames() const
{Key, "key"}, {Key, "key"},
{Count, "counter"}, {Count, "counter"},
{Users, "users"}, {Users, "users"},
{SelfReacted, "selfReacted"}, {SelfReactedEvent, "selfReactedEvent"},
}; };
} }
@ -45,11 +45,11 @@ ReactionsModel::data(const QModelIndex &index, int role) const
} }
return users; return users;
} }
case SelfReacted: case SelfReactedEvent:
for (const auto &reaction : reactions[i].reactions) for (const auto &reaction : reactions[i].reactions)
if (reaction.second.sender == http::client()->user_id().to_string()) if (reaction.second.sender == http::client()->user_id().to_string())
return true; return QString::fromStdString(reaction.second.event_id);
return false; return QStringLiteral("");
default: default:
return {}; return {};
} }

@ -18,7 +18,7 @@ public:
Key, Key,
Count, Count,
Users, Users,
SelfReacted, SelfReactedEvent,
}; };
QHash<int, QByteArray> roleNames() const override; QHash<int, QByteArray> roleNames() const override;

@ -154,13 +154,25 @@ TimelineModel::TimelineModel(TimelineViewManager *manager, QString room_id, QObj
connect(this, &TimelineModel::messageSent, this, [this](QString txn_id, QString event_id) { connect(this, &TimelineModel::messageSent, this, [this](QString txn_id, QString event_id) {
pending.removeOne(txn_id); pending.removeOne(txn_id);
auto ev = events.value(txn_id);
if (auto reaction =
std::get_if<mtx::events::RoomEvent<mtx::events::msg::Reaction>>(&ev)) {
QString reactedTo =
QString::fromStdString(reaction->content.relates_to.event_id);
auto &rModel = reactions[reactedTo];
rModel.removeReaction(*reaction);
auto rCopy = *reaction;
rCopy.event_id = event_id.toStdString();
rModel.addReaction(room_id_.toStdString(), rCopy);
}
int idx = idToIndex(txn_id); int idx = idToIndex(txn_id);
if (idx < 0) { if (idx < 0) {
// transaction already received via sync // transaction already received via sync
return; return;
} }
eventOrder[idx] = event_id; eventOrder[idx] = event_id;
auto ev = events.value(txn_id);
ev = std::visit( ev = std::visit(
[event_id](const auto &e) -> mtx::events::collections::TimelineEvents { [event_id](const auto &e) -> mtx::events::collections::TimelineEvents {
auto eventCopy = e; auto eventCopy = e;
@ -379,7 +391,7 @@ TimelineModel::data(const QString &id, int role) const
else else
return {}; return {};
case RoomId: case RoomId:
return QVariant(QString::fromStdString(room_id(event))); return QVariant(room_id_);
case RoomName: case RoomName:
return QVariant(QString::fromStdString(room_name(event))); return QVariant(QString::fromStdString(room_name(event)));
case RoomTopic: case RoomTopic:
@ -683,6 +695,14 @@ TimelineModel::internalAddEvents(
QString reactedTo = QString reactedTo =
QString::fromStdString(reaction->content.relates_to.event_id); QString::fromStdString(reaction->content.relates_to.event_id);
events.insert(id, e); events.insert(id, e);
// remove local echo
if (!txid.isEmpty()) {
auto rCopy = *reaction;
rCopy.event_id = txid.toStdString();
reactions[reactedTo].removeReaction(rCopy);
}
reactions[reactedTo].addReaction(room_id_.toStdString(), *reaction); reactions[reactedTo].addReaction(room_id_.toStdString(), *reaction);
int idx = idToIndex(reactedTo); int idx = idToIndex(reactedTo);
if (idx >= 0) if (idx >= 0)
@ -1355,10 +1375,11 @@ struct SendMessageVisitor
, model_(model) , model_(model)
{} {}
// Do-nothing operator for all unhandled events
template<typename T> template<typename T>
void operator()(const mtx::events::Event<T> &) void operator()(const mtx::events::Event<T> &)
{} {}
// Operator for m.room.message events that contain a msgtype in their content
template<typename T, template<typename T,
std::enable_if_t<std::is_same<decltype(T::msgtype), std::string>::value, int> = 0> std::enable_if_t<std::is_same<decltype(T::msgtype), std::string>::value, int> = 0>
void operator()(const mtx::events::RoomEvent<T> &msg) void operator()(const mtx::events::RoomEvent<T> &msg)
@ -1395,6 +1416,36 @@ struct SendMessageVisitor
} }
} }
// Special operator for reactions, which are a type of m.room.message, but need to be
// handled distinctly for their differences from normal room messages. Specifically,
// reactions need to have the relation outside of ciphertext, or synapse / the homeserver
// cannot handle it correctly. See the MSC for more details:
// https://github.com/matrix-org/matrix-doc/blob/matthew/msc1849/proposals/1849-aggregations.md#end-to-end-encryption
void operator()(const mtx::events::RoomEvent<mtx::events::msg::Reaction> &msg)
{
QString txn_id_qstr = txn_id_qstr_;
TimelineModel *model = model_;
http::client()
->send_room_message<mtx::events::msg::Reaction, mtx::events::EventType::Reaction>(
model->room_id_.toStdString(),
txn_id_qstr.toStdString(),
msg.content,
[txn_id_qstr, model](const mtx::responses::EventId &res,
mtx::http::RequestErr err) {
if (err) {
const int status_code = static_cast<int>(err->status_code);
nhlog::net()->warn("[{}] failed to send message: {} {}",
txn_id_qstr.toStdString(),
err->matrix_error.error,
status_code);
emit model->messageFailed(txn_id_qstr);
}
emit model->messageSent(
txn_id_qstr, QString::fromStdString(res.event_id.to_string()));
});
}
QString txn_id_qstr_; QString txn_id_qstr_;
TimelineModel *model_; TimelineModel *model_;
}; };
@ -1426,10 +1477,12 @@ TimelineModel::addPendingMessage(mtx::events::collections::TimelineEvents event)
internalAddEvents({event}); internalAddEvents({event});
QString txn_id_qstr = QString::fromStdString(mtx::accessors::event_id(event)); QString txn_id_qstr = QString::fromStdString(mtx::accessors::event_id(event));
beginInsertRows(QModelIndex(), 0, 0);
pending.push_back(txn_id_qstr); pending.push_back(txn_id_qstr);
if (!std::get_if<mtx::events::RoomEvent<mtx::events::msg::Reaction>>(&event)) {
beginInsertRows(QModelIndex(), 0, 0);
this->eventOrder.insert(this->eventOrder.begin(), txn_id_qstr); this->eventOrder.insert(this->eventOrder.begin(), txn_id_qstr);
endInsertRows(); endInsertRows();
}
updateLastMessage(); updateLastMessage();
emit nextPendingMessage(); emit nextPendingMessage();

@ -217,7 +217,6 @@ public slots:
} }
std::vector<QString> typingUsers() const { return typingUsers_; } std::vector<QString> typingUsers() const { return typingUsers_; }
bool paginationInProgress() const { return m_paginationInProgress; } bool paginationInProgress() const { return m_paginationInProgress; }
QString reply() const { return reply_; } QString reply() const { return reply_; }
void setReply(QString newReply) void setReply(QString newReply)
{ {

@ -13,6 +13,8 @@
#include "MxcImageProvider.h" #include "MxcImageProvider.h"
#include "UserSettingsPage.h" #include "UserSettingsPage.h"
#include "dialogs/ImageOverlay.h" #include "dialogs/ImageOverlay.h"
#include "emoji/EmojiModel.h"
#include "emoji/Provider.h"
Q_DECLARE_METATYPE(mtx::events::collections::TimelineEvents) Q_DECLARE_METATYPE(mtx::events::collections::TimelineEvents)
@ -84,6 +86,18 @@ TimelineViewManager::TimelineViewManager(QSharedPointer<UserSettings> userSettin
qmlRegisterType<DelegateChoice>("im.nheko", 1, 0, "DelegateChoice"); qmlRegisterType<DelegateChoice>("im.nheko", 1, 0, "DelegateChoice");
qmlRegisterType<DelegateChooser>("im.nheko", 1, 0, "DelegateChooser"); qmlRegisterType<DelegateChooser>("im.nheko", 1, 0, "DelegateChooser");
qRegisterMetaType<mtx::events::collections::TimelineEvents>(); qRegisterMetaType<mtx::events::collections::TimelineEvents>();
qmlRegisterType<emoji::EmojiModel>("im.nheko.EmojiModel", 1, 0, "EmojiModel");
qmlRegisterType<emoji::EmojiProxyModel>("im.nheko.EmojiModel", 1, 0, "EmojiProxyModel");
qmlRegisterUncreatableType<QAbstractItemModel>(
"im.nheko.EmojiModel", 1, 0, "QAbstractItemModel", "Used by proxy models");
qmlRegisterUncreatableType<emoji::Emoji>(
"im.nheko.EmojiModel", 1, 0, "Emoji", "Used by emoji models");
qmlRegisterUncreatableMetaObject(emoji::staticMetaObject,
"im.nheko.EmojiModel",
1,
0,
"EmojiCategory",
"Error: Only enums");
#ifdef USE_QUICK_VIEW #ifdef USE_QUICK_VIEW
view = new QQuickView(); view = new QQuickView();
@ -295,6 +309,36 @@ TimelineViewManager::queueEmoteMessage(const QString &msg)
timeline_->sendMessage(emote); timeline_->sendMessage(emote);
} }
void
TimelineViewManager::reactToMessage(const QString &roomId,
const QString &reactedEvent,
const QString &reactionKey,
const QString &selfReactedEvent)
{
// If selfReactedEvent is empty, that means we haven't previously reacted
if (selfReactedEvent.isEmpty()) {
queueReactionMessage(roomId, reactedEvent, reactionKey);
// Otherwise, we have previously reacted and the reaction should be redacted
} else {
auto model = models.value(roomId);
model->redactEvent(selfReactedEvent);
}
}
void
TimelineViewManager::queueReactionMessage(const QString &roomId,
const QString &reactedEvent,
const QString &reactionKey)
{
mtx::events::msg::Reaction reaction;
reaction.relates_to.rel_type = mtx::common::RelationType::Annotation;
reaction.relates_to.event_id = reactedEvent.toStdString();
reaction.relates_to.key = reactionKey.toStdString();
auto model = models.value(roomId);
model->sendMessage(reaction);
}
void void
TimelineViewManager::queueImageMessage(const QString &roomid, TimelineViewManager::queueImageMessage(const QString &roomid,
const QString &filename, const QString &filename,

@ -1,5 +1,6 @@
#pragma once #pragma once
#include <QHash>
#include <QQuickView> #include <QQuickView>
#include <QQuickWidget> #include <QQuickWidget>
#include <QSharedPointer> #include <QSharedPointer>
@ -12,6 +13,8 @@
#include "Logging.h" #include "Logging.h"
#include "TimelineModel.h" #include "TimelineModel.h"
#include "Utils.h" #include "Utils.h"
#include "emoji/EmojiModel.h"
#include "emoji/Provider.h"
class MxcImageProvider; class MxcImageProvider;
class BlurhashProvider; class BlurhashProvider;
@ -58,7 +61,13 @@ public slots:
void setHistoryView(const QString &room_id); void setHistoryView(const QString &room_id);
void updateColorPalette(); void updateColorPalette();
void queueReactionMessage(const QString &roomId,
const QString &reactedEvent,
const QString &reaction);
void reactToMessage(const QString &roomId,
const QString &reactedEvent,
const QString &reactionKey,
const QString &selfReactedEvent);
void queueTextMessage(const QString &msg); void queueTextMessage(const QString &msg);
void queueEmoteMessage(const QString &msg); void queueEmoteMessage(const QString &msg);
void queueImageMessage(const QString &roomid, void queueImageMessage(const QString &roomid,
@ -103,6 +112,7 @@ private:
QHash<QString, QSharedPointer<TimelineModel>> models; QHash<QString, QSharedPointer<TimelineModel>> models;
TimelineModel *timeline_ = nullptr; TimelineModel *timeline_ = nullptr;
bool isInitialSync_ = true; bool isInitialSync_ = true;
QSharedPointer<UserSettings> settings; QSharedPointer<UserSettings> settings;

Loading…
Cancel
Save