Merge branch 'master' into avatar_username_feature

pull/445/head
DeepBlueV7.X 4 years ago committed by GitHub
commit a7150b5666
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 13
      .ci/format.sh
  2. 38
      CHANGELOG.md
  3. 6
      CMakeLists.txt
  4. 4
      README.md
  5. 10
      appveyor.yml
  6. 3
      io.github.NhekoReborn.Nheko.json
  7. 79
      resources/langs/nheko_cs.ts
  8. 81
      resources/langs/nheko_de.ts
  9. 79
      resources/langs/nheko_el.ts
  10. 81
      resources/langs/nheko_en.ts
  11. 79
      resources/langs/nheko_eo.ts
  12. 81
      resources/langs/nheko_et.ts
  13. 79
      resources/langs/nheko_fi.ts
  14. 79
      resources/langs/nheko_fr.ts
  15. 375
      resources/langs/nheko_hu.ts
  16. 79
      resources/langs/nheko_it.ts
  17. 79
      resources/langs/nheko_ja.ts
  18. 117
      resources/langs/nheko_ml.ts
  19. 81
      resources/langs/nheko_nl.ts
  20. 79
      resources/langs/nheko_pl.ts
  21. 79
      resources/langs/nheko_pt_PT.ts
  22. 79
      resources/langs/nheko_ro.ts
  23. 91
      resources/langs/nheko_ru.ts
  24. 79
      resources/langs/nheko_si.ts
  25. 79
      resources/langs/nheko_sv.ts
  26. 79
      resources/langs/nheko_zh_CN.ts
  27. 1
      resources/nheko.appdata.xml
  28. 3
      resources/qml/Completer.qml
  29. 16
      resources/qml/MessageInput.qml
  30. 126
      resources/qml/PrivacyScreen.qml
  31. 2
      resources/qml/TimelineRow.qml
  32. 16
      resources/qml/TimelineView.qml
  33. 24
      resources/qml/UserProfile.qml
  34. 1
      resources/res.qrc
  35. 2
      src/ChatPage.cpp
  36. 2
      src/ChatPage.h
  37. 14
      src/LoginPage.cpp
  38. 20
      src/MainWindow.cpp
  39. 11
      src/MainWindow.h
  40. 79
      src/UserSettingsPage.cpp
  41. 14
      src/UserSettingsPage.h
  42. 3
      src/Utils.cpp
  43. 10
      src/timeline/EventStore.cpp
  44. 4
      src/timeline/TimelineViewManager.cpp
  45. 14
      src/timeline/TimelineViewManager.h
  46. 4
      src/ui/UserProfile.cpp

@ -14,4 +14,17 @@ do
clang-format -i "$f"
done;
QMLFORMAT_PATH=$(command -v qmlformat || true)
if [ -n "$QMLFORMAT_PATH" ]; then
QML_FILES=$(find resources -type f -iname "*.qml")
for f in $QML_FILES
do
$QMLFORMAT_PATH -i "$f"
done;
else
echo "qmlformat not found; skipping qml formatting"
fi
git diff --exit-code

@ -1,5 +1,43 @@
# Changelog
## [0.8.1] -- 2021-01-27
### Features
- `/plain` and `/md` commands to override the current markdown setting. (contributed by lorendb)
- Allow persistent hiding of rooms with a specific tag (or from a community) via a context menu.
- Allow open media messages in an external program immediately. (contributed by rnhmjoj)
### Improvements
- Use async dbus connection for notifications. (contributed by lorendb)
- Update Hungarian translations. (contributed by maxigaz)
- Update Finnish translations. (contributed by Priit)
- Update Malayalam translations. (contributed by vachan-maker)
- Update Dutch translations. (contributed by Glael)
- Store splitter size across restarts.
- Add a border around the completer. (contributed by lorendb)
- Request keys for messages with unknown message indices (once per restart, when they are shown).
- Move the database location to XDG_DATA_DIR. (contributed by rnhmjoj)
- Reload the timeline after key backup import.
- Autoclose completer on `space`, when there are no matches.
- Make completer only react, when the mouse cursor is moved.
### Bugfixes
- Fix unhandled exception, when a device has no keys.
- Fix some cmake warnings regarding GNUInstallDirs.
- Fix tags being broken. If you have no tags showing up, you may want to logout and login again.
- Fix versionOk being called on the wrong thread. (contributed by Jedi18)
- Fix font tags showing up in media message filenames.
- Fix user profile in dark themes showing the wrong colors. (contributed by lorendb)
- Fix emoji category switching on old Qt versions. (contributed by lorendb)
- Fix old messages being replayed after a limited timeline.
- Fix empty secrets being returned from the wallet breaking verification.
- Make matrix link chat invites create a direct chat.
- Fix focus handling on room change or reply button clicks.
- Fix username completion deleting the character before it.
## [0.8.0] -- 2021-01-21
### Highlights

@ -81,7 +81,7 @@ include(GNUInstallDirs)
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "8")
set(CPACK_PACKAGE_VERSION_PATCH "0")
set(CPACK_PACKAGE_VERSION_PATCH "1")
set(PROJECT_VERSION_MAJOR ${CPACK_PACKAGE_VERSION_MAJOR})
set(PROJECT_VERSION_MINOR ${CPACK_PACKAGE_VERSION_MINOR})
set(PROJECT_VERSION_PATCH ${CPACK_PACKAGE_VERSION_PATCH})
@ -355,13 +355,13 @@ if(USE_BUNDLED_MTXCLIENT)
FetchContent_Declare(
MatrixClient
GIT_REPOSITORY https://github.com/Nheko-Reborn/mtxclient.git
GIT_TAG 1e97d3195d366a15a086ca451d082d59972105ba
GIT_TAG v0.4.1
)
set(BUILD_LIB_EXAMPLES OFF CACHE INTERNAL "")
set(BUILD_LIB_TESTS OFF CACHE INTERNAL "")
FetchContent_MakeAvailable(MatrixClient)
else()
find_package(MatrixClient 0.4.0 REQUIRED)
find_package(MatrixClient 0.4.1 REQUIRED)
endif()
if(USE_BUNDLED_OLM)
include(FetchContent)

@ -2,7 +2,7 @@ nheko
----
[![Build Status](https://nheko.im/nheko-reborn/nheko/badges/master/pipeline.svg)](https://nheko.im/nheko-reborn/nheko/-/pipelines/latest)
[![Build status](https://ci.appveyor.com/api/projects/status/07qrqbfylsg4hw2h/branch/master?svg=true)](https://ci.appveyor.com/project/redsky17/nheko/branch/master)
[![Stable Version](https://img.shields.io/badge/download-stable-green.svg)](https://github.com/Nheko-Reborn/nheko/releases/v0.8.0)
[![Stable Version](https://img.shields.io/badge/download-stable-green.svg)](https://github.com/Nheko-Reborn/nheko/releases/v0.8.1)
[![Nightly](https://img.shields.io/badge/download-nightly-green.svg)](https://matrix-static.neko.dev/room/!TshDrgpBNBDmfDeEGN:neko.dev/)
[![#nheko-reborn:matrix.org](https://img.shields.io/matrix/nheko-reborn:matrix.org.svg?label=%23nheko-reborn:matrix.org)](https://matrix.to/#/#nheko-reborn:matrix.org)
[![AUR: nheko](https://img.shields.io/badge/AUR-nheko-blue.svg)](https://aur.archlinux.org/packages/nheko)
@ -74,7 +74,7 @@ sudo dnf install nheko
#### Gentoo Linux
```bash
sudo eselect repository enable matrix
sudo eselect repository enable guru
sudo emerge -a nheko
```

@ -30,8 +30,8 @@ build_script:
# VERSION format: branch-master/branch-1.2
# INSTVERSION format: x.y.z
# WINVERSION format: 9999.0.0.123/1.2.0.234
- if "%APPVEYOR_REPO_TAG%"=="false" set INSTVERSION=0.8.0
- if "%APPVEYOR_REPO_TAG%"=="false" set VERSION=0.8.0
- if "%APPVEYOR_REPO_TAG%"=="false" set INSTVERSION=0.8.1
- if "%APPVEYOR_REPO_TAG%"=="false" set VERSION=0.8.1
- if "%APPVEYOR_REPO_TAG%"=="false" if "%APPVEYOR_REPO_BRANCH%"=="master" set INSTVERSION=9999.0
- if "%APPVEYOR_REPO_TAG%"=="false" set WINVERSION=%INSTVERSION%.0.%APPVEYOR_BUILD_NUMBER%
# VERSION format: v1.2.3/v1.3.4
@ -90,9 +90,9 @@ after_build:
- copy %BUILD%\deploy\installer\cleanup\package.xml installer\packages\io.github.nhekoreborn.nheko.cleanup\meta
- copy %BUILD%\deploy\installer\cleanup\installscript.qs installer\packages\io.github.nhekoreborn.nheko.cleanup\meta
# Amend version and date
- sed -i "s/__VERSION__/0.8.0/" installer\config\config.xml
- sed -i "s/__VERSION__/0.8.0/" installer\packages\io.github.nhekoreborn.nheko\meta\package.xml
- sed -i "s/__VERSION__/0.8.0/" installer\packages\io.github.nhekoreborn.nheko.cleanup\meta\package.xml
- sed -i "s/__VERSION__/0.8.1/" installer\config\config.xml
- sed -i "s/__VERSION__/0.8.1/" installer\packages\io.github.nhekoreborn.nheko\meta\package.xml
- sed -i "s/__VERSION__/0.8.1/" installer\packages\io.github.nhekoreborn.nheko.cleanup\meta\package.xml
- sed -i "s/__DATE__/%DATE%/" installer\packages\io.github.nhekoreborn.nheko\meta\package.xml
- sed -i "s/__DATE__/%DATE%/" installer\packages\io.github.nhekoreborn.nheko.cleanup\meta\package.xml
# Copy nheko data

@ -220,7 +220,8 @@
"name": "mtxclient",
"sources": [
{
"commit": "1e97d3195d366a15a086ca451d082d59972105ba",
"commit": "4951190c938740defa0988d98d5e861038622936",
"tag": "v0.4.1",
"type": "git",
"url": "https://github.com/Nheko-Reborn/mtxclient.git"
}

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation type="unfinished"></translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation type="unfinished"></translation>
</message>
@ -280,7 +280,12 @@
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation type="unfinished"></translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation type="unfinished"></translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation>
</message>
@ -596,7 +607,12 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation type="unfinished"></translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation type="unfinished"></translation>
</message>
@ -606,19 +622,37 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation type="unfinished"></translation>
</message>
@ -763,7 +797,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation type="unfinished"></translation>
</message>
@ -870,7 +904,7 @@ Example: https://server.my:8787</source>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation type="unfinished"></translation>
</message>
@ -973,7 +1007,7 @@ Example: https://server.my:8787</source>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation type="unfinished"></translation>
</message>
@ -1015,7 +1049,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation type="unfinished"></translation>
@ -1115,7 +1149,7 @@ Example: https://server.my:8787</source>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation type="unfinished"></translation>
</message>
@ -1126,7 +1160,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation type="unfinished"></translation>
</message>
@ -1146,7 +1180,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished">
@ -1266,12 +1300,12 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation>
</message>
@ -1352,6 +1386,11 @@ Example: https://server.my:8787</source>
<source>Save as</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1464,7 +1503,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation type="unfinished"></translation>
</message>
@ -1487,7 +1526,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation type="unfinished"></translation>
</message>

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation>Du bist dem Raum beigetreten.</translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation>Eingeladener Benutzer: %1</translation>
</message>
@ -274,13 +274,18 @@
<message>
<location line="+54"/>
<source>Failed to kick %1 from %2: %3</source>
<translation type="unfinished"></translation>
<translation>Kontte %1 nicht aus %2 entfernen: %3</translation>
</message>
</context>
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation>Verstecke Räume mit diesem Tag oder aus dieser Community</translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation>Alle Räume</translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation>-- Verschlüsseltes Event (keine Schlüssel zur Entschlüsselung gefunden) --</translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation>-- Verschlüsseltes Event (Schlüssel passt nicht für diesen Nachrichtenindex) --</translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation>Alle Dateien (*)</translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation>Medienupload fehlgeschlagen. Bitte versuche es erneut.</translation>
</message>
@ -599,7 +610,12 @@ Wenn Nheko deinen Server nicht automatisch erkennen kann, wird es dich nach dem
<translation>Passwort</translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation>Dein Passwort.</translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation>Gerätename</translation>
</message>
@ -609,7 +625,17 @@ Wenn Nheko deinen Server nicht automatisch erkennen kann, wird es dich nach dem
<translation>Ein Name für dieses Gerät. Dieser wird der anderen Seite gezeigt, wenn das Gerät verifiziert wird. Wenn nichts angeben wird, wird einer generiert.</translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation>Heimserveradresse</translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation>dein.server:8787</translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation>Die Adresse unter der dein Heimserver erreichbar ist.
@ -617,12 +643,20 @@ Beispiel: https://mein.server:8787</translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation>ANMELDEN</translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation>Du hast eine invalide Matrix ID eingegeben. Normalerwise sehen die so aus: @joe:matrix.org</translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation>Automatische Erkennung fehlgeschlagen. Antwort war fehlerhaft.</translation>
</message>
@ -767,7 +801,7 @@ Beispiel: https://mein.server:8787</translation>
<translation>Schreibe eine Nachricht</translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation>Emoji</translation>
</message>
@ -874,7 +908,7 @@ Beispiel: https://mein.server:8787</translation>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation>Benutze ein separates profil, wodurch mehrere Accounts und Nhekoinstanzen zur gleichen Zeit verwendet werden können.</translation>
</message>
@ -977,7 +1011,7 @@ Beispiel: https://mein.server:8787</translation>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation>keine Version gespeichert</translation>
</message>
@ -1019,7 +1053,7 @@ Beispiel: https://mein.server:8787</translation>
<translation>Fügt einen Tag hinzu oder entfernt ihn.</translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation>Neuer Tag...</translation>
@ -1119,7 +1153,7 @@ Beispiel: https://mein.server:8787</translation>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation>Nachricht zurückziehen fehlgeschlagen: %1</translation>
</message>
@ -1130,7 +1164,7 @@ Beispiel: https://mein.server:8787</translation>
<translation>Event konnte nicht verschlüsselt werden, senden wurde abgebrochen!</translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation>Bild speichern</translation>
</message>
@ -1150,7 +1184,7 @@ Beispiel: https://mein.server:8787</translation>
<translation>Datei speichern</translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation>
@ -1269,12 +1303,12 @@ Beispiel: https://mein.server:8787</translation>
<translation>%1 hat das Anklopfen zurückgezogen.</translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation>Du bist dem Raum beigetreten.</translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation>Hat das Anklopfen von %1 abgewiesen.</translation>
</message>
@ -1355,6 +1389,11 @@ Beispiel: https://mein.server:8787</translation>
<source>Save as</source>
<translation>Speichern unter...</translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation>Öffne in externen Programm</translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1467,7 +1506,7 @@ Beispiel: https://mein.server:8787</translation>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation>Verifizieren</translation>
</message>
@ -1490,7 +1529,7 @@ Beispiel: https://mein.server:8787</translation>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation>Ins Benachrichtigungsfeld minimieren</translation>
</message>

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation type="unfinished"></translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation type="unfinished"></translation>
</message>
@ -280,7 +280,12 @@
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation type="unfinished"></translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation type="unfinished">Όλα τα αρχεία (*)</translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation>
</message>
@ -596,7 +607,12 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation>Κωδικός</translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation type="unfinished"></translation>
</message>
@ -606,19 +622,37 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation>ΕΙΣΟΔΟΣ</translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation type="unfinished"></translation>
</message>
@ -763,7 +797,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished">Γράψε ένα μήνυμα...</translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation type="unfinished"></translation>
</message>
@ -870,7 +904,7 @@ Example: https://server.my:8787</source>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation type="unfinished"></translation>
</message>
@ -973,7 +1007,7 @@ Example: https://server.my:8787</source>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation type="unfinished"></translation>
</message>
@ -1015,7 +1049,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation type="unfinished"></translation>
@ -1115,7 +1149,7 @@ Example: https://server.my:8787</source>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation type="unfinished"></translation>
</message>
@ -1126,7 +1160,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation type="unfinished">Αποθήκευση Εικόνας</translation>
</message>
@ -1146,7 +1180,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished">
@ -1265,12 +1299,12 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation>
</message>
@ -1351,6 +1385,11 @@ Example: https://server.my:8787</source>
<source>Save as</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1463,7 +1502,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation type="unfinished"></translation>
</message>
@ -1486,7 +1525,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation>Ελαχιστοποίηση</translation>
</message>

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation>You joined this room.</translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation>Invited user: %1</translation>
</message>
@ -274,13 +274,18 @@
<message>
<location line="+54"/>
<source>Failed to kick %1 from %2: %3</source>
<translation type="unfinished"></translation>
<translation>Failed to kick %1 from %2: %3</translation>
</message>
</context>
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation>Hide rooms with this tag or from this community</translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation>All rooms</translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation>-- Encrypted Event (No keys found for decryption) --</translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation>-- Encrypted Event (Key not valid for this index) --</translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation>All Files (*)</translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation>Failed to upload media. Please try again.</translation>
</message>
@ -599,7 +610,12 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation>Password</translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation>Your password.</translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation>Device name</translation>
</message>
@ -609,7 +625,17 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation>A name for this device, which will be shown to others, when verifying your devices. If none is provided a default is used.</translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation>Homeserver address</translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation>server.my:8787</translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation>The address that can be used to contact you homeservers client API.
@ -617,12 +643,20 @@ Example: https://server.my:8787</translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation>LOGIN</translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation>You have entered an invalid Matrix ID e.g @joe:matrix.org</translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation>Autodiscovery failed. Received malformed response.</translation>
</message>
@ -767,7 +801,7 @@ Example: https://server.my:8787</translation>
<translation>Write a message</translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation>Emoji</translation>
</message>
@ -874,7 +908,7 @@ Example: https://server.my:8787</translation>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</translation>
</message>
@ -977,7 +1011,7 @@ Example: https://server.my:8787</translation>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation>no version stored</translation>
</message>
@ -1019,7 +1053,7 @@ Example: https://server.my:8787</translation>
<translation>Adds or removes the specified tag.</translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation>New tag</translation>
@ -1119,7 +1153,7 @@ Example: https://server.my:8787</translation>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation>Message redaction failed: %1</translation>
</message>
@ -1130,7 +1164,7 @@ Example: https://server.my:8787</translation>
<translation>Failed to encrypt event, sending aborted!</translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation>Save image</translation>
</message>
@ -1150,7 +1184,7 @@ Example: https://server.my:8787</translation>
<translation>Save file</translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation>
@ -1269,12 +1303,12 @@ Example: https://server.my:8787</translation>
<translation>%1 redacted their knock.</translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation>You joined this room.</translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation>Rejected the knock from %1.</translation>
</message>
@ -1355,6 +1389,11 @@ Example: https://server.my:8787</translation>
<source>Save as</source>
<translation>Save as</translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation>Open in external program</translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1467,7 +1506,7 @@ Example: https://server.my:8787</translation>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation>Verify</translation>
</message>
@ -1490,7 +1529,7 @@ Example: https://server.my:8787</translation>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation>Minimize to tray</translation>
</message>

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation>Vi aliĝis ĉi tiun ĉambron.</translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation type="unfinished"></translation>
</message>
@ -281,7 +281,12 @@
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation>Ĉiuj ĉambroj</translation>
</message>
@ -475,11 +480,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -558,7 +569,7 @@
<translation type="unfinished">Ĉiuj dosieroj (*)</translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation>
</message>
@ -597,7 +608,12 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation type="unfinished">Pasvorto</translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation>Aparata nomo</translation>
</message>
@ -608,7 +624,17 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation>Nomo por ĉi tiu aparato, montrot al aliaj, kiam kontrolant viajn aparatojn. Se neniom provizitis, defaŭlto uzit.</translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translatorcomment>API should be valid for the EO translation of application programming interface.</translatorcomment>
@ -617,13 +643,21 @@ Ekzemplo: https://servisto.mia:8787</translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translatorcomment>Maybe shouldn&apos;t be imperative?</translatorcomment>
<translation>ENSALUTU</translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation type="unfinished"></translation>
</message>
@ -768,7 +802,7 @@ Ekzemplo: https://servisto.mia:8787</translation>
<translation type="unfinished">Skribu mesaĝon...</translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation type="unfinished"></translation>
</message>
@ -875,7 +909,7 @@ Ekzemplo: https://servisto.mia:8787</translation>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation type="unfinished"></translation>
</message>
@ -978,7 +1012,7 @@ Ekzemplo: https://servisto.mia:8787</translation>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation type="unfinished"></translation>
</message>
@ -1020,7 +1054,7 @@ Ekzemplo: https://servisto.mia:8787</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation>Nova etikedo...</translation>
@ -1122,7 +1156,7 @@ Ekzemplo: https://servisto.mia:8787</translation>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation type="unfinished"></translation>
</message>
@ -1133,7 +1167,7 @@ Ekzemplo: https://servisto.mia:8787</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation type="unfinished"></translation>
</message>
@ -1153,7 +1187,7 @@ Ekzemplo: https://servisto.mia:8787</translation>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation>
@ -1274,12 +1308,12 @@ Ekzemplo: https://servisto.mia:8787</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation>Vi aliĝis ĉi tiun ĉambron.</translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation>
</message>
@ -1360,6 +1394,11 @@ Ekzemplo: https://servisto.mia:8787</translation>
<source>Save as</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1472,7 +1511,7 @@ Ekzemplo: https://servisto.mia:8787</translation>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation type="unfinished"></translation>
</message>
@ -1495,7 +1534,7 @@ Ekzemplo: https://servisto.mia:8787</translation>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation type="unfinished"></translation>
</message>

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation>Sa liitusid selle jututoaga.</translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation>Kutsutud kasutaja: %1</translation>
</message>
@ -274,13 +274,18 @@
<message>
<location line="+54"/>
<source>Failed to kick %1 from %2: %3</source>
<translation type="unfinished"></translation>
<translation>Kasutaja %1 väljamüksamine %2 jututoast ei õnnestunud: %3</translation>
</message>
</context>
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation>Peida sellest kogukonnast antud sildiga jututoad</translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation>Kõik jututoad</translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation>-- Krüptitud sündmus (Dekrüptimisvõtmeid ei leidunud) --</translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation>-- Krüptitud sündmus (võti pole selle indeksi jaoks sobilik) --</translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation>Kõik failid (*)</translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation>Meediafailide üleslaadimine ei õnnestunud. Palun proovi uuesti.</translation>
</message>
@ -599,7 +610,12 @@ Kui Nheko ei suuda tuvastada sinu koduserverit, siis ta kuvab sulle andmevälja
<translation>Salasõna</translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation>Sinu salasõna.</translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation>Seadme nimi</translation>
</message>
@ -609,7 +625,17 @@ Kui Nheko ei suuda tuvastada sinu koduserverit, siis ta kuvab sulle andmevälja
<translation>Selle seadme nimi, mida näidetakse verifitseerimise ajal teisele kasutajatele. Kui sa ise nime ei pane, siis kasutame automaatselt pandud nime.</translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation>Koduserveri aadress</translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation>server.minu:8787</translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation>Aadress, mida sinu koduserveri kliendipoole API kasutab.
@ -617,12 +643,20 @@ Näiteks: https://server.minu:8787</translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation>LOGI SISSE</translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation>Sisestatud Matrix&apos;i kasutajatunnus on vigane - peaks olema @kasutaja:server.tld</translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation>Koduserveri automaatne tuvastamine ei õnnestunud: päringuvastus oli vigane.</translation>
</message>
@ -767,7 +801,7 @@ Näiteks: https://server.minu:8787</translation>
<translation>Kirjuta sõnum</translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation>Emoji</translation>
</message>
@ -874,7 +908,7 @@ Näiteks: https://server.minu:8787</translation>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation>Loo unikaalne profiil, mis võimaldab sul logida samaaegselt sisse erinevatele kasutajakontodele ning käivitada mitu Nheko programmiakent.</translation>
</message>
@ -977,7 +1011,7 @@ Näiteks: https://server.minu:8787</translation>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation>salvestatud versiooni ei leidu</translation>
</message>
@ -1019,7 +1053,7 @@ Näiteks: https://server.minu:8787</translation>
<translation>Lisab või eemaldab selle sildi.</translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation>Uus silt</translation>
@ -1119,7 +1153,7 @@ Näiteks: https://server.minu:8787</translation>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation>Sõnumi ümbersõnastamine ebaõnnestus: %1</translation>
</message>
@ -1130,7 +1164,7 @@ Näiteks: https://server.minu:8787</translation>
<translation>Sündmuse krüptimine ei õnnestunud, katkestame saatmise!</translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation>Salvesta pilt</translation>
</message>
@ -1150,7 +1184,7 @@ Näiteks: https://server.minu:8787</translation>
<translation>Salvesta fail</translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation>
@ -1269,12 +1303,12 @@ Näiteks: https://server.minu:8787</translation>
<translation>%1 muutis oma koputust jututoa uksele.</translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation>Sa liitusid jututoaga.</translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation>Lükkas tagasi %1 koputuse jututoa uksele.</translation>
</message>
@ -1355,6 +1389,11 @@ Näiteks: https://server.minu:8787</translation>
<source>Save as</source>
<translation>Salvesta kui</translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation>Ava välise rakendusega</translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1467,7 +1506,7 @@ Näiteks: https://server.minu:8787</translation>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation>Verifitseeri</translation>
</message>
@ -1490,7 +1529,7 @@ Näiteks: https://server.minu:8787</translation>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation>Vähenda tegumiribale</translation>
</message>

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation type="unfinished"></translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation type="unfinished"></translation>
</message>
@ -280,7 +280,12 @@
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation>Kaikki huoneet</translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation>-- Salattu viesti (salauksen purkuavaimia ei löydetty) --</translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation>Kaikki Tiedostot (*)</translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation>
</message>
@ -596,7 +607,12 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation>Salasana</translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation>Laitteen nimi</translation>
</message>
@ -606,19 +622,37 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation>KIRJAUDU</translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation>Palvelimen tietojen hakeminen epäonnistui: virheellinen vastaus.</translation>
</message>
@ -763,7 +797,7 @@ Example: https://server.my:8787</source>
<translation>Kirjoita viesti</translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation type="unfinished">Emoji</translation>
</message>
@ -870,7 +904,7 @@ Example: https://server.my:8787</source>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation type="unfinished"></translation>
</message>
@ -973,7 +1007,7 @@ Example: https://server.my:8787</source>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation>ei tallennettua versiota</translation>
</message>
@ -1015,7 +1049,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation type="unfinished"></translation>
@ -1115,7 +1149,7 @@ Example: https://server.my:8787</source>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation>Viestin muokkaus epäonnistui: %1</translation>
</message>
@ -1126,7 +1160,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation>Tallenna kuva</translation>
</message>
@ -1146,7 +1180,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation>
@ -1265,12 +1299,12 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation>
</message>
@ -1351,6 +1385,11 @@ Example: https://server.my:8787</source>
<source>Save as</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1463,7 +1502,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation type="unfinished"></translation>
</message>
@ -1486,7 +1525,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation>Pienennä ilmoitusalueelle</translation>
</message>

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation>Vous avez rejoint ce salon.</translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation>%1 a é invité(e)</translation>
</message>
@ -280,7 +280,12 @@
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation>Tous les salons</translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation>-- Évènement chiffré (pas de clé trouvée pour le déchiffrement) --</translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation>Tous les types de fichiers (*)</translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation>Échec de l&apos;envoi du média. Veuillez réessayer.</translation>
</message>
@ -599,7 +610,12 @@ Si Nheko n&apos;arrive pas à trouver votre serveur, il vous proposera de l&apos
<translation>Mot de passe</translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation>Nom de l&apos;appareil</translation>
</message>
@ -609,7 +625,17 @@ Si Nheko n&apos;arrive pas à trouver votre serveur, il vous proposera de l&apos
<translation>Un nom pour cet appareil, qui sera montré aux autres utilisateurs lorsque ceux-ci le vérifieront. Si aucun n&apos;est fourni, un nom par défaut est utilisé.</translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation>L&apos;adresse qui peut être utilisée pour joindre l&apos;API client de votre serveur.
@ -617,12 +643,20 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation>CONNEXION</translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation>Échec de la découverte automatique. Réponse mal formatée reçue.</translation>
</message>
@ -767,7 +801,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
<translation>Écrivez un message</translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation>Émoji</translation>
</message>
@ -874,7 +908,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation>Créer un profil unique, vous permettant de vous connecter simultanément à plusieurs comptes et à lancer plusieurs instances de nheko.</translation>
</message>
@ -977,7 +1011,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation>pas de version enregistrée</translation>
</message>
@ -1019,7 +1053,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
<translation>Ajoute ou retire l&apos;étiquette spécifiée.</translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation>Nouvelle étiquette</translation>
@ -1119,7 +1153,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation>Échec de la suppression du message&#xa0;: %1</translation>
</message>
@ -1130,7 +1164,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
<translation>Échec du chiffrement de l&apos;évènement, envoi abandonné&#x202f;!</translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation>Enregistrer l&apos;image</translation>
</message>
@ -1150,7 +1184,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
<translation>Enregistrer le fichier</translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation>
@ -1269,12 +1303,12 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
<translation>%1 ne frappe plus au salon.</translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation>Vous avez rejoint ce salon.</translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation>%1 a é rejeté après avoir frappé au salon.</translation>
</message>
@ -1355,6 +1389,11 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
<source>Save as</source>
<translation>Enregistrer sous</translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1467,7 +1506,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation>Vérifier</translation>
</message>
@ -1490,7 +1529,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation>Réduire à la barre des tâches</translation>
</message>

File diff suppressed because it is too large Load Diff

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation>Sei entrato in questa stanza.</translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation>Invitato utente: %1</translation>
</message>
@ -280,7 +280,12 @@
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation>Tutte le stanze</translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished">-- Evento Criptato (Chiavi per la decriptazione non trovate) --</translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation type="unfinished">Tutti i File (*)</translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation type="unfinished">Impossibile inviare il file multimediale. Per favore riprova.</translation>
</message>
@ -599,7 +610,12 @@ Se Nheko non conclude la ricerca del tuo homeserver, ti mostrerà un campo in cu
<translation>Password</translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation>Nome del dispositivo</translation>
</message>
@ -609,7 +625,17 @@ Se Nheko non conclude la ricerca del tuo homeserver, ti mostrerà un campo in cu
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation>L&apos;indirizzo che può essere usato per contattare le API client del tuo homeserver.
@ -617,12 +643,20 @@ Esempio: https://server.mio:8787</translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation>ACCEDI</translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation>Ricerca automatica fallita. Ricevuta risposta malformata.</translation>
</message>
@ -767,7 +801,7 @@ Esempio: https://server.mio:8787</translation>
<translation type="unfinished">Scrivi un messaggio</translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation type="unfinished">Emoji</translation>
</message>
@ -874,7 +908,7 @@ Esempio: https://server.mio:8787</translation>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation type="unfinished"></translation>
</message>
@ -977,7 +1011,7 @@ Esempio: https://server.mio:8787</translation>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation>nessuna versione memorizzata</translation>
</message>
@ -1019,7 +1053,7 @@ Esempio: https://server.mio:8787</translation>
<translation type="unfinished">Aggiungi o rimuovi il tag specificato.</translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation type="unfinished"></translation>
@ -1119,7 +1153,7 @@ Esempio: https://server.mio:8787</translation>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation>Oscuramento del messaggio fallito: %1</translation>
</message>
@ -1130,7 +1164,7 @@ Esempio: https://server.mio:8787</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation>Salva immagine</translation>
</message>
@ -1150,7 +1184,7 @@ Esempio: https://server.mio:8787</translation>
<translation>Salva file</translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation>
@ -1269,12 +1303,12 @@ Esempio: https://server.mio:8787</translation>
<translation>%1 ha oscurato la sua bussata.</translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation>Sei entrato in questa stanza.</translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation>Rifiutata la bussata di %1.</translation>
</message>
@ -1355,6 +1389,11 @@ Esempio: https://server.mio:8787</translation>
<source>Save as</source>
<translation>Salva come</translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1467,7 +1506,7 @@ Esempio: https://server.mio:8787</translation>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation type="unfinished"></translation>
</message>
@ -1490,7 +1529,7 @@ Esempio: https://server.mio:8787</translation>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation>Minimizza nella tray</translation>
</message>

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation type="unfinished"></translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation>: %1</translation>
</message>
@ -280,7 +280,12 @@
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation></translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished">-- () --</translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation type="unfinished"> (*)</translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation>
</message>
@ -596,7 +607,12 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation></translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation></translation>
</message>
@ -606,19 +622,37 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation></translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation></translation>
</message>
@ -763,7 +797,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished">...</translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation type="unfinished"></translation>
</message>
@ -870,7 +904,7 @@ Example: https://server.my:8787</source>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation type="unfinished"></translation>
</message>
@ -973,7 +1007,7 @@ Example: https://server.my:8787</source>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation></translation>
</message>
@ -1015,7 +1049,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation type="unfinished"></translation>
@ -1115,7 +1149,7 @@ Example: https://server.my:8787</source>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation>: %1</translation>
</message>
@ -1126,7 +1160,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation></translation>
</message>
@ -1146,7 +1180,7 @@ Example: https://server.my:8787</source>
<translation></translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation>
@ -1264,12 +1298,12 @@ Example: https://server.my:8787</source>
<translation>%1</translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation>%1</translation>
</message>
@ -1350,6 +1384,11 @@ Example: https://server.my:8787</source>
<source>Save as</source>
<translation></translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1462,7 +1501,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation type="unfinished"></translation>
</message>
@ -1485,7 +1524,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation></translation>
</message>

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation>ി ിി .</translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation>ി :% 1</translation>
</message>
@ -280,7 +280,12 @@
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation> ി</translation>
</message>
@ -455,7 +460,7 @@
<message>
<location line="+13"/>
<source>They match!</source>
<translation type="unfinished"></translation>
<translation type="unfinished"> !</translation>
</message>
</context>
<context>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation type="unfinished"></translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation>
</message>
@ -596,7 +607,12 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation></translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation>ി </translation>
</message>
@ -606,19 +622,37 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation type="unfinished"></translation>
</message>
@ -763,7 +797,7 @@ Example: https://server.my:8787</source>
<translation> .</translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation>ി</translation>
</message>
@ -870,7 +904,7 @@ Example: https://server.my:8787</source>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation type="unfinished"></translation>
</message>
@ -909,7 +943,7 @@ Example: https://server.my:8787</source>
<message>
<location line="-282"/>
<source>Password</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
@ -967,13 +1001,13 @@ Example: https://server.my:8787</source>
<message>
<location filename="../qml/ReplyPopup.qml" line="+43"/>
<source>Close</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation type="unfinished"></translation>
</message>
@ -1015,7 +1049,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation type="unfinished"></translation>
@ -1040,7 +1074,7 @@ Example: https://server.my:8787</source>
<message>
<location line="+3"/>
<source>Decline</source>
<translation type="unfinished"></translation>
<translation type="unfinished">ിി</translation>
</message>
</context>
<context>
@ -1109,13 +1143,13 @@ Example: https://server.my:8787</source>
<message>
<location line="+12"/>
<source>Close</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation type="unfinished"></translation>
</message>
@ -1126,7 +1160,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation type="unfinished"></translation>
</message>
@ -1146,7 +1180,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished">
@ -1265,12 +1299,12 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation type="unfinished"></translation>
<translation type="unfinished">ി ിി .</translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation>
</message>
@ -1351,6 +1385,11 @@ Example: https://server.my:8787</source>
<source>Save as</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1463,7 +1502,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation type="unfinished"></translation>
</message>
@ -1486,7 +1525,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation type="unfinished"></translation>
</message>
@ -1851,7 +1890,7 @@ This usually causes the application icon in the task bar to animate in some fash
<message>
<location line="+54"/>
<source>Select a file</source>
<translation type="unfinished"></translation>
<translation type="unfinished"> ി</translation>
</message>
<message>
<location line="+0"/>
@ -1926,7 +1965,7 @@ This usually causes the application icon in the task bar to animate in some fash
<message>
<location line="+15"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@ -1970,17 +2009,17 @@ This usually causes the application icon in the task bar to animate in some fash
<message>
<location line="+2"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+10"/>
<source>Name</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Topic</source>
<translation type="unfinished"></translation>
<translation type="unfinished">ി</translation>
</message>
<message>
<location line="+3"/>
@ -2013,7 +2052,7 @@ This usually causes the application icon in the task bar to animate in some fash
<message>
<location line="+1"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
@ -2031,7 +2070,7 @@ This usually causes the application icon in the task bar to animate in some fash
<message>
<location filename="../../src/dialogs/InviteUsers.cpp" line="+42"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+8"/>
@ -2049,7 +2088,7 @@ This usually causes the application icon in the task bar to animate in some fash
<message>
<location line="+2"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
@ -2062,7 +2101,7 @@ This usually causes the application icon in the task bar to animate in some fash
<message>
<location filename="../../src/dialogs/LeaveRoom.cpp" line="+31"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+8"/>
@ -2075,7 +2114,7 @@ This usually causes the application icon in the task bar to animate in some fash
<message>
<location filename="../../src/dialogs/Logout.cpp" line="+47"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+8"/>
@ -2093,7 +2132,7 @@ This usually causes the application icon in the task bar to animate in some fash
<message>
<location line="+1"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+87"/>
@ -2108,7 +2147,7 @@ Media size: %2
<message>
<location filename="../../src/dialogs/ReCaptcha.cpp" line="+31"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
@ -2131,7 +2170,7 @@ Media size: %2
<message>
<location line="+4"/>
<source>Close</source>
<translation type="unfinished"></translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation>Je bent lid geworden van deze kamer.</translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation>Gebruiker uitgenodigd: %1</translation>
</message>
@ -280,7 +280,12 @@
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation type="unfinished"></translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation type="unfinished">Alle bestanden (*)</translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation>
</message>
@ -596,7 +607,12 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation>Wachtwoord</translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation type="unfinished"></translation>
</message>
@ -606,19 +622,37 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation>INLOGGEN</translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation type="unfinished"></translation>
</message>
@ -763,7 +797,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished">Typ een bericht...</translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation type="unfinished"></translation>
</message>
@ -870,7 +904,7 @@ Example: https://server.my:8787</source>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation type="unfinished"></translation>
</message>
@ -973,7 +1007,7 @@ Example: https://server.my:8787</source>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation type="unfinished"></translation>
</message>
@ -1015,7 +1049,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation type="unfinished"></translation>
@ -1115,7 +1149,7 @@ Example: https://server.my:8787</source>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation type="unfinished"></translation>
</message>
@ -1126,7 +1160,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation type="unfinished">Afbeelding opslaan</translation>
</message>
@ -1146,7 +1180,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished">
@ -1265,12 +1299,12 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Je bent lid geworden van deze kamer.</translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation>
</message>
@ -1351,6 +1385,11 @@ Example: https://server.my:8787</source>
<source>Save as</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1463,7 +1502,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation type="unfinished"></translation>
</message>
@ -1486,7 +1525,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation>Minimaliseren naar systeemvak</translation>
</message>

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation>Dołączyłeś(-ł) do tego pokoju.</translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation type="unfinished"></translation>
</message>
@ -280,7 +280,12 @@
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation>Wszystkie pokoje</translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation>-- Zdarzenie szyfrowania (Nie znaleziono kluczy deszyfrujących)</translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation type="unfinished">Wszystkie pliki (*)</translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation>
</message>
@ -598,7 +609,12 @@ Jeżeli Nheko nie odnajdzie Twojego serwera domowego, wyświetli formularz umoż
<translation>Hasło</translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation>Nazwa urządzenia</translation>
</message>
@ -608,19 +624,37 @@ Jeżeli Nheko nie odnajdzie Twojego serwera domowego, wyświetli formularz umoż
<translation>Nazwa dla tego urządzenia, będzie ona widoczna dla innych użytkowników, kiedy będą weryfikować Twoje urządzenia. Jeżeli żadna nie jest podana, używana jest domyślna.</translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation>ZALOGUJ</translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation>Automatyczne odkrywanie zakończone niepowodzeniem. Otrzymano nieprawidłową odpowiedź.</translation>
</message>
@ -765,7 +799,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished">Napisz wiadomość</translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation type="unfinished">Emoji</translation>
</message>
@ -872,7 +906,7 @@ Example: https://server.my:8787</source>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation>Stwórz unikalny profil, który pozwoli Ci na zalogowanie się do kilku kont jednocześnie i uruchomienie wielu instancji Nheko.</translation>
</message>
@ -975,7 +1009,7 @@ Example: https://server.my:8787</source>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation type="unfinished"></translation>
</message>
@ -1017,7 +1051,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation type="unfinished"></translation>
@ -1117,7 +1151,7 @@ Example: https://server.my:8787</source>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation type="unfinished">Redagowanie wiadomości nie powiodło się: %1</translation>
</message>
@ -1128,7 +1162,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation type="unfinished">Zapisz obraz</translation>
</message>
@ -1148,7 +1182,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished">
@ -1268,12 +1302,12 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation type="unfinished">Dołączyłeś(-ł) do tego pokoju.</translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation>
</message>
@ -1354,6 +1388,11 @@ Example: https://server.my:8787</source>
<source>Save as</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1466,7 +1505,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation type="unfinished"></translation>
</message>
@ -1489,7 +1528,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation>Zminimalizuj do paska zadań</translation>
</message>

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation type="unfinished"></translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation type="unfinished"></translation>
</message>
@ -280,7 +280,12 @@
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation type="unfinished"></translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation type="unfinished"></translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation>
</message>
@ -596,7 +607,12 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation type="unfinished"></translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation type="unfinished"></translation>
</message>
@ -606,19 +622,37 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation type="unfinished"></translation>
</message>
@ -763,7 +797,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation type="unfinished"></translation>
</message>
@ -870,7 +904,7 @@ Example: https://server.my:8787</source>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation type="unfinished"></translation>
</message>
@ -973,7 +1007,7 @@ Example: https://server.my:8787</source>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation type="unfinished"></translation>
</message>
@ -1015,7 +1049,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation type="unfinished"></translation>
@ -1115,7 +1149,7 @@ Example: https://server.my:8787</source>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation type="unfinished"></translation>
</message>
@ -1126,7 +1160,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation type="unfinished"></translation>
</message>
@ -1146,7 +1180,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished">
@ -1265,12 +1299,12 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation>
</message>
@ -1351,6 +1385,11 @@ Example: https://server.my:8787</source>
<source>Save as</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1463,7 +1502,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation type="unfinished"></translation>
</message>
@ -1486,7 +1525,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation type="unfinished"></translation>
</message>

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation>Te-ai alăturat camerei.</translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation>Utilizator invitat: %1</translation>
</message>
@ -280,7 +280,12 @@
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation>Toate camerele</translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation type="unfinished">Toate fișierele (*)</translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation>
</message>
@ -599,7 +610,12 @@ Dacă Nheko nu vă poate găsi homeserverul, vă va arăta un câmp pentru intro
<translation>Parolă</translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation>Nume dispozitiv</translation>
</message>
@ -609,7 +625,17 @@ Dacă Nheko nu vă poate găsi homeserverul, vă va arăta un câmp pentru intro
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation>Adresa la care se poate contacta APIul homeserverului dumneavoastră.
@ -617,12 +643,20 @@ Exemplu: https://serverul.meu:8787</translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation>CONECTARE</translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation>Autodescoperirea a eșuat. Răspunsul primit este defectuos.</translation>
</message>
@ -767,7 +801,7 @@ Exemplu: https://serverul.meu:8787</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation type="unfinished"></translation>
</message>
@ -874,7 +908,7 @@ Exemplu: https://serverul.meu:8787</translation>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation type="unfinished"></translation>
</message>
@ -977,7 +1011,7 @@ Exemplu: https://serverul.meu:8787</translation>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation>nicio versiune stocată</translation>
</message>
@ -1019,7 +1053,7 @@ Exemplu: https://serverul.meu:8787</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation type="unfinished"></translation>
@ -1119,7 +1153,7 @@ Exemplu: https://serverul.meu:8787</translation>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation>Redactare mesaj eșuată: %1</translation>
</message>
@ -1130,7 +1164,7 @@ Exemplu: https://serverul.meu:8787</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation>Salvați imaginea</translation>
</message>
@ -1150,7 +1184,7 @@ Exemplu: https://serverul.meu:8787</translation>
<translation>Salvați fișier</translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation>
@ -1270,12 +1304,12 @@ Exemplu: https://serverul.meu:8787</translation>
<translation>%1 și-a redactat ciocănitul.</translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation>Te-ai alăturat camerei.</translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation>Ciocănit refuzat de la %1.</translation>
</message>
@ -1356,6 +1390,11 @@ Exemplu: https://serverul.meu:8787</translation>
<source>Save as</source>
<translation>Salvare ca</translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1468,7 +1507,7 @@ Exemplu: https://serverul.meu:8787</translation>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation type="unfinished"></translation>
</message>
@ -1491,7 +1530,7 @@ Exemplu: https://serverul.meu:8787</translation>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation>Minimizează în bara de notificări</translation>
</message>

@ -6,18 +6,18 @@
<message>
<location filename="../qml/voip/ActiveCallBar.qml" line="+66"/>
<source>Calling...</source>
<translation type="unfinished"></translation>
<translation>Вызов...</translation>
</message>
<message>
<location line="+10"/>
<location line="+10"/>
<source>Connecting...</source>
<translation type="unfinished"></translation>
<translation>Соединение...</translation>
</message>
<message>
<location line="+76"/>
<source>Toggle camera view</source>
<translation type="unfinished"></translation>
<translation>Сменить вид камеры</translation>
</message>
<message>
<location line="+13"/>
@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation>Вы присоединились к этой комнате.</translation>
</message>
@ -61,17 +61,17 @@
<message>
<location filename="../qml/voip/CallInvite.qml" line="+66"/>
<source>Video Call</source>
<translation type="unfinished">Видео Звонок</translation>
<translation>Видео Звонок</translation>
</message>
<message>
<location line="+0"/>
<source>Voice Call</source>
<translation type="unfinished">Голосовой Звонок</translation>
<translation>Голосовой Звонок</translation>
</message>
<message>
<location line="+62"/>
<source>No microphone found.</source>
<translation type="unfinished">Микрофон не найден.</translation>
<translation>Микрофон не найден.</translation>
</message>
</context>
<context>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation>Приглашенный пользователь: %1</translation>
</message>
@ -280,7 +280,12 @@
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation>Все комнаты</translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation>-- Зашифрованное событие (Нет найдено ключей для дешифрования) --</translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation>Все файлы (*)</translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation>Не удалось загрузить медиа. Пожалуйста попробуйте ещё раз</translation>
</message>
@ -599,7 +610,12 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation>Пароль</translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation>Имя устройства</translation>
</message>
@ -609,7 +625,17 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation>Имя устройства, которое будет отображаться для других, когда верифицируют ваше устройство. Если не предоставить имя устройста,то будет использоваться имя по умолчанию.</translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation>Адрес который будет использоваться для связи клиентского API вашего домашнего сервера.
@ -617,12 +643,20 @@ Example: https://server.my:8787</source>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation>ВОЙТИ</translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation>Автообноружение не удалось. Получен поврежденный ответ.</translation>
</message>
@ -767,7 +801,7 @@ Example: https://server.my:8787</source>
<translation>Написать сообщение</translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation>Эмоджи</translation>
</message>
@ -874,7 +908,7 @@ Example: https://server.my:8787</source>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation>Создать уникальный профиль, который позволяет вести несколько аккаунтов и запускать множество сущностей nheko. </translation>
</message>
@ -977,7 +1011,7 @@ Example: https://server.my:8787</source>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation>нет сохраненной версии</translation>
</message>
@ -1019,7 +1053,7 @@ Example: https://server.my:8787</source>
<translation>Добавить или удалить выбранные тэг.</translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation>Добавить новый тег для комнаты</translation>
@ -1119,7 +1153,7 @@ Example: https://server.my:8787</source>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation>Ошибка редактирования сообщения: %1</translation>
</message>
@ -1130,7 +1164,7 @@ Example: https://server.my:8787</source>
<translation>Не удалось зашифровать сообщение, отправка отменена!</translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation>Сохранить изображение</translation>
</message>
@ -1150,7 +1184,7 @@ Example: https://server.my:8787</source>
<translation>Сохранить файл</translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation>
@ -1270,12 +1304,12 @@ Example: https://server.my:8787</source>
<translation>%1 отредактировал его &quot;стук&quot;.</translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation>Вы присоединились к этой комнате.</translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation>Отверг &quot;стук&quot; от %1</translation>
</message>
@ -1356,6 +1390,11 @@ Example: https://server.my:8787</source>
<source>Save as</source>
<translation>Сохранить как</translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1468,7 +1507,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation>Верифицировать</translation>
</message>
@ -1491,7 +1530,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation>Сворачивать в системную панель</translation>
</message>

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation type="unfinished"></translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation type="unfinished"></translation>
</message>
@ -280,7 +280,12 @@
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation type="unfinished"></translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation type="unfinished"></translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation>
</message>
@ -596,7 +607,12 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation type="unfinished"></translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation type="unfinished"></translation>
</message>
@ -606,19 +622,37 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation type="unfinished"></translation>
</message>
@ -763,7 +797,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation type="unfinished"></translation>
</message>
@ -870,7 +904,7 @@ Example: https://server.my:8787</source>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation type="unfinished"></translation>
</message>
@ -973,7 +1007,7 @@ Example: https://server.my:8787</source>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation type="unfinished"></translation>
</message>
@ -1015,7 +1049,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation type="unfinished"></translation>
@ -1115,7 +1149,7 @@ Example: https://server.my:8787</source>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation type="unfinished"></translation>
</message>
@ -1126,7 +1160,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation type="unfinished"></translation>
</message>
@ -1146,7 +1180,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished">
@ -1265,12 +1299,12 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation>
</message>
@ -1351,6 +1385,11 @@ Example: https://server.my:8787</source>
<source>Save as</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1463,7 +1502,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation type="unfinished"></translation>
</message>
@ -1486,7 +1525,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation type="unfinished"></translation>
</message>

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation>Du gick med i detta rum.</translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation>Bjöd in användare: %1</translation>
</message>
@ -280,7 +280,12 @@
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation>Alla rum</translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation>-- Krypterat Event (Inga nycklar kunde hittas för dekryptering) --</translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation>Alla Filer (*)</translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation>Kunde inte ladda upp media. Vänligen försök igen.</translation>
</message>
@ -599,7 +610,12 @@ Om Nheko inte kan hitta din hemserver automatiskt kommer ett fält dyka upp där
<translation>Lösenord</translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation>Enhetsnamn</translation>
</message>
@ -609,7 +625,17 @@ Om Nheko inte kan hitta din hemserver automatiskt kommer ett fält dyka upp där
<translation>Ett namn för denna enhet. Namnet kommer synas för andra när du verifierar dina enheter. Om du inte förser ett namn kommer ett standardnamn användas.</translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation>Addressen som kan användas för att kontakta din hemservers klient-API.
@ -617,12 +643,20 @@ Exempel: https://server.my:8787</translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation>INLOGGNING</translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation>Autouppslag misslyckades. Mottog felkonstruerat svar.</translation>
</message>
@ -767,7 +801,7 @@ Exempel: https://server.my:8787</translation>
<translation>Skriv ett meddelande</translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation>Emoji</translation>
</message>
@ -874,7 +908,7 @@ Exempel: https://server.my:8787</translation>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation>Skapa en unik profil, vilket tillåter dig att logga in flera konton samtidigt och starta flera instanser av Nheko.</translation>
</message>
@ -977,7 +1011,7 @@ Exempel: https://server.my:8787</translation>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation>ingen version lagrad</translation>
</message>
@ -1019,7 +1053,7 @@ Exempel: https://server.my:8787</translation>
<translation>Lägger till eller tar bort den angivna taggen.</translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation>Ny tagg</translation>
@ -1119,7 +1153,7 @@ Exempel: https://server.my:8787</translation>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation>Kunde inte maskera meddelande: %1</translation>
</message>
@ -1130,7 +1164,7 @@ Exempel: https://server.my:8787</translation>
<translation>Kunde inte kryptera event, sändning avbruten!</translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation>Spara bild</translation>
</message>
@ -1150,7 +1184,7 @@ Exempel: https://server.my:8787</translation>
<translation>Spara fil</translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation>
@ -1269,12 +1303,12 @@ Exempel: https://server.my:8787</translation>
<translation>%1 maskerade sin knackning.</translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation>Du gick med i detta rum.</translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation>Avvisade knackningen från %1.</translation>
</message>
@ -1355,6 +1389,11 @@ Exempel: https://server.my:8787</translation>
<source>Save as</source>
<translation>Spara som</translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1467,7 +1506,7 @@ Exempel: https://server.my:8787</translation>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation>Bekräfta</translation>
</message>
@ -1490,7 +1529,7 @@ Exempel: https://server.my:8787</translation>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation>Minimera till systemtråg</translation>
</message>

@ -51,7 +51,7 @@
<context>
<name>Cache</name>
<message>
<location filename="../../src/Cache.cpp" line="+1951"/>
<location filename="../../src/Cache.cpp" line="+1978"/>
<source>You joined this room.</source>
<translation></translation>
</message>
@ -126,7 +126,7 @@
</message>
<message>
<location line="+4"/>
<location line="+779"/>
<location line="+796"/>
<source>Invited user: %1</source>
<translation>: %1</translation>
</message>
@ -280,7 +280,12 @@
<context>
<name>CommunitiesListItem</name>
<message>
<location filename="../../src/CommunitiesListItem.cpp" line="+133"/>
<location filename="../../src/CommunitiesListItem.cpp" line="+26"/>
<source>Hide rooms with this tag or from this community</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+153"/>
<source>All rooms</source>
<translation type="unfinished"></translation>
</message>
@ -474,11 +479,17 @@
<context>
<name>EventStore</name>
<message>
<location filename="../../src/timeline/EventStore.cpp" line="+548"/>
<location filename="../../src/timeline/EventStore.cpp" line="+559"/>
<source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>-- Encrypted Event (Key not valid for this index) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted with this key since it is not valid for this index </comment>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+32"/>
<location line="+63"/>
@ -557,7 +568,7 @@
<translation type="unfinished">*</translation>
</message>
<message>
<location line="+334"/>
<location line="+340"/>
<source>Failed to upload media. Please try again.</source>
<translation type="unfinished"></translation>
</message>
@ -596,7 +607,12 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation></translation>
</message>
<message>
<location line="+5"/>
<location line="+2"/>
<source>Your password.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>Device name</source>
<translation></translation>
</message>
@ -606,19 +622,37 @@ If Nheko fails to discover your homeserver, it will show you a field to enter th
<translation type="unfinished"></translation>
</message>
<message>
<location line="+6"/>
<location line="+4"/>
<source>Homeserver address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The address that can be used to contact you homeservers client API.
Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+19"/>
<location line="+217"/>
<location line="+218"/>
<source>LOGIN</source>
<translation></translation>
</message>
<message>
<location line="-104"/>
<location line="-151"/>
<location line="+11"/>
<location line="+157"/>
<location line="+11"/>
<source>You have entered an invalid Matrix ID e.g @joe:matrix.org</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-132"/>
<source>Autodiscovery failed. Received malformed response.</source>
<translation type="unfinished"></translation>
</message>
@ -763,7 +797,7 @@ Example: https://server.my:8787</source>
<translation></translation>
</message>
<message>
<location line="+152"/>
<location line="+170"/>
<source>Emoji</source>
<translation type="unfinished"></translation>
</message>
@ -870,7 +904,7 @@ Example: https://server.my:8787</source>
<context>
<name>QCoreApplication</name>
<message>
<location filename="../../src/main.cpp" line="+182"/>
<location filename="../../src/main.cpp" line="+179"/>
<source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
<translation type="unfinished"></translation>
</message>
@ -973,7 +1007,7 @@ Example: https://server.my:8787</source>
<context>
<name>RoomInfo</name>
<message>
<location filename="../../src/Cache.cpp" line="+1859"/>
<location filename="../../src/Cache.cpp" line="+1868"/>
<source>no version stored</source>
<translation type="unfinished"></translation>
</message>
@ -1015,7 +1049,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+38"/>
<location line="+39"/>
<source>New tag...</source>
<comment>Add a new tag to the room</comment>
<translation type="unfinished"></translation>
@ -1115,7 +1149,7 @@ Example: https://server.my:8787</source>
<context>
<name>TimelineModel</name>
<message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+864"/>
<location filename="../../src/timeline/TimelineModel.cpp" line="+860"/>
<source>Message redaction failed: %1</source>
<translation type="unfinished">%1</translation>
</message>
@ -1126,7 +1160,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+156"/>
<location line="+164"/>
<source>Save image</source>
<translation type="unfinished"></translation>
</message>
@ -1146,7 +1180,7 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location line="+129"/>
<location line="+143"/>
<source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished">
@ -1264,12 +1298,12 @@ Example: https://server.my:8787</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-749"/>
<location line="-771"/>
<source>You joined this room.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+751"/>
<location line="+773"/>
<source>Rejected the knock from %1.</source>
<translation type="unfinished"></translation>
</message>
@ -1350,6 +1384,11 @@ Example: https://server.my:8787</source>
<source>Save as</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+7"/>
<source>Open in external program</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+51"/>
<source>No room open</source>
@ -1462,7 +1501,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserProfile</name>
<message>
<location filename="../qml/UserProfile.qml" line="+53"/>
<location filename="../qml/UserProfile.qml" line="+54"/>
<source>Verify</source>
<translation type="unfinished"></translation>
</message>
@ -1485,7 +1524,7 @@ Example: https://server.my:8787</source>
<context>
<name>UserSettingsPage</name>
<message>
<location filename="../../src/UserSettingsPage.cpp" line="+781"/>
<location filename="../../src/UserSettingsPage.cpp" line="+794"/>
<source>Minimize to tray</source>
<translation></translation>
</message>

@ -43,6 +43,7 @@
<url type="homepage">https://github.com/Nheko-Reborn/nheko</url>
<update_contact>https://github.com/Nheko-Reborn</update_contact>
<releases>
<release date="2021-01-27" version="0.8.1"/>
<release date="2021-01-21" version="0.8.0"/>
<release date="2020-06-12" version="0.7.2"/>
<release date="2020-04-24" version="0.7.1"/>

@ -11,6 +11,7 @@ Popup {
property string completerName
property var completer
property bool bottomToTop: true
property alias count: listView.count
signal completionClicked(string completion)
@ -84,7 +85,7 @@ Popup {
anchors.fill: parent
hoverEnabled: true
onEntered: popup.currentIndex = model.index
onPositionChanged: popup.currentIndex = model.index
onClicked: popup.completionClicked(completer.completionAt(model.index))
Ripple {

@ -162,6 +162,10 @@ Rectangle {
if (event.matches(StandardKey.Paste)) {
TimelineManager.timeline.input.paste(false);
event.accepted = true;
} else if (event.key == Qt.Key_Space) {
if (popup.opened && popup.count <= 0)
popup.close();
} else if (event.modifiers == Qt.ControlModifier && event.key == Qt.Key_U) {
messageInput.clear();
} else if (event.modifiers == Qt.ControlModifier && event.key == Qt.Key_P) {
@ -202,9 +206,12 @@ Rectangle {
while (pos > -1) {
var t = messageInput.getText(pos, pos + 1);
console.log('"' + t + '"');
if (t == '@' || t == ' ' || t == '\t') {
if (t == '@') {
messageInput.openCompleter(pos, "user");
return ;
} else if (t == ' ' || t == '\t') {
messageInput.openCompleter(pos + 1, "user");
return ;
} else if (t == ':') {
messageInput.openCompleter(pos, "emoji");
return ;
@ -255,7 +262,7 @@ Rectangle {
Connections {
ignoreUnknownSignals: true
onReplyChanged: messageInput.forceActiveFocus();
onReplyChanged: messageInput.forceActiveFocus()
target: TimelineManager.timeline
}
@ -267,11 +274,6 @@ Rectangle {
onClicked: TimelineManager.timeline.input.paste(true)
}
NhekoDropArea {
anchors.fill: parent
roomid: TimelineManager.timeline ? TimelineManager.timeline.roomId() : ""
}
}
ScrollBar.vertical: ScrollBar {

@ -0,0 +1,126 @@
import QtGraphicalEffects 1.0
import QtQuick 2.12
import im.nheko 1.0
Item {
id: privacyScreen
property var timelineRoot
property int screenTimeout
Connections {
target: TimelineManager
onFocusChanged: {
if (TimelineManager.isWindowFocused) {
screenSaverTimer.stop();
screenSaver.state = "Invisible";
} else {
if (timelineRoot.visible)
screenSaverTimer.start();
}
}
}
Timer {
id: screenSaverTimer
interval: screenTimeout * 1000
running: true
onTriggered: {
screenSaver.state = "Visible";
}
}
Item {
id: screenSaver
state: "Invisible"
anchors.fill: parent
visible: false
states: [
State {
name: "Visible"
PropertyChanges {
target: screenSaver
visible: true
}
PropertyChanges {
target: screenSaver
opacity: 1
}
},
State {
name: "Invisible"
PropertyChanges {
target: screenSaver
opacity: 0
}
PropertyChanges {
target: screenSaver
visible: false
}
}
]
transitions: [
Transition {
from: "Visible"
to: "Invisible"
SequentialAnimation {
NumberAnimation {
target: screenSaver
property: "opacity"
duration: 250
easing.type: Easing.InQuad
}
NumberAnimation {
target: screenSaver
property: "visible"
duration: 0
}
}
},
Transition {
from: "Invisible"
to: "Visible"
SequentialAnimation {
NumberAnimation {
target: screenSaver
property: "visible"
duration: 0
}
NumberAnimation {
target: screenSaver
property: "opacity"
duration: 500
easing.type: Easing.InQuad
}
}
}
]
FastBlur {
id: blur
anchors.fill: parent
source: timelineRoot
radius: 50
}
}
}

@ -28,7 +28,7 @@ Item {
if (mouse.button === Qt.RightButton)
messageContextMenu.show(model.id, model.type, model.isEncrypted, row);
else
event.accepted = false;
mouse.accepted = false;
}
onPressAndHold: {
messageContextMenu.show(model.id, model.type, model.isEncrypted, row, mapToItem(timelineRoot, mouse.x, mouse.y));

@ -35,7 +35,7 @@ Page {
colors: palette
model: EmojiProxyModel {
category: EmojiCategory.People
category: Emoji.Category.People
sourceModel: EmojiModel {
}
@ -194,6 +194,8 @@ Page {
}
ColumnLayout {
id: timelineLayout
visible: TimelineManager.timeline != null
anchors.fill: parent
spacing: 0
@ -278,6 +280,18 @@ Page {
}
NhekoDropArea {
anchors.fill: parent
roomid: TimelineManager.timeline ? TimelineManager.timeline.roomId() : ""
}
}
PrivacyScreen {
anchors.fill: parent
visible: Settings.privacyScreen
screenTimeout: Settings.privacyScreenTimeout
timelineRoot: timelineLayout
}
systemInactive: SystemPalette {

@ -10,6 +10,8 @@ ApplicationWindow {
property var profile
x: MainWindow.x + (MainWindow.width / 2) - (width / 2)
y: MainWindow.y + (MainWindow.height / 2) - (height / 2)
height: 650
width: 420
minimumHeight: 420
@ -17,6 +19,11 @@ ApplicationWindow {
color: colors.window
title: profile.isGlobalUserProfile ? "Global User Profile" : "Room User Profile"
Shortcut {
sequence: StandardKey.Cancel
onActivated: userProfileDialog.close()
}
ColumnLayout {
id: contentL
@ -84,10 +91,9 @@ ApplicationWindow {
font.bold: true
Layout.alignment: Qt.AlignHCenter
selectByMouse: true
onAccepted: {
profile.changeUsername(displayUsername.text)
displayUsername.isUsernameEditingAllowed = false
profile.changeUsername(displayUsername.text);
displayUsername.isUsernameEditingAllowed = false;
}
ImageButton {
@ -96,18 +102,18 @@ ApplicationWindow {
anchors.left: displayUsername.right
anchors.verticalCenter: displayUsername.verticalCenter
image: displayUsername.isUsernameEditingAllowed ? ":/icons/icons/ui/checkmark.png" : ":/icons/icons/ui/edit.png"
onClicked: {
if (displayUsername.isUsernameEditingAllowed) {
profile.changeUsername(displayUsername.text)
displayUsername.isUsernameEditingAllowed = false
profile.changeUsername(displayUsername.text);
displayUsername.isUsernameEditingAllowed = false;
} else {
displayUsername.isUsernameEditingAllowed = true
displayUsername.focus = true
displayUsername.selectAll()
displayUsername.isUsernameEditingAllowed = true;
displayUsername.focus = true;
displayUsername.selectAll();
}
}
}
}
MatrixText {

@ -131,6 +131,7 @@
<file>qml/MessageInput.qml</file>
<file>qml/MessageView.qml</file>
<file>qml/NhekoBusyIndicator.qml</file>
<file>qml/PrivacyScreen.qml</file>
<file>qml/Reactions.qml</file>
<file>qml/ReplyPopup.qml</file>
<file>qml/ScrollHelper.qml</file>

@ -333,6 +333,8 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent)
&ChatPage::initializeMentions,
user_mentions_popup_,
&popups::UserMentions::initializeMentions);
connect(
this, &ChatPage::chatFocusChanged, view_manager_, &TimelineViewManager::chatFocusChanged);
connect(this, &ChatPage::syncUI, this, [this](const mtx::responses::Rooms &rooms) {
try {
room_list_->cleanupInvites(cache::invites());

@ -127,7 +127,6 @@ public slots:
void receivedSessionKey(const std::string &room_id, const std::string &session_id);
void decryptDownloadedSecrets(mtx::secret_storage::AesHmacSha2KeyDescription keyDesc,
const SecretsToDecrypt &secrets);
signals:
void connectionLost();
void connectionRestored();
@ -176,6 +175,7 @@ signals:
void retrievedPresence(const QString &statusMsg, mtx::presence::PresenceState state);
void themeChanged();
void decryptSidebarChanged();
void chatFocusChanged(const bool focused);
//! Signals for device verificaiton
void receivedDeviceVerificationAccept(

@ -120,7 +120,7 @@ LoginPage::LoginPage(QWidget *parent)
password_input_ = new TextField(this);
password_input_->setLabel(tr("Password"));
password_input_->setEchoMode(QLineEdit::Password);
password_input_->setToolTip("Your password.");
password_input_->setToolTip(tr("Your password."));
deviceName_ = new TextField(this);
deviceName_->setLabel(tr("Device name"));
@ -129,8 +129,8 @@ LoginPage::LoginPage(QWidget *parent)
"If none is provided a default is used."));
serverInput_ = new TextField(this);
serverInput_->setLabel("Homeserver address");
serverInput_->setPlaceholderText("matrix.org");
serverInput_->setLabel(tr("Homeserver address"));
serverInput_->setPlaceholderText(tr("server.my:8787"));
serverInput_->setToolTip(tr("The address that can be used to contact you homeservers "
"client API.\nExample: https://server.my:8787"));
serverInput_->hide();
@ -217,7 +217,7 @@ LoginPage::onMatrixIdEntered()
if (!matrixid_input_->isValid()) {
error_matrixid_label_->show();
showError(error_matrixid_label_,
"You have entered an invalid Matrix ID e.g @joe:matrix.org");
tr("You have entered an invalid Matrix ID e.g @joe:matrix.org"));
return;
} else {
error_matrixid_label_->setText("");
@ -228,7 +228,7 @@ LoginPage::onMatrixIdEntered()
user = parse<User>(matrixid_input_->text().toStdString());
} catch (const std::exception &) {
showError(error_matrixid_label_,
"You have entered an invalid Matrix ID e.g @joe:matrix.org");
tr("You have entered an invalid Matrix ID e.g @joe:matrix.org"));
return;
}
@ -385,7 +385,7 @@ LoginPage::onLoginButtonClicked()
if (!matrixid_input_->isValid()) {
error_matrixid_label_->show();
showError(error_matrixid_label_,
"You have entered an invalid Matrix ID e.g @joe:matrix.org");
tr("You have entered an invalid Matrix ID e.g @joe:matrix.org"));
return;
} else {
error_matrixid_label_->setText("");
@ -396,7 +396,7 @@ LoginPage::onLoginButtonClicked()
user = parse<User>(matrixid_input_->text().toStdString());
} catch (const std::exception &) {
showError(error_matrixid_label_,
"You have entered an invalid Matrix ID e.g @joe:matrix.org");
tr("You have entered an invalid Matrix ID e.g @joe:matrix.org"));
return;
}

@ -59,6 +59,8 @@ MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, userSettings_{UserSettings::instance()}
{
instance_ = this;
setWindowTitle(0);
setObjectName("MainWindow");
@ -130,6 +132,9 @@ MainWindow::MainWindow(QWidget *parent)
SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));
connect(chat_page_, SIGNAL(contentLoaded()), this, SLOT(removeOverlayProgressBar()));
connect(this, &MainWindow::focusChanged, chat_page_, &ChatPage::chatFocusChanged);
connect(
chat_page_, &ChatPage::showUserSettingsPage, this, &MainWindow::showUserSettingsPage);
@ -204,6 +209,19 @@ MainWindow::resizeEvent(QResizeEvent *event)
QMainWindow::resizeEvent(event);
}
bool
MainWindow::event(QEvent *event)
{
auto type = event->type();
if (type == QEvent::WindowActivate) {
emit focusChanged(true);
} else if (type == QEvent::WindowDeactivate) {
emit focusChanged(false);
}
return QMainWindow::event(event);
}
void
MainWindow::adjustSideBars()
{
@ -296,8 +314,6 @@ MainWindow::showChatPage()
&Cache::secretChanged,
userSettingsPage_,
&UserSettingsPage::updateSecretStatus);
instance_ = this;
}
void

@ -61,10 +61,15 @@ class MainWindow : public QMainWindow
{
Q_OBJECT
Q_PROPERTY(int x READ x CONSTANT)
Q_PROPERTY(int y READ y CONSTANT)
Q_PROPERTY(int width READ width CONSTANT)
Q_PROPERTY(int height READ height CONSTANT)
public:
explicit MainWindow(QWidget *parent = nullptr);
static MainWindow *instance() { return instance_; };
static MainWindow *instance() { return instance_; }
void saveCurrentWindowSize();
void openLeaveRoomDialog(const QString &room_id);
@ -88,6 +93,7 @@ protected:
void closeEvent(QCloseEvent *event) override;
void resizeEvent(QResizeEvent *event) override;
void showEvent(QShowEvent *event) override;
bool event(QEvent *event) override;
private slots:
//! Show or hide the sidebars based on window's size.
@ -115,6 +121,9 @@ private slots:
virtual void setWindowTitle(int notificationCount);
signals:
void focusChanged(const bool focused);
private:
bool loadJdenticonPlugin();

@ -88,14 +88,16 @@ UserSettings::load(std::optional<QString> profile)
settings.value("user/timeline/message_hover_highlight", false).toBool();
enlargeEmojiOnlyMessages_ =
settings.value("user/timeline/enlarge_emoji_only_msg", false).toBool();
markdown_ = settings.value("user/markdown_enabled", true).toBool();
typingNotifications_ = settings.value("user/typing_notifications", true).toBool();
sortByImportance_ = settings.value("user/sort_by_unread", true).toBool();
readReceipts_ = settings.value("user/read_receipts", true).toBool();
theme_ = settings.value("user/theme", defaultTheme_).toString();
font_ = settings.value("user/font_family", "default").toString();
avatarCircles_ = settings.value("user/avatar_circles", true).toBool();
decryptSidebar_ = settings.value("user/decrypt_sidebar", true).toBool();
markdown_ = settings.value("user/markdown_enabled", true).toBool();
typingNotifications_ = settings.value("user/typing_notifications", true).toBool();
sortByImportance_ = settings.value("user/sort_by_unread", true).toBool();
readReceipts_ = settings.value("user/read_receipts", true).toBool();
theme_ = settings.value("user/theme", defaultTheme_).toString();
font_ = settings.value("user/font_family", "default").toString();
avatarCircles_ = settings.value("user/avatar_circles", true).toBool();
decryptSidebar_ = settings.value("user/decrypt_sidebar", true).toBool();
privacyScreen_ = settings.value("user/privacy_screen", false).toBool();
privacyScreenTimeout_ = settings.value("user/privacy_screen_timeout", 0).toInt();
shareKeysWithTrustedUsers_ =
settings.value("user/share_keys_with_trusted_users", true).toBool();
mobileMode_ = settings.value("user/mobile_mode", false).toBool();
@ -292,6 +294,28 @@ UserSettings::setDecryptSidebar(bool state)
save();
}
void
UserSettings::setPrivacyScreen(bool state)
{
if (state == privacyScreen_) {
return;
}
privacyScreen_ = state;
emit privacyScreenChanged(state);
save();
}
void
UserSettings::setPrivacyScreenTimeout(int state)
{
if (state == privacyScreenTimeout_) {
return;
}
privacyScreenTimeout_ = state;
emit privacyScreenTimeoutChanged(state);
save();
}
void
UserSettings::setFontSize(double size)
{
@ -539,6 +563,8 @@ UserSettings::save()
settings.setValue("avatar_circles", avatarCircles_);
settings.setValue("decrypt_sidebar", decryptSidebar_);
settings.setValue("privacy_screen", privacyScreen_);
settings.setValue("privacy_screen_timeout", privacyScreenTimeout_);
settings.setValue("share_keys_with_trusted_users", shareKeysWithTrustedUsers_);
settings.setValue("mobile_mode", mobileMode_);
settings.setValue("font_size", baseFontSize_);
@ -628,6 +654,7 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
startInTrayToggle_ = new Toggle{this};
avatarCircles_ = new Toggle{this};
decryptSidebar_ = new Toggle(this);
privacyScreen_ = new Toggle{this};
shareKeysWithTrustedUsers_ = new Toggle(this);
groupViewToggle_ = new Toggle{this};
timelineButtonsToggle_ = new Toggle{this};
@ -651,11 +678,13 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
cameraResolutionCombo_ = new QComboBox{this};
cameraFrameRateCombo_ = new QComboBox{this};
timelineMaxWidthSpin_ = new QSpinBox{this};
privacyScreenTimeout_ = new QSpinBox{this};
trayToggle_->setChecked(settings_->tray());
startInTrayToggle_->setChecked(settings_->startInTray());
avatarCircles_->setChecked(settings_->avatarCircles());
decryptSidebar_->setChecked(settings_->decryptSidebar());
privacyScreen_->setChecked(settings_->privacyScreen());
shareKeysWithTrustedUsers_->setChecked(settings_->shareKeysWithTrustedUsers());
groupViewToggle_->setChecked(settings_->groupView());
timelineButtonsToggle_->setChecked(settings_->buttonsInTimeline());
@ -675,6 +704,10 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
startInTrayToggle_->setDisabled(true);
}
if (!settings_->privacyScreen()) {
privacyScreenTimeout_->setDisabled(true);
}
avatarCircles_->setFixedSize(64, 48);
auto uiLabel_ = new QLabel{tr("INTERFACE"), this};
@ -715,6 +748,10 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
timelineMaxWidthSpin_->setMaximum(100'000'000);
timelineMaxWidthSpin_->setSingleStep(10);
privacyScreenTimeout_->setMinimum(0);
privacyScreenTimeout_->setMaximum(3600);
privacyScreenTimeout_->setSingleStep(10);
auto callsLabel = new QLabel{tr("CALLS"), this};
callsLabel->setFixedHeight(callsLabel->minimumHeight() + LayoutTopMargin);
callsLabel->setAlignment(Qt::AlignBottom);
@ -808,6 +845,15 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
decryptSidebar_,
tr("Decrypt the messages shown in the sidebar.\nOnly affects messages in "
"encrypted chats."));
boxWrap(tr("Privacy Screen"),
privacyScreen_,
tr("When the window loses focus, the timeline will\nbe blurred."));
boxWrap(
tr("Privacy screen timeout (in seconds [0 - 3600])"),
privacyScreenTimeout_,
tr("Set timeout (in seconds) for how long after window loses\nfocus before the screen"
" will be blurred.\nSet to 0 to blur immediately after focus loss. Max value of 1 "
"hour (3600 seconds)"));
boxWrap(tr("Show buttons in timeline"),
timelineButtonsToggle_,
tr("Show buttons to quickly reply, react or access additional options next to each "
@ -1066,7 +1112,15 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
connect(decryptSidebar_, &Toggle::toggled, this, [this](bool enabled) {
settings_->setDecryptSidebar(enabled);
emit decryptSidebarChanged();
});
connect(privacyScreen_, &Toggle::toggled, this, [this](bool enabled) {
settings_->setPrivacyScreen(enabled);
if (enabled) {
privacyScreenTimeout_->setEnabled(true);
} else {
privacyScreenTimeout_->setDisabled(true);
}
});
connect(shareKeysWithTrustedUsers_, &Toggle::toggled, this, [this](bool enabled) {
@ -1122,6 +1176,11 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
this,
[this](int newValue) { settings_->setTimelineMaxWidth(newValue); });
connect(privacyScreenTimeout_,
qOverload<int>(&QSpinBox::valueChanged),
this,
[this](int newValue) { settings_->setPrivacyScreenTimeout(newValue); });
connect(
sessionKeysImportBtn, &QPushButton::clicked, this, &UserSettingsPage::importSessionKeys);
@ -1155,6 +1214,7 @@ UserSettingsPage::showEvent(QShowEvent *)
startInTrayToggle_->setState(settings_->startInTray());
groupViewToggle_->setState(settings_->groupView());
decryptSidebar_->setState(settings_->decryptSidebar());
privacyScreen_->setState(settings_->privacyScreen());
shareKeysWithTrustedUsers_->setState(settings_->shareKeysWithTrustedUsers());
avatarCircles_->setState(settings_->avatarCircles());
typingNotifications_->setState(settings_->typingNotifications());
@ -1169,6 +1229,7 @@ UserSettingsPage::showEvent(QShowEvent *)
enlargeEmojiOnlyMessages_->setState(settings_->enlargeEmojiOnlyMessages());
deviceIdValue_->setText(QString::fromStdString(http::client()->device_id()));
timelineMaxWidthSpin_->setValue(settings_->timelineMaxWidth());
privacyScreenTimeout_->setValue(settings_->privacyScreenTimeout());
WebRTCSession::instance().refreshDevices();
auto mics =

@ -67,6 +67,10 @@ class UserSettings : public QObject
bool avatarCircles READ avatarCircles WRITE setAvatarCircles NOTIFY avatarCirclesChanged)
Q_PROPERTY(bool decryptSidebar READ decryptSidebar WRITE setDecryptSidebar NOTIFY
decryptSidebarChanged)
Q_PROPERTY(
bool privacyScreen READ privacyScreen WRITE setPrivacyScreen NOTIFY privacyScreenChanged)
Q_PROPERTY(int privacyScreenTimeout READ privacyScreenTimeout WRITE setPrivacyScreenTimeout
NOTIFY privacyScreenTimeoutChanged)
Q_PROPERTY(int timelineMaxWidth READ timelineMaxWidth WRITE setTimelineMaxWidth NOTIFY
timelineMaxWidthChanged)
Q_PROPERTY(bool mobileMode READ mobileMode WRITE setMobileMode NOTIFY mobileModeChanged)
@ -131,6 +135,8 @@ public:
void setAlertOnNotification(bool state);
void setAvatarCircles(bool state);
void setDecryptSidebar(bool state);
void setPrivacyScreen(bool state);
void setPrivacyScreenTimeout(int state);
void setPresence(Presence state);
void setRingtone(QString ringtone);
void setMicrophone(QString microphone);
@ -154,6 +160,8 @@ public:
bool groupView() const { return groupView_; }
bool avatarCircles() const { return avatarCircles_; }
bool decryptSidebar() const { return decryptSidebar_; }
bool privacyScreen() const { return privacyScreen_; }
int privacyScreenTimeout() const { return privacyScreenTimeout_; }
bool markdown() const { return markdown_; }
bool typingNotifications() const { return typingNotifications_; }
bool sortByImportance() const { return sortByImportance_; }
@ -201,6 +209,8 @@ signals:
void alertOnNotificationChanged(bool state);
void avatarCirclesChanged(bool state);
void decryptSidebarChanged(bool state);
void privacyScreenChanged(bool state);
void privacyScreenTimeoutChanged(int state);
void timelineMaxWidthChanged(int state);
void mobileModeChanged(bool mode);
void fontSizeChanged(double state);
@ -241,6 +251,8 @@ private:
bool hasAlertOnNotification_;
bool avatarCircles_;
bool decryptSidebar_;
bool privacyScreen_;
int privacyScreenTimeout_;
bool shareKeysWithTrustedUsers_;
bool mobileMode_;
int timelineMaxWidth_;
@ -320,6 +332,8 @@ private:
Toggle *avatarCircles_;
Toggle *useStunServer_;
Toggle *decryptSidebar_;
Toggle *privacyScreen_;
QSpinBox *privacyScreenTimeout_;
Toggle *shareKeysWithTrustedUsers_;
Toggle *mobileMode_;
QLabel *deviceFingerprintValue_;

@ -55,8 +55,7 @@ utils::codepointIsEmoji(uint code)
{
// TODO: Be more precise here.
return (code >= 0x2600 && code <= 0x27bf) || (code >= 0x2b00 && code <= 0x2bff) ||
(code >= 0x1f300 && code <= 0x1f3ff) || (code >= 0x1f000 && code <= 0x1faff) ||
code == 0x200d;
(code >= 0x1f000 && code <= 0x1faff) || code == 0x200d || code == 0xfe0f;
}
QString

@ -242,9 +242,12 @@ EventStore::receivedSessionKey(const std::string &session_id)
return;
auto request = pending_key_requests.at(session_id);
pending_key_requests.erase(session_id);
olm::send_key_request_for(request.events.front(), request.request_id, true);
// Don't request keys again until Nheko is restarted (for now)
pending_key_requests[session_id].events.clear();
if (!request.events.empty())
olm::send_key_request_for(request.events.front(), request.request_id, true);
for (const auto &e : request.events) {
auto idx = idToIndex(e.event_id);
@ -778,7 +781,8 @@ EventStore::fetchMore()
if (cache::client()->previousBatchToken(room_id_) != opts.from) {
nhlog::net()->warn("Cache cleared while fetching more messages, dropping "
"/messages response");
emit fetchedMore();
if (!opts.to.empty())
emit fetchedMore();
return;
}
if (err) {

@ -128,6 +128,10 @@ TimelineViewManager::TimelineViewManager(CallManager *callManager, ChatPage *par
"UserProfile needs to be instantiated on the C++ side");
static auto self = this;
qmlRegisterSingletonType<MainWindow>(
"im.nheko", 1, 0, "MainWindow", [](QQmlEngine *, QJSEngine *) -> QObject * {
return MainWindow::instance();
});
qmlRegisterSingletonType<TimelineViewManager>(
"im.nheko", 1, 0, "TimelineManager", [](QQmlEngine *, QJSEngine *) -> QObject * {
return self;

@ -36,6 +36,8 @@ class TimelineViewManager : public QObject
bool isInitialSync MEMBER isInitialSync_ READ isInitialSync NOTIFY initialSyncChanged)
Q_PROPERTY(
bool isNarrowView MEMBER isNarrowView_ READ isNarrowView NOTIFY narrowViewChanged)
Q_PROPERTY(
bool isWindowFocused MEMBER isWindowFocused_ READ isWindowFocused NOTIFY focusChanged)
public:
TimelineViewManager(CallManager *callManager, ChatPage *parent = nullptr);
@ -54,6 +56,7 @@ public:
Q_INVOKABLE TimelineModel *activeTimeline() const { return timeline_; }
Q_INVOKABLE bool isInitialSync() const { return isInitialSync_; }
bool isNarrowView() const { return isNarrowView_; }
bool isWindowFocused() const { return isWindowFocused_; }
Q_INVOKABLE void openImageOverlay(QString mxcUrl, QString eventId) const;
Q_INVOKABLE QColor userColor(QString id, QColor background);
Q_INVOKABLE QString escapeEmoji(QString str) const;
@ -83,11 +86,17 @@ signals:
void inviteUsers(QStringList users);
void showRoomList();
void narrowViewChanged();
void focusChanged();
public slots:
void updateReadReceipts(const QString &room_id, const std::vector<QString> &event_ids);
void receivedSessionKey(const std::string &room_id, const std::string &session_id);
void initWithMessages(const std::vector<QString> &roomIds);
void chatFocusChanged(bool focused)
{
isWindowFocused_ = focused;
emit focusChanged();
}
void setHistoryView(const QString &room_id);
TimelineModel *getHistoryView(const QString &room_id)
@ -145,8 +154,9 @@ private:
TimelineModel *timeline_ = nullptr;
CallManager *callManager_ = nullptr;
bool isInitialSync_ = true;
bool isNarrowView_ = false;
bool isInitialSync_ = true;
bool isNarrowView_ = false;
bool isWindowFocused_ = false;
QHash<QString, QColor> userColors;

@ -244,7 +244,7 @@ UserProfile::changeUsername(QString username)
if (isGlobalUserProfile()) {
// change global
http::client()->set_displayname(
username.toStdString(), [this](mtx::http::RequestErr err) {
username.toStdString(), [](mtx::http::RequestErr err) {
if (err) {
nhlog::net()->warn("could not change username");
return;
@ -408,4 +408,4 @@ UserProfile::getGlobalProfileData()
globalAvatarUrl = QString::fromStdString(res.avatar_url);
emit avatarUrlChanged();
});
}
}

Loading…
Cancel
Save