mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-26 04:58:49 +03:00
Merge master into reactions
This commit is contained in:
commit
6d2789f4d5
38 changed files with 6320 additions and 467 deletions
|
@ -295,6 +295,7 @@ set(SRC_FILES
|
||||||
src/RegisterPage.cpp
|
src/RegisterPage.cpp
|
||||||
src/RoomInfoListItem.cpp
|
src/RoomInfoListItem.cpp
|
||||||
src/RoomList.cpp
|
src/RoomList.cpp
|
||||||
|
src/SSOHandler.cpp
|
||||||
src/SideBarActions.cpp
|
src/SideBarActions.cpp
|
||||||
src/Splitter.cpp
|
src/Splitter.cpp
|
||||||
src/TextInputWidget.cpp
|
src/TextInputWidget.cpp
|
||||||
|
@ -337,7 +338,7 @@ if(USE_BUNDLED_MTXCLIENT)
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
MatrixClient
|
MatrixClient
|
||||||
GIT_REPOSITORY https://github.com/Nheko-Reborn/mtxclient.git
|
GIT_REPOSITORY https://github.com/Nheko-Reborn/mtxclient.git
|
||||||
GIT_TAG 1893cd6171c40c250ca64d388c082789452340a8
|
GIT_TAG 71bd56b66cf634341ffef804f07d33f01fd57c25
|
||||||
)
|
)
|
||||||
FetchContent_MakeAvailable(MatrixClient)
|
FetchContent_MakeAvailable(MatrixClient)
|
||||||
else()
|
else()
|
||||||
|
@ -496,6 +497,7 @@ qt5_wrap_cpp(MOC_HEADERS
|
||||||
src/RegisterPage.h
|
src/RegisterPage.h
|
||||||
src/RoomInfoListItem.h
|
src/RoomInfoListItem.h
|
||||||
src/RoomList.h
|
src/RoomList.h
|
||||||
|
src/SSOHandler.h
|
||||||
src/SideBarActions.h
|
src/SideBarActions.h
|
||||||
src/Splitter.h
|
src/Splitter.h
|
||||||
src/TextInputWidget.h
|
src/TextInputWidget.h
|
||||||
|
@ -559,7 +561,7 @@ elseif(WIN32)
|
||||||
else()
|
else()
|
||||||
target_link_libraries (nheko PRIVATE Qt5::DBus)
|
target_link_libraries (nheko PRIVATE Qt5::DBus)
|
||||||
endif()
|
endif()
|
||||||
target_include_directories(nheko PRIVATE src includes third_party/blurhash)
|
target_include_directories(nheko PRIVATE src includes third_party/blurhash third_party/cpp-httplib-0.5.12)
|
||||||
|
|
||||||
target_link_libraries(nheko PRIVATE
|
target_link_libraries(nheko PRIVATE
|
||||||
MatrixClient::MatrixClient
|
MatrixClient::MatrixClient
|
||||||
|
|
24
README.md
24
README.md
|
@ -58,7 +58,7 @@ can be found in the [Github releases](https://github.com/Nheko-Reborn/nheko/rele
|
||||||
pacaur -S nheko # nheko-git
|
pacaur -S nheko # nheko-git
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Debian (10 and above)
|
#### Debian (10 and above) / Ubuntu (18.04 and above)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt install nheko
|
sudo apt install nheko
|
||||||
|
@ -179,22 +179,14 @@ sudo pacman -S qt5-base \
|
||||||
sudo emerge -a ">=dev-qt/qtgui-5.9.0" media-libs/fontconfig
|
sudo emerge -a ">=dev-qt/qtgui-5.9.0" media-libs/fontconfig
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Ubuntu 16.04
|
##### Ubuntu 20.04
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo add-apt-repository ppa:beineri/opt-qt592-xenial
|
|
||||||
sudo add-apt-repository ppa:george-edison55/cmake-3.x
|
|
||||||
sudo add-apt-repository ppa:ubuntu-toolchain-r-test
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y g++-7 qt59base qt59svg qt59tools qt59multimedia cmake liblmdb-dev libsodium-dev
|
|
||||||
```
|
|
||||||
|
|
||||||
##### Ubuntu 19.10
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Build requirements + qml modules needed at runtime (you may not need all of them, but the following seem to work according to reports):
|
# Build requirements + qml modules needed at runtime (you may not need all of them, but the following seem to work according to reports):
|
||||||
sudo apt install g++-7 cmake liblmdb-dev libsodium-dev libssl-dev qt{base,declarative,tools,multimedia,script,quickcontrols2-}5-dev qml-module-qt{gstreamer,multimedia,quick-extras,-labs-settings,graphicaleffects,quick-controls2} libqt5svg5-dev
|
sudo apt install g++ cmake zlib1g-dev libssl-dev qt{base,declarative,tools,multimedia,quickcontrols2-}5-dev libqt5svg5-dev libboost-system-dev libboost-thread-dev libboost-iostreams-dev libolm-dev libsodium-dev liblmdb++-dev libcmark-dev nlohmann-json3-dev libspdlog-dev libgtest-dev qml-module-qt{gstreamer,multimedia,quick-extras,-labs-settings,graphicaleffects,quick-controls2}
|
||||||
```
|
```
|
||||||
|
This will install all dependencies, except for tweeny (use bundled tweeny)
|
||||||
|
and mtxclient (needs to be build separately).
|
||||||
|
|
||||||
##### Debian Buster (or higher probably)
|
##### Debian Buster (or higher probably)
|
||||||
|
|
||||||
|
@ -237,14 +229,14 @@ Make sure to install the `MSVC 2017 64-bit` toolset for at least Qt 5.10
|
||||||
We can now build nheko:
|
We can now build nheko:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Release
|
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release
|
||||||
cmake --build build
|
cmake --build build
|
||||||
```
|
```
|
||||||
|
|
||||||
To use bundled dependencies you can use hunter, i.e.:
|
To use bundled dependencies you can use hunter, i.e.:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cmake -H. -Bbuild -DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF -DUSE_BUNDLED_OPENSSL=OFF
|
cmake -S. -Bbuild -DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF -DUSE_BUNDLED_OPENSSL=OFF
|
||||||
cmake --build build --config Release
|
cmake --build build --config Release
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -263,7 +255,7 @@ You might need to pass `-DCMAKE_PREFIX_PATH` to cmake to point it at your qt5 in
|
||||||
e.g on macOS
|
e.g on macOS
|
||||||
|
|
||||||
```
|
```
|
||||||
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=$(brew --prefix qt5)
|
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=$(brew --prefix qt5)
|
||||||
cmake --build build
|
cmake --build build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -146,9 +146,9 @@
|
||||||
"name": "mtxclient",
|
"name": "mtxclient",
|
||||||
"sources": [
|
"sources": [
|
||||||
{
|
{
|
||||||
"sha256": "a8c0239b7157fe8eadae8b06cd6c4e3531dcc61fc5a7f52dbb3c85106f70e3a5",
|
"sha256": "7055f1459a43a12f27f949564624f13cc593ac894e445e6de0e6563ad38ebc3e",
|
||||||
"type": "archive",
|
"type": "archive",
|
||||||
"url": "https://github.com/Nheko-Reborn/mtxclient/archive/1893cd6171c40c250ca64d388c082789452340a8.tar.gz"
|
"url": "https://github.com/Nheko-Reborn/mtxclient/archive/71bd56b66cf634341ffef804f07d33f01fd57c25.tar.gz"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
BIN
resources/icons/ui/unlock.png
Normal file
BIN
resources/icons/ui/unlock.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 385 B |
BIN
resources/icons/ui/unlock@2x.png
Normal file
BIN
resources/icons/ui/unlock@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 741 B |
|
@ -5,8 +5,8 @@
|
||||||
<name>Cache</name>
|
<name>Cache</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/Cache.cpp" line="+1341"/>
|
<location filename="../../src/Cache.cpp" line="+1341"/>
|
||||||
<source>You joined this room</source>
|
<source>You joined this room.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Du bist dem Raum beigetreten.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -18,12 +18,22 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<location line="+894"/>
|
<location line="+898"/>
|
||||||
<source>Invited user: %1</source>
|
<source>Invited user: %1</source>
|
||||||
<translation>Eingeladener Benutzer: %1</translation>
|
<translation>Eingeladener Benutzer: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-5"/>
|
<location line="-463"/>
|
||||||
|
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
|
||||||
|
<translation>Migrieren des Caches auf die aktuelle Version fehlgeschlagen. Das kann verschiedene Gründe als Ursache haben. Bitte lege einen Bugreport an und verwende in der Zwischenzeit eine ältere Version. Alternativ kannst du das Cache manuell entfernen.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+428"/>
|
||||||
|
<source>Room %1 created.</source>
|
||||||
|
<translation>Raum %1 erzeugt.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+30"/>
|
||||||
<source>Failed to invite %1 to %2: %3</source>
|
<source>Failed to invite %1 to %2: %3</source>
|
||||||
<translation>Einladung von %1 in Raum %2 fehlgeschlagen: %3</translation>
|
<translation>Einladung von %1 in Raum %2 fehlgeschlagen: %3</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -58,29 +68,24 @@
|
||||||
<translation>Verbannung von %1 wurde aufgehoben.</translation>
|
<translation>Verbannung von %1 wurde aufgehoben.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-819"/>
|
<location line="-823"/>
|
||||||
<source>Failed to upload media. Please try again.</source>
|
<source>Failed to upload media. Please try again.</source>
|
||||||
<translation>Medienupload fehlgeschlagen. Bitte versuche es erneut.</translation>
|
<translation>Medienupload fehlgeschlagen. Bitte versuche es erneut.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+302"/>
|
<location line="+302"/>
|
||||||
<source>Cache migration failed!</source>
|
<source>Cache migration failed!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Cache migration fehlgeschlagen!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+1"/>
|
<location line="+13"/>
|
||||||
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+12"/>
|
|
||||||
<source>Incompatible cache version</source>
|
<source>Incompatible cache version</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Inkompatible Cacheversion</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+1"/>
|
<location line="+1"/>
|
||||||
<source>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</source>
|
<source>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Das Cache auf der Festplatte wurde mit einer neueren Nheko version angelegt. Bitte aktualisiere Nheko oder entferne das Cache.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+111"/>
|
<location line="+111"/>
|
||||||
|
@ -99,7 +104,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+51"/>
|
<location line="+51"/>
|
||||||
<location line="+215"/>
|
<location line="+219"/>
|
||||||
<source>Please try to login again: %1</source>
|
<source>Please try to login again: %1</source>
|
||||||
<translation>Bitte melde dich erneut an: %1</translation>
|
<translation>Bitte melde dich erneut an: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -124,12 +129,7 @@
|
||||||
<translation>Raum konnte nicht erstellt werden: %1</translation>
|
<translation>Raum konnte nicht erstellt werden: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+5"/>
|
<location line="+16"/>
|
||||||
<source>Room %1 created</source>
|
|
||||||
<translation>Raum %1 wurde erstellt.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+11"/>
|
|
||||||
<source>Failed to leave room: %1</source>
|
<source>Failed to leave room: %1</source>
|
||||||
<translation>Konnte den Raum nicht verlassen: %1</translation>
|
<translation>Konnte den Raum nicht verlassen: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -238,10 +238,15 @@
|
||||||
<context>
|
<context>
|
||||||
<name>EncryptionIndicator</name>
|
<name>EncryptionIndicator</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/EncryptionIndicator.qml" line="+12"/>
|
<location filename="../qml/EncryptionIndicator.qml" line="+36"/>
|
||||||
<source>Encrypted</source>
|
<source>Encrypted</source>
|
||||||
<translation>Verschlüsselt</translation>
|
<translation>Verschlüsselt</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>This message is not encrypted!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>InviteeItem</name>
|
<name>InviteeItem</name>
|
||||||
|
@ -254,7 +259,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LoginPage</name>
|
<name>LoginPage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/LoginPage.cpp" line="+82"/>
|
<location filename="../../src/LoginPage.cpp" line="+89"/>
|
||||||
<source>Matrix ID</source>
|
<source>Matrix ID</source>
|
||||||
<translation>Matrix-ID</translation>
|
<translation>Matrix-ID</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -264,22 +269,46 @@
|
||||||
<translation>z.B. @joe:matrix.org</translation>
|
<translation>z.B. @joe:matrix.org</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+15"/>
|
<location line="+2"/>
|
||||||
|
<source>Your login name. A mxid should start with @ followed by the user id. After the user id you need to include your server name after a :.
|
||||||
|
You can also put your homeserver address there, if your server doesn't support .well-known lookup.
|
||||||
|
Example: @user:server.my
|
||||||
|
If Nheko fails to discover your homeserver, it will show you a field to enter the server manually.</source>
|
||||||
|
<translation>Dein Anmeldename. Eine mxid sollte mit einem @ anfangen, gefolgt von dem Benutzernamen. Nach dem Benutzernamen sollten ein Doppelpunkt (:) under der Servername folgen.
|
||||||
|
Nach dem Doppelpunkt kann alternativ die Serveradresse (mit oder ohne Port) angegeben werden, wenn der Server nicht per .well-known auffindbar ist.
|
||||||
|
Beispiel: @benutzer:dein.server
|
||||||
|
Wenn Nheko deinen Server nicht automatisch erkennen kann, wird es dich nach dem Server fragen.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+21"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Passwort</translation>
|
<translation>Passwort</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+5"/>
|
||||||
<source>Device name</source>
|
<source>Device name</source>
|
||||||
<translation>Gerätename</translation>
|
<translation>Gerätename</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+19"/>
|
<location line="+2"/>
|
||||||
|
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source>
|
||||||
|
<translation>Ein Name für dieses Gerät. Dieser wird anderen angezeigt, wenn sie dieses Gerät verifizieren. Wenn kein Name angegeben wurde, wird automatisch ein zufälliger Name erzeugt, der keine Rückschlüsse auf deine Identität zulassen sollte.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+6"/>
|
||||||
|
<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.
|
||||||
|
Beispiel: https://mein.server:8787</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+16"/>
|
||||||
|
<location line="+185"/>
|
||||||
<source>LOGIN</source>
|
<source>LOGIN</source>
|
||||||
<translation>ANMELDEN</translation>
|
<translation>ANMELDEN</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+85"/>
|
<location line="-100"/>
|
||||||
<source>Autodiscovery failed. Received malformed response.</source>
|
<source>Autodiscovery failed. Received malformed response.</source>
|
||||||
<translation>Automatische Erkennung fehlgeschlagen. Antwort war fehlerhaft.</translation>
|
<translation>Automatische Erkennung fehlgeschlagen. Antwort war fehlerhaft.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -289,7 +318,7 @@
|
||||||
<translation>Automatische Erkennung fehlgeschlagen. Unbekannter Fehler bei Anfrage .well-known.</translation>
|
<translation>Automatische Erkennung fehlgeschlagen. Unbekannter Fehler bei Anfrage .well-known.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+24"/>
|
<location line="+25"/>
|
||||||
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
||||||
<translation>Benötigte Ansprechpunkte nicht auffindbar. Möglicherweise kein Matrixserver.</translation>
|
<translation>Benötigte Ansprechpunkte nicht auffindbar. Möglicherweise kein Matrixserver.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -304,10 +333,20 @@
|
||||||
<translation>Ein unbekannter Fehler ist aufgetreten. Bitte Homeserverdomain prüfen.</translation>
|
<translation>Ein unbekannter Fehler ist aufgetreten. Bitte Homeserverdomain prüfen.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+60"/>
|
<location line="+55"/>
|
||||||
|
<source>SSO LOGIN</source>
|
||||||
|
<translation>SSO ANMELDUNG</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+25"/>
|
||||||
<source>Empty password</source>
|
<source>Empty password</source>
|
||||||
<translation>Leeres Passwort</translation>
|
<translation>Leeres Passwort</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+52"/>
|
||||||
|
<source>SSO login failed</source>
|
||||||
|
<translation>SSO Anmeldung fehlgeschlagen</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MemberList</name>
|
<name>MemberList</name>
|
||||||
|
@ -325,7 +364,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MessageDelegate</name>
|
<name>MessageDelegate</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/delegates/MessageDelegate.qml" line="+64"/>
|
<location filename="../qml/delegates/MessageDelegate.qml" line="+66"/>
|
||||||
<source>redacted</source>
|
<source>redacted</source>
|
||||||
<translation>gelöscht</translation>
|
<translation>gelöscht</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -385,9 +424,19 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+3"/>
|
<location line="+3"/>
|
||||||
|
<source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
|
||||||
|
<translation>Der Benutzername sollte nicht leer sein und nur aus a-z, 0-9, ., _, =, - und / bestehen.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+4"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Passwort</translation>
|
<translation>Passwort</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>Please choose a secure password. The exact requirements for password strength may depend on your server.</source>
|
||||||
|
<translation>Bitte wähle ein sicheres Passwort. Die genauen Anforderungen bestimmt dein Server.</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Password confirmation</source>
|
<source>Password confirmation</source>
|
||||||
|
@ -395,11 +444,16 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Home Server</source>
|
<source>Homeserver</source>
|
||||||
<translation>Homeserver</translation>
|
<translation>Heimserver</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+16"/>
|
<location line="+2"/>
|
||||||
|
<source>A server that allows registration. Since matrix is decentralized, you need to first find a server you can register on or host your own.</source>
|
||||||
|
<translation>Ein Server, der Registrierungen zulässt. Weil Matrix ein dezentralisiertes Protokoll ist, musst du erst einen Server ausfindig machen oder einen persönlichen Server aufsetzen.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+17"/>
|
||||||
<source>REGISTER</source>
|
<source>REGISTER</source>
|
||||||
<translation>REGISTRIEREN</translation>
|
<translation>REGISTRIEREN</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -548,7 +602,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineModel</name>
|
<name>TimelineModel</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/timeline/TimelineModel.cpp" line="+844"/>
|
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/>
|
||||||
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
||||||
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
||||||
<translation>-- Entschlüsselungsfehler (Fehler bei Kommunikation mit Datenbank) --</translation>
|
<translation>-- Entschlüsselungsfehler (Fehler bei Kommunikation mit Datenbank) --</translation>
|
||||||
|
@ -597,12 +651,7 @@
|
||||||
<translation>-- Verschlüsseltes Event (keine Schlüssel zur Entschlüsselung gefunden) --</translation>
|
<translation>-- Verschlüsseltes Event (keine Schlüssel zur Entschlüsselung gefunden) --</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-258"/>
|
<location line="+82"/>
|
||||||
<source>You joined this room</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+340"/>
|
|
||||||
<source>-- Encrypted Event (Unknown event type) --</source>
|
<source>-- Encrypted Event (Unknown event type) --</source>
|
||||||
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
||||||
<translation>-- Verschlüsseltes Event (Unbekannter Eventtyp) --</translation>
|
<translation>-- Verschlüsseltes Event (Unbekannter Eventtyp) --</translation>
|
||||||
|
@ -722,7 +771,12 @@
|
||||||
<translation>%1 hat das Anklopfen zurückgezogen.</translation>
|
<translation>%1 hat das Anklopfen zurückgezogen.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+2"/>
|
<location line="-1278"/>
|
||||||
|
<source>You joined this room.</source>
|
||||||
|
<translation>Du bist dem Raum beigetreten.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+1280"/>
|
||||||
<source>Rejected the knock from %1.</source>
|
<source>Rejected the knock from %1.</source>
|
||||||
<translation>Hat das Anklopfen von %1 abgewiesen.</translation>
|
<translation>Hat das Anklopfen von %1 abgewiesen.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -746,7 +800,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineRow</name>
|
<name>TimelineRow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/TimelineRow.qml" line="+83"/>
|
<location filename="../qml/TimelineRow.qml" line="+84"/>
|
||||||
<source>React</source>
|
<source>React</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -809,7 +863,7 @@
|
||||||
<translation>Kein Raum geöffnet</translation>
|
<translation>Kein Raum geöffnet</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+254"/>
|
<location line="+256"/>
|
||||||
<source>Close</source>
|
<source>Close</source>
|
||||||
<translation>Schließen</translation>
|
<translation>Schließen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -898,7 +952,7 @@
|
||||||
<message>
|
<message>
|
||||||
<location line="+1"/>
|
<location line="+1"/>
|
||||||
<source>Show buttons in timeline</source>
|
<source>Show buttons in timeline</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Zeige Buttons in der Historie</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+1"/>
|
<location line="+1"/>
|
||||||
|
@ -1116,7 +1170,7 @@
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/dialogs/FallbackAuth.cpp" line="+30"/>
|
<location filename="../../src/dialogs/FallbackAuth.cpp" line="+30"/>
|
||||||
<source>Open Fallback in Browser</source>
|
<source>Open Fallback in Browser</source>
|
||||||
<translation type="unfinished">Öffne Fallback im Browser</translation>
|
<translation>Öffne Fallback im Browser</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+1"/>
|
<location line="+1"/>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<name>Cache</name>
|
<name>Cache</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/Cache.cpp" line="+1341"/>
|
<location filename="../../src/Cache.cpp" line="+1341"/>
|
||||||
<source>You joined this room</source>
|
<source>You joined this room.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -18,12 +18,22 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<location line="+894"/>
|
<location line="+898"/>
|
||||||
<source>Invited user: %1</source>
|
<source>Invited user: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-5"/>
|
<location line="-463"/>
|
||||||
|
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+428"/>
|
||||||
|
<source>Room %1 created.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+30"/>
|
||||||
<source>Failed to invite %1 to %2: %3</source>
|
<source>Failed to invite %1 to %2: %3</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -58,7 +68,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-819"/>
|
<location line="-823"/>
|
||||||
<source>Failed to upload media. Please try again.</source>
|
<source>Failed to upload media. Please try again.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -68,12 +78,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+1"/>
|
<location line="+13"/>
|
||||||
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+12"/>
|
|
||||||
<source>Incompatible cache version</source>
|
<source>Incompatible cache version</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -99,7 +104,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+51"/>
|
<location line="+51"/>
|
||||||
<location line="+215"/>
|
<location line="+219"/>
|
||||||
<source>Please try to login again: %1</source>
|
<source>Please try to login again: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -124,12 +129,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+5"/>
|
<location line="+16"/>
|
||||||
<source>Room %1 created</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+11"/>
|
|
||||||
<source>Failed to leave room: %1</source>
|
<source>Failed to leave room: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -238,10 +238,15 @@
|
||||||
<context>
|
<context>
|
||||||
<name>EncryptionIndicator</name>
|
<name>EncryptionIndicator</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/EncryptionIndicator.qml" line="+12"/>
|
<location filename="../qml/EncryptionIndicator.qml" line="+36"/>
|
||||||
<source>Encrypted</source>
|
<source>Encrypted</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>This message is not encrypted!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>InviteeItem</name>
|
<name>InviteeItem</name>
|
||||||
|
@ -254,7 +259,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LoginPage</name>
|
<name>LoginPage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/LoginPage.cpp" line="+82"/>
|
<location filename="../../src/LoginPage.cpp" line="+89"/>
|
||||||
<source>Matrix ID</source>
|
<source>Matrix ID</source>
|
||||||
<translation>Matrix ID</translation>
|
<translation>Matrix ID</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -264,22 +269,42 @@
|
||||||
<translation>π.χ @john:matrix.org</translation>
|
<translation>π.χ @john:matrix.org</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+15"/>
|
<location line="+2"/>
|
||||||
|
<source>Your login name. A mxid should start with @ followed by the user id. After the user id you need to include your server name after a :.
|
||||||
|
You can also put your homeserver address there, if your server doesn't support .well-known lookup.
|
||||||
|
Example: @user:server.my
|
||||||
|
If Nheko fails to discover your homeserver, it will show you a field to enter the server manually.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+21"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Κωδικός</translation>
|
<translation>Κωδικός</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+5"/>
|
||||||
<source>Device name</source>
|
<source>Device name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+19"/>
|
<location line="+2"/>
|
||||||
|
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+6"/>
|
||||||
|
<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="+16"/>
|
||||||
|
<location line="+185"/>
|
||||||
<source>LOGIN</source>
|
<source>LOGIN</source>
|
||||||
<translation>ΕΙΣΟΔΟΣ</translation>
|
<translation>ΕΙΣΟΔΟΣ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+85"/>
|
<location line="-100"/>
|
||||||
<source>Autodiscovery failed. Received malformed response.</source>
|
<source>Autodiscovery failed. Received malformed response.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -289,7 +314,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+24"/>
|
<location line="+25"/>
|
||||||
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -304,10 +329,20 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+60"/>
|
<location line="+55"/>
|
||||||
|
<source>SSO LOGIN</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+25"/>
|
||||||
<source>Empty password</source>
|
<source>Empty password</source>
|
||||||
<translation>Κενός κωδικός</translation>
|
<translation>Κενός κωδικός</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+52"/>
|
||||||
|
<source>SSO login failed</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MemberList</name>
|
<name>MemberList</name>
|
||||||
|
@ -325,7 +360,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MessageDelegate</name>
|
<name>MessageDelegate</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/delegates/MessageDelegate.qml" line="+64"/>
|
<location filename="../qml/delegates/MessageDelegate.qml" line="+66"/>
|
||||||
<source>redacted</source>
|
<source>redacted</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -385,9 +420,19 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+3"/>
|
<location line="+3"/>
|
||||||
|
<source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+4"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Κωδικός</translation>
|
<translation>Κωδικός</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>Please choose a secure password. The exact requirements for password strength may depend on your server.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Password confirmation</source>
|
<source>Password confirmation</source>
|
||||||
|
@ -395,11 +440,16 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Home Server</source>
|
<source>Homeserver</source>
|
||||||
<translation>Διακομιστής</translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+16"/>
|
<location line="+2"/>
|
||||||
|
<source>A server that allows registration. Since matrix is decentralized, you need to first find a server you can register on or host your own.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+17"/>
|
||||||
<source>REGISTER</source>
|
<source>REGISTER</source>
|
||||||
<translation>ΕΓΓΡΑΦΗ</translation>
|
<translation>ΕΓΓΡΑΦΗ</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -548,7 +598,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineModel</name>
|
<name>TimelineModel</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/timeline/TimelineModel.cpp" line="+844"/>
|
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/>
|
||||||
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
||||||
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -597,12 +647,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-258"/>
|
<location line="+82"/>
|
||||||
<source>You joined this room</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+340"/>
|
|
||||||
<source>-- Encrypted Event (Unknown event type) --</source>
|
<source>-- Encrypted Event (Unknown event type) --</source>
|
||||||
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -722,7 +767,12 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+2"/>
|
<location line="-1278"/>
|
||||||
|
<source>You joined this room.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+1280"/>
|
||||||
<source>Rejected the knock from %1.</source>
|
<source>Rejected the knock from %1.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -746,7 +796,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineRow</name>
|
<name>TimelineRow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/TimelineRow.qml" line="+83"/>
|
<location filename="../qml/TimelineRow.qml" line="+84"/>
|
||||||
<source>React</source>
|
<source>React</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -809,7 +859,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+254"/>
|
<location line="+256"/>
|
||||||
<source>Close</source>
|
<source>Close</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
BIN
resources/langs/nheko_en.qm
Normal file
BIN
resources/langs/nheko_en.qm
Normal file
Binary file not shown.
|
@ -5,8 +5,8 @@
|
||||||
<name>Cache</name>
|
<name>Cache</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/Cache.cpp" line="+1341"/>
|
<location filename="../../src/Cache.cpp" line="+1341"/>
|
||||||
<source>You joined this room</source>
|
<source>You joined this room.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>You joined this room.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -18,12 +18,22 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<location line="+894"/>
|
<location line="+898"/>
|
||||||
<source>Invited user: %1</source>
|
<source>Invited user: %1</source>
|
||||||
<translation>Invited user: %1</translation>
|
<translation>Invited user: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-5"/>
|
<location line="-463"/>
|
||||||
|
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
|
||||||
|
<translation>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+428"/>
|
||||||
|
<source>Room %1 created.</source>
|
||||||
|
<translation>Room %1 created.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+30"/>
|
||||||
<source>Failed to invite %1 to %2: %3</source>
|
<source>Failed to invite %1 to %2: %3</source>
|
||||||
<translation>Failed to invite %1 to %2: %3</translation>
|
<translation>Failed to invite %1 to %2: %3</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -58,29 +68,24 @@
|
||||||
<translation>Unbanned user: %1</translation>
|
<translation>Unbanned user: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-819"/>
|
<location line="-823"/>
|
||||||
<source>Failed to upload media. Please try again.</source>
|
<source>Failed to upload media. Please try again.</source>
|
||||||
<translation>Failed to upload media. Please try again.</translation>
|
<translation>Failed to upload media. Please try again.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+302"/>
|
<location line="+302"/>
|
||||||
<source>Cache migration failed!</source>
|
<source>Cache migration failed!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Cache migration failed!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+1"/>
|
<location line="+13"/>
|
||||||
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+12"/>
|
|
||||||
<source>Incompatible cache version</source>
|
<source>Incompatible cache version</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Incompatible cache version</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+1"/>
|
<location line="+1"/>
|
||||||
<source>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</source>
|
<source>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+111"/>
|
<location line="+111"/>
|
||||||
|
@ -99,7 +104,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+51"/>
|
<location line="+51"/>
|
||||||
<location line="+215"/>
|
<location line="+219"/>
|
||||||
<source>Please try to login again: %1</source>
|
<source>Please try to login again: %1</source>
|
||||||
<translation>Please try to login again: %1</translation>
|
<translation>Please try to login again: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -124,12 +129,7 @@
|
||||||
<translation>Room creation failed: %1</translation>
|
<translation>Room creation failed: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+5"/>
|
<location line="+16"/>
|
||||||
<source>Room %1 created</source>
|
|
||||||
<translation>Room %1 created.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+11"/>
|
|
||||||
<source>Failed to leave room: %1</source>
|
<source>Failed to leave room: %1</source>
|
||||||
<translation>Failed to leave room: %1</translation>
|
<translation>Failed to leave room: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -238,10 +238,15 @@
|
||||||
<context>
|
<context>
|
||||||
<name>EncryptionIndicator</name>
|
<name>EncryptionIndicator</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/EncryptionIndicator.qml" line="+12"/>
|
<location filename="../qml/EncryptionIndicator.qml" line="+36"/>
|
||||||
<source>Encrypted</source>
|
<source>Encrypted</source>
|
||||||
<translation>Encrypted</translation>
|
<translation>Encrypted</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>This message is not encrypted!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>InviteeItem</name>
|
<name>InviteeItem</name>
|
||||||
|
@ -254,7 +259,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LoginPage</name>
|
<name>LoginPage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/LoginPage.cpp" line="+82"/>
|
<location filename="../../src/LoginPage.cpp" line="+89"/>
|
||||||
<source>Matrix ID</source>
|
<source>Matrix ID</source>
|
||||||
<translation>Matrix ID</translation>
|
<translation>Matrix ID</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -264,22 +269,46 @@
|
||||||
<translation>e.g @joe:matrix.org</translation>
|
<translation>e.g @joe:matrix.org</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+15"/>
|
<location line="+2"/>
|
||||||
|
<source>Your login name. A mxid should start with @ followed by the user id. After the user id you need to include your server name after a :.
|
||||||
|
You can also put your homeserver address there, if your server doesn't support .well-known lookup.
|
||||||
|
Example: @user:server.my
|
||||||
|
If Nheko fails to discover your homeserver, it will show you a field to enter the server manually.</source>
|
||||||
|
<translation>Your login name. A mxid should start with @ followed by the user id. After the user id you need to include your server name after a :.
|
||||||
|
You can also put your homeserver address there, if your server doesn't support .well-known lookup.
|
||||||
|
Example: @user:server.my
|
||||||
|
If Nheko fails to discover your homeserver, it will show you a field to enter the server manually.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+21"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Password</translation>
|
<translation>Password</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+5"/>
|
||||||
<source>Device name</source>
|
<source>Device name</source>
|
||||||
<translation>Device name</translation>
|
<translation>Device name</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+19"/>
|
<location line="+2"/>
|
||||||
|
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source>
|
||||||
|
<translation>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+6"/>
|
||||||
|
<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.
|
||||||
|
Example: https://server.my:8787</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+16"/>
|
||||||
|
<location line="+185"/>
|
||||||
<source>LOGIN</source>
|
<source>LOGIN</source>
|
||||||
<translation>LOGIN</translation>
|
<translation>LOGIN</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+85"/>
|
<location line="-100"/>
|
||||||
<source>Autodiscovery failed. Received malformed response.</source>
|
<source>Autodiscovery failed. Received malformed response.</source>
|
||||||
<translation>Autodiscovery failed. Received malformed response.</translation>
|
<translation>Autodiscovery failed. Received malformed response.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -289,7 +318,7 @@
|
||||||
<translation>Autodiscovery failed. Unknown error while requesting .well-known.</translation>
|
<translation>Autodiscovery failed. Unknown error while requesting .well-known.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+24"/>
|
<location line="+25"/>
|
||||||
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
||||||
<translation>The required endpoints were not found. Possibly not a Matrix server.</translation>
|
<translation>The required endpoints were not found. Possibly not a Matrix server.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -304,10 +333,20 @@
|
||||||
<translation>An unknown error occured. Make sure the homeserver domain is valid.</translation>
|
<translation>An unknown error occured. Make sure the homeserver domain is valid.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+60"/>
|
<location line="+55"/>
|
||||||
|
<source>SSO LOGIN</source>
|
||||||
|
<translation>SSO LOGIN</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+25"/>
|
||||||
<source>Empty password</source>
|
<source>Empty password</source>
|
||||||
<translation>Empty password</translation>
|
<translation>Empty password</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+52"/>
|
||||||
|
<source>SSO login failed</source>
|
||||||
|
<translation>SSO login failed</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MemberList</name>
|
<name>MemberList</name>
|
||||||
|
@ -325,7 +364,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MessageDelegate</name>
|
<name>MessageDelegate</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/delegates/MessageDelegate.qml" line="+64"/>
|
<location filename="../qml/delegates/MessageDelegate.qml" line="+66"/>
|
||||||
<source>redacted</source>
|
<source>redacted</source>
|
||||||
<translation>redacted</translation>
|
<translation>redacted</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -385,9 +424,19 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+3"/>
|
<location line="+3"/>
|
||||||
|
<source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
|
||||||
|
<translation>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+4"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Password</translation>
|
<translation>Password</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>Please choose a secure password. The exact requirements for password strength may depend on your server.</source>
|
||||||
|
<translation>Please choose a secure password. The exact requirements for password strength may depend on your server.</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Password confirmation</source>
|
<source>Password confirmation</source>
|
||||||
|
@ -395,11 +444,16 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Home Server</source>
|
<source>Homeserver</source>
|
||||||
<translation>Home Server</translation>
|
<translation>Homeserver</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+16"/>
|
<location line="+2"/>
|
||||||
|
<source>A server that allows registration. Since matrix is decentralized, you need to first find a server you can register on or host your own.</source>
|
||||||
|
<translation>A server that allows registration. Since matrix is decentralized, you need to first find a server you can register on or host your own.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+17"/>
|
||||||
<source>REGISTER</source>
|
<source>REGISTER</source>
|
||||||
<translation>REGISTER</translation>
|
<translation>REGISTER</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -548,7 +602,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineModel</name>
|
<name>TimelineModel</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/timeline/TimelineModel.cpp" line="+844"/>
|
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/>
|
||||||
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
||||||
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
||||||
<translation>-- Decryption Error (failed to communicate with DB) --</translation>
|
<translation>-- Decryption Error (failed to communicate with DB) --</translation>
|
||||||
|
@ -597,12 +651,7 @@
|
||||||
<translation>-- Encrypted Event (No keys found for decryption) --</translation>
|
<translation>-- Encrypted Event (No keys found for decryption) --</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-258"/>
|
<location line="+82"/>
|
||||||
<source>You joined this room</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+340"/>
|
|
||||||
<source>-- Encrypted Event (Unknown event type) --</source>
|
<source>-- Encrypted Event (Unknown event type) --</source>
|
||||||
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
||||||
<translation>-- Encrypted Event (Unknown event type) --</translation>
|
<translation>-- Encrypted Event (Unknown event type) --</translation>
|
||||||
|
@ -612,8 +661,8 @@
|
||||||
<source>%1 and %2 are typing.</source>
|
<source>%1 and %2 are typing.</source>
|
||||||
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
|
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
|
||||||
<translation>
|
<translation>
|
||||||
<numerusform>%1%2 is typing</numerusform>
|
<numerusform>%1%2 is typing.</numerusform>
|
||||||
<numerusform>%1 and %2 are typing</numerusform>
|
<numerusform>%1 and %2 are typing.</numerusform>
|
||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
@ -722,7 +771,12 @@
|
||||||
<translation>%1 redacted their knock.</translation>
|
<translation>%1 redacted their knock.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+2"/>
|
<location line="-1278"/>
|
||||||
|
<source>You joined this room.</source>
|
||||||
|
<translation>You joined this room.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+1280"/>
|
||||||
<source>Rejected the knock from %1.</source>
|
<source>Rejected the knock from %1.</source>
|
||||||
<translation>Rejected the knock from %1.</translation>
|
<translation>Rejected the knock from %1.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -746,7 +800,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineRow</name>
|
<name>TimelineRow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/TimelineRow.qml" line="+83"/>
|
<location filename="../qml/TimelineRow.qml" line="+84"/>
|
||||||
<source>React</source>
|
<source>React</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -791,7 +845,7 @@
|
||||||
<message>
|
<message>
|
||||||
<location line="+6"/>
|
<location line="+6"/>
|
||||||
<source>View decrypted raw message</source>
|
<source>View decrypted raw message</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>View decrypted raw message</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
|
@ -809,7 +863,7 @@
|
||||||
<translation>No room open</translation>
|
<translation>No room open</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+254"/>
|
<location line="+256"/>
|
||||||
<source>Close</source>
|
<source>Close</source>
|
||||||
<translation>Close</translation>
|
<translation>Close</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -893,7 +947,7 @@
|
||||||
<message>
|
<message>
|
||||||
<location line="+2"/>
|
<location line="+2"/>
|
||||||
<source>Decrypt messages in sidebar</source>
|
<source>Decrypt messages in sidebar</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Decrypt messages in sidebar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+1"/>
|
<location line="+1"/>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<name>Cache</name>
|
<name>Cache</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/Cache.cpp" line="+1341"/>
|
<location filename="../../src/Cache.cpp" line="+1341"/>
|
||||||
<source>You joined this room</source>
|
<source>You joined this room.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -18,12 +18,22 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<location line="+894"/>
|
<location line="+898"/>
|
||||||
<source>Invited user: %1</source>
|
<source>Invited user: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-5"/>
|
<location line="-463"/>
|
||||||
|
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+428"/>
|
||||||
|
<source>Room %1 created.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+30"/>
|
||||||
<source>Failed to invite %1 to %2: %3</source>
|
<source>Failed to invite %1 to %2: %3</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -58,7 +68,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-819"/>
|
<location line="-823"/>
|
||||||
<source>Failed to upload media. Please try again.</source>
|
<source>Failed to upload media. Please try again.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -68,12 +78,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+1"/>
|
<location line="+13"/>
|
||||||
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+12"/>
|
|
||||||
<source>Incompatible cache version</source>
|
<source>Incompatible cache version</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -99,7 +104,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+51"/>
|
<location line="+51"/>
|
||||||
<location line="+215"/>
|
<location line="+219"/>
|
||||||
<source>Please try to login again: %1</source>
|
<source>Please try to login again: %1</source>
|
||||||
<translation>Ole hyvä ja yritä kirjautua sisään uudelleen: %1</translation>
|
<translation>Ole hyvä ja yritä kirjautua sisään uudelleen: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -124,12 +129,7 @@
|
||||||
<translation>Huoneen luominen epäonnistui: %1</translation>
|
<translation>Huoneen luominen epäonnistui: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+5"/>
|
<location line="+16"/>
|
||||||
<source>Room %1 created</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+11"/>
|
|
||||||
<source>Failed to leave room: %1</source>
|
<source>Failed to leave room: %1</source>
|
||||||
<translation>Huoneesta poistuminen epäonnistui: %1</translation>
|
<translation>Huoneesta poistuminen epäonnistui: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -238,10 +238,15 @@
|
||||||
<context>
|
<context>
|
||||||
<name>EncryptionIndicator</name>
|
<name>EncryptionIndicator</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/EncryptionIndicator.qml" line="+12"/>
|
<location filename="../qml/EncryptionIndicator.qml" line="+36"/>
|
||||||
<source>Encrypted</source>
|
<source>Encrypted</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>This message is not encrypted!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>InviteeItem</name>
|
<name>InviteeItem</name>
|
||||||
|
@ -254,7 +259,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LoginPage</name>
|
<name>LoginPage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/LoginPage.cpp" line="+82"/>
|
<location filename="../../src/LoginPage.cpp" line="+89"/>
|
||||||
<source>Matrix ID</source>
|
<source>Matrix ID</source>
|
||||||
<translation>Matrix-tunnus</translation>
|
<translation>Matrix-tunnus</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -264,22 +269,42 @@
|
||||||
<translation>esim. @joe:matrix.org</translation>
|
<translation>esim. @joe:matrix.org</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+15"/>
|
<location line="+2"/>
|
||||||
|
<source>Your login name. A mxid should start with @ followed by the user id. After the user id you need to include your server name after a :.
|
||||||
|
You can also put your homeserver address there, if your server doesn't support .well-known lookup.
|
||||||
|
Example: @user:server.my
|
||||||
|
If Nheko fails to discover your homeserver, it will show you a field to enter the server manually.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+21"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Salasana</translation>
|
<translation>Salasana</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+5"/>
|
||||||
<source>Device name</source>
|
<source>Device name</source>
|
||||||
<translation>Laitteen nimi</translation>
|
<translation>Laitteen nimi</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+19"/>
|
<location line="+2"/>
|
||||||
|
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+6"/>
|
||||||
|
<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="+16"/>
|
||||||
|
<location line="+185"/>
|
||||||
<source>LOGIN</source>
|
<source>LOGIN</source>
|
||||||
<translation>KIRJAUDU</translation>
|
<translation>KIRJAUDU</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+85"/>
|
<location line="-100"/>
|
||||||
<source>Autodiscovery failed. Received malformed response.</source>
|
<source>Autodiscovery failed. Received malformed response.</source>
|
||||||
<translation>Palvelimen tietojen hakeminen epäonnistui: virheellinen vastaus.</translation>
|
<translation>Palvelimen tietojen hakeminen epäonnistui: virheellinen vastaus.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -289,7 +314,7 @@
|
||||||
<translation>Palvelimen tietojen hakeminen epäonnistui: tuntematon virhe hakiessa .well-known -tiedostoa.</translation>
|
<translation>Palvelimen tietojen hakeminen epäonnistui: tuntematon virhe hakiessa .well-known -tiedostoa.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+24"/>
|
<location line="+25"/>
|
||||||
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
||||||
<translation>Vaadittuja päätepisteitä ei löydetty. Mahdollisesti ei Matrix-palvelin.</translation>
|
<translation>Vaadittuja päätepisteitä ei löydetty. Mahdollisesti ei Matrix-palvelin.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -304,10 +329,20 @@
|
||||||
<translation>Tapahtui tuntematon virhe. Varmista, että kotipalvelimen osoite on pätevä.</translation>
|
<translation>Tapahtui tuntematon virhe. Varmista, että kotipalvelimen osoite on pätevä.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+60"/>
|
<location line="+55"/>
|
||||||
|
<source>SSO LOGIN</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+25"/>
|
||||||
<source>Empty password</source>
|
<source>Empty password</source>
|
||||||
<translation>Tyhjä salasana</translation>
|
<translation>Tyhjä salasana</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+52"/>
|
||||||
|
<source>SSO login failed</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MemberList</name>
|
<name>MemberList</name>
|
||||||
|
@ -325,7 +360,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MessageDelegate</name>
|
<name>MessageDelegate</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/delegates/MessageDelegate.qml" line="+64"/>
|
<location filename="../qml/delegates/MessageDelegate.qml" line="+66"/>
|
||||||
<source>redacted</source>
|
<source>redacted</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -385,9 +420,19 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+3"/>
|
<location line="+3"/>
|
||||||
|
<source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+4"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Salasana</translation>
|
<translation>Salasana</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>Please choose a secure password. The exact requirements for password strength may depend on your server.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Password confirmation</source>
|
<source>Password confirmation</source>
|
||||||
|
@ -395,11 +440,16 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Home Server</source>
|
<source>Homeserver</source>
|
||||||
<translation>Kotipalvelin</translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+16"/>
|
<location line="+2"/>
|
||||||
|
<source>A server that allows registration. Since matrix is decentralized, you need to first find a server you can register on or host your own.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+17"/>
|
||||||
<source>REGISTER</source>
|
<source>REGISTER</source>
|
||||||
<translation>REKISTERÖIDY</translation>
|
<translation>REKISTERÖIDY</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -548,7 +598,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineModel</name>
|
<name>TimelineModel</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/timeline/TimelineModel.cpp" line="+844"/>
|
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/>
|
||||||
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
||||||
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
||||||
<translation type="unfinished">-- Virhe purkaessa salausta (tietokannan kanssa kommunikointi epäonnistui) --</translation>
|
<translation type="unfinished">-- Virhe purkaessa salausta (tietokannan kanssa kommunikointi epäonnistui) --</translation>
|
||||||
|
@ -597,12 +647,7 @@
|
||||||
<translation type="unfinished">-- Salattu viesti (salauksen purkuavaimia ei löydetty) --</translation>
|
<translation type="unfinished">-- Salattu viesti (salauksen purkuavaimia ei löydetty) --</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-258"/>
|
<location line="+82"/>
|
||||||
<source>You joined this room</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+340"/>
|
|
||||||
<source>-- Encrypted Event (Unknown event type) --</source>
|
<source>-- Encrypted Event (Unknown event type) --</source>
|
||||||
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
||||||
<translation type="unfinished">-- Salattu viesti (tuntematon viestityyppi) --</translation>
|
<translation type="unfinished">-- Salattu viesti (tuntematon viestityyppi) --</translation>
|
||||||
|
@ -722,7 +767,12 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+2"/>
|
<location line="-1278"/>
|
||||||
|
<source>You joined this room.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+1280"/>
|
||||||
<source>Rejected the knock from %1.</source>
|
<source>Rejected the knock from %1.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -746,7 +796,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineRow</name>
|
<name>TimelineRow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/TimelineRow.qml" line="+83"/>
|
<location filename="../qml/TimelineRow.qml" line="+84"/>
|
||||||
<source>React</source>
|
<source>React</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -809,7 +859,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+254"/>
|
<location line="+256"/>
|
||||||
<source>Close</source>
|
<source>Close</source>
|
||||||
<translation type="unfinished">Sulje</translation>
|
<translation type="unfinished">Sulje</translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<name>Cache</name>
|
<name>Cache</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/Cache.cpp" line="+1341"/>
|
<location filename="../../src/Cache.cpp" line="+1341"/>
|
||||||
<source>You joined this room</source>
|
<source>You joined this room.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -18,12 +18,22 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<location line="+894"/>
|
<location line="+898"/>
|
||||||
<source>Invited user: %1</source>
|
<source>Invited user: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-5"/>
|
<location line="-463"/>
|
||||||
|
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+428"/>
|
||||||
|
<source>Room %1 created.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+30"/>
|
||||||
<source>Failed to invite %1 to %2: %3</source>
|
<source>Failed to invite %1 to %2: %3</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -58,7 +68,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-819"/>
|
<location line="-823"/>
|
||||||
<source>Failed to upload media. Please try again.</source>
|
<source>Failed to upload media. Please try again.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -68,12 +78,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+1"/>
|
<location line="+13"/>
|
||||||
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+12"/>
|
|
||||||
<source>Incompatible cache version</source>
|
<source>Incompatible cache version</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -99,7 +104,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+51"/>
|
<location line="+51"/>
|
||||||
<location line="+215"/>
|
<location line="+219"/>
|
||||||
<source>Please try to login again: %1</source>
|
<source>Please try to login again: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -124,12 +129,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+5"/>
|
<location line="+16"/>
|
||||||
<source>Room %1 created</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+11"/>
|
|
||||||
<source>Failed to leave room: %1</source>
|
<source>Failed to leave room: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -238,10 +238,15 @@
|
||||||
<context>
|
<context>
|
||||||
<name>EncryptionIndicator</name>
|
<name>EncryptionIndicator</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/EncryptionIndicator.qml" line="+12"/>
|
<location filename="../qml/EncryptionIndicator.qml" line="+36"/>
|
||||||
<source>Encrypted</source>
|
<source>Encrypted</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>This message is not encrypted!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>InviteeItem</name>
|
<name>InviteeItem</name>
|
||||||
|
@ -254,7 +259,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LoginPage</name>
|
<name>LoginPage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/LoginPage.cpp" line="+82"/>
|
<location filename="../../src/LoginPage.cpp" line="+89"/>
|
||||||
<source>Matrix ID</source>
|
<source>Matrix ID</source>
|
||||||
<translation>Identifiant Matrix</translation>
|
<translation>Identifiant Matrix</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -264,22 +269,42 @@
|
||||||
<translation>ex : @joe:matrix.org</translation>
|
<translation>ex : @joe:matrix.org</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+15"/>
|
<location line="+2"/>
|
||||||
|
<source>Your login name. A mxid should start with @ followed by the user id. After the user id you need to include your server name after a :.
|
||||||
|
You can also put your homeserver address there, if your server doesn't support .well-known lookup.
|
||||||
|
Example: @user:server.my
|
||||||
|
If Nheko fails to discover your homeserver, it will show you a field to enter the server manually.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+21"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Mot de passe</translation>
|
<translation>Mot de passe</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+5"/>
|
||||||
<source>Device name</source>
|
<source>Device name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+19"/>
|
<location line="+2"/>
|
||||||
|
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+6"/>
|
||||||
|
<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="+16"/>
|
||||||
|
<location line="+185"/>
|
||||||
<source>LOGIN</source>
|
<source>LOGIN</source>
|
||||||
<translation>CONNEXION</translation>
|
<translation>CONNEXION</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+85"/>
|
<location line="-100"/>
|
||||||
<source>Autodiscovery failed. Received malformed response.</source>
|
<source>Autodiscovery failed. Received malformed response.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -289,7 +314,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+24"/>
|
<location line="+25"/>
|
||||||
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -304,10 +329,20 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+60"/>
|
<location line="+55"/>
|
||||||
|
<source>SSO LOGIN</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+25"/>
|
||||||
<source>Empty password</source>
|
<source>Empty password</source>
|
||||||
<translation>Mot de passe vide</translation>
|
<translation>Mot de passe vide</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+52"/>
|
||||||
|
<source>SSO login failed</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MemberList</name>
|
<name>MemberList</name>
|
||||||
|
@ -325,7 +360,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MessageDelegate</name>
|
<name>MessageDelegate</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/delegates/MessageDelegate.qml" line="+64"/>
|
<location filename="../qml/delegates/MessageDelegate.qml" line="+66"/>
|
||||||
<source>redacted</source>
|
<source>redacted</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -385,9 +420,19 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+3"/>
|
<location line="+3"/>
|
||||||
|
<source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+4"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Mot de passe</translation>
|
<translation>Mot de passe</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>Please choose a secure password. The exact requirements for password strength may depend on your server.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Password confirmation</source>
|
<source>Password confirmation</source>
|
||||||
|
@ -395,12 +440,16 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Home Server</source>
|
<source>Homeserver</source>
|
||||||
<translatorcomment>À affiner...</translatorcomment>
|
<translation type="unfinished"></translation>
|
||||||
<translation>Serveur Matrix</translation>
|
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+16"/>
|
<location line="+2"/>
|
||||||
|
<source>A server that allows registration. Since matrix is decentralized, you need to first find a server you can register on or host your own.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+17"/>
|
||||||
<source>REGISTER</source>
|
<source>REGISTER</source>
|
||||||
<translation>S'ENREGISTRER</translation>
|
<translation>S'ENREGISTRER</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -549,7 +598,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineModel</name>
|
<name>TimelineModel</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/timeline/TimelineModel.cpp" line="+844"/>
|
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/>
|
||||||
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
||||||
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -598,12 +647,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-258"/>
|
<location line="+82"/>
|
||||||
<source>You joined this room</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+340"/>
|
|
||||||
<source>-- Encrypted Event (Unknown event type) --</source>
|
<source>-- Encrypted Event (Unknown event type) --</source>
|
||||||
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -723,7 +767,12 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+2"/>
|
<location line="-1278"/>
|
||||||
|
<source>You joined this room.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+1280"/>
|
||||||
<source>Rejected the knock from %1.</source>
|
<source>Rejected the knock from %1.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -747,7 +796,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineRow</name>
|
<name>TimelineRow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/TimelineRow.qml" line="+83"/>
|
<location filename="../qml/TimelineRow.qml" line="+84"/>
|
||||||
<source>React</source>
|
<source>React</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -810,7 +859,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+254"/>
|
<location line="+256"/>
|
||||||
<source>Close</source>
|
<source>Close</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<name>Cache</name>
|
<name>Cache</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/Cache.cpp" line="+1341"/>
|
<location filename="../../src/Cache.cpp" line="+1341"/>
|
||||||
<source>You joined this room</source>
|
<source>You joined this room.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -18,12 +18,22 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<location line="+894"/>
|
<location line="+898"/>
|
||||||
<source>Invited user: %1</source>
|
<source>Invited user: %1</source>
|
||||||
<translation>招待されたユーザー: %1</translation>
|
<translation>招待されたユーザー: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-5"/>
|
<location line="-463"/>
|
||||||
|
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+428"/>
|
||||||
|
<source>Room %1 created.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+30"/>
|
||||||
<source>Failed to invite %1 to %2: %3</source>
|
<source>Failed to invite %1 to %2: %3</source>
|
||||||
<translation>%2に%1を招待できませんでした: %3</translation>
|
<translation>%2に%1を招待できませんでした: %3</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -58,7 +68,7 @@
|
||||||
<translation>永久追放を解除されたユーザー: %1</translation>
|
<translation>永久追放を解除されたユーザー: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-819"/>
|
<location line="-823"/>
|
||||||
<source>Failed to upload media. Please try again.</source>
|
<source>Failed to upload media. Please try again.</source>
|
||||||
<translation>メディアをアップロードできませんでした。やり直して下さい。</translation>
|
<translation>メディアをアップロードできませんでした。やり直して下さい。</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -68,12 +78,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+1"/>
|
<location line="+13"/>
|
||||||
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+12"/>
|
|
||||||
<source>Incompatible cache version</source>
|
<source>Incompatible cache version</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -99,7 +104,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+51"/>
|
<location line="+51"/>
|
||||||
<location line="+215"/>
|
<location line="+219"/>
|
||||||
<source>Please try to login again: %1</source>
|
<source>Please try to login again: %1</source>
|
||||||
<translation>もう一度ログインしてみて下さい: %1</translation>
|
<translation>もう一度ログインしてみて下さい: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -124,12 +129,7 @@
|
||||||
<translation>部屋を作成できませんでした: %1</translation>
|
<translation>部屋を作成できませんでした: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+5"/>
|
<location line="+16"/>
|
||||||
<source>Room %1 created</source>
|
|
||||||
<translation>部屋 %1 を作成しました</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+11"/>
|
|
||||||
<source>Failed to leave room: %1</source>
|
<source>Failed to leave room: %1</source>
|
||||||
<translation>部屋から出られませんでした: %1</translation>
|
<translation>部屋から出られませんでした: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -238,10 +238,15 @@
|
||||||
<context>
|
<context>
|
||||||
<name>EncryptionIndicator</name>
|
<name>EncryptionIndicator</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/EncryptionIndicator.qml" line="+12"/>
|
<location filename="../qml/EncryptionIndicator.qml" line="+36"/>
|
||||||
<source>Encrypted</source>
|
<source>Encrypted</source>
|
||||||
<translation>暗号化されています</translation>
|
<translation>暗号化されています</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>This message is not encrypted!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>InviteeItem</name>
|
<name>InviteeItem</name>
|
||||||
|
@ -254,7 +259,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LoginPage</name>
|
<name>LoginPage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/LoginPage.cpp" line="+82"/>
|
<location filename="../../src/LoginPage.cpp" line="+89"/>
|
||||||
<source>Matrix ID</source>
|
<source>Matrix ID</source>
|
||||||
<translation>Matrix ID</translation>
|
<translation>Matrix ID</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -264,22 +269,42 @@
|
||||||
<translation>例 @joe:matrix.org</translation>
|
<translation>例 @joe:matrix.org</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+15"/>
|
<location line="+2"/>
|
||||||
|
<source>Your login name. A mxid should start with @ followed by the user id. After the user id you need to include your server name after a :.
|
||||||
|
You can also put your homeserver address there, if your server doesn't support .well-known lookup.
|
||||||
|
Example: @user:server.my
|
||||||
|
If Nheko fails to discover your homeserver, it will show you a field to enter the server manually.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+21"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>パスワード</translation>
|
<translation>パスワード</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+5"/>
|
||||||
<source>Device name</source>
|
<source>Device name</source>
|
||||||
<translation>デバイス名</translation>
|
<translation>デバイス名</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+19"/>
|
<location line="+2"/>
|
||||||
|
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+6"/>
|
||||||
|
<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="+16"/>
|
||||||
|
<location line="+185"/>
|
||||||
<source>LOGIN</source>
|
<source>LOGIN</source>
|
||||||
<translation>ログイン</translation>
|
<translation>ログイン</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+85"/>
|
<location line="-100"/>
|
||||||
<source>Autodiscovery failed. Received malformed response.</source>
|
<source>Autodiscovery failed. Received malformed response.</source>
|
||||||
<translation>自動検出できませんでした。不正な形式の応答を受信しました。</translation>
|
<translation>自動検出できませんでした。不正な形式の応答を受信しました。</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -289,7 +314,7 @@
|
||||||
<translation>自動検出できませんでした。.well-known要求時の不明なエラー。</translation>
|
<translation>自動検出できませんでした。.well-known要求時の不明なエラー。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+24"/>
|
<location line="+25"/>
|
||||||
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
||||||
<translation>必要な端点が見つかりません。Matrixサーバーではないかもしれません。</translation>
|
<translation>必要な端点が見つかりません。Matrixサーバーではないかもしれません。</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -304,10 +329,20 @@
|
||||||
<translation>不明なエラーが発生しました。ホームサーバーのドメイン名が有効であるかを確認して下さい。</translation>
|
<translation>不明なエラーが発生しました。ホームサーバーのドメイン名が有効であるかを確認して下さい。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+60"/>
|
<location line="+55"/>
|
||||||
|
<source>SSO LOGIN</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+25"/>
|
||||||
<source>Empty password</source>
|
<source>Empty password</source>
|
||||||
<translation>パスワードが入力されていません</translation>
|
<translation>パスワードが入力されていません</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+52"/>
|
||||||
|
<source>SSO login failed</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MemberList</name>
|
<name>MemberList</name>
|
||||||
|
@ -325,7 +360,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MessageDelegate</name>
|
<name>MessageDelegate</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/delegates/MessageDelegate.qml" line="+64"/>
|
<location filename="../qml/delegates/MessageDelegate.qml" line="+66"/>
|
||||||
<source>redacted</source>
|
<source>redacted</source>
|
||||||
<translation>編集済み</translation>
|
<translation>編集済み</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -385,9 +420,19 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+3"/>
|
<location line="+3"/>
|
||||||
|
<source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+4"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>パスワード</translation>
|
<translation>パスワード</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>Please choose a secure password. The exact requirements for password strength may depend on your server.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Password confirmation</source>
|
<source>Password confirmation</source>
|
||||||
|
@ -395,11 +440,16 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Home Server</source>
|
<source>Homeserver</source>
|
||||||
<translation>ホームサーバー</translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+16"/>
|
<location line="+2"/>
|
||||||
|
<source>A server that allows registration. Since matrix is decentralized, you need to first find a server you can register on or host your own.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+17"/>
|
||||||
<source>REGISTER</source>
|
<source>REGISTER</source>
|
||||||
<translation>登録</translation>
|
<translation>登録</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -548,7 +598,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineModel</name>
|
<name>TimelineModel</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/timeline/TimelineModel.cpp" line="+844"/>
|
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/>
|
||||||
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
||||||
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
||||||
<translation>-- 復号エラー (データベースと通信できませんでした) --</translation>
|
<translation>-- 復号エラー (データベースと通信できませんでした) --</translation>
|
||||||
|
@ -597,12 +647,7 @@
|
||||||
<translation type="unfinished">-- 暗号化イベント (復号鍵が見つかりません) --</translation>
|
<translation type="unfinished">-- 暗号化イベント (復号鍵が見つかりません) --</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-258"/>
|
<location line="+82"/>
|
||||||
<source>You joined this room</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+340"/>
|
|
||||||
<source>-- Encrypted Event (Unknown event type) --</source>
|
<source>-- Encrypted Event (Unknown event type) --</source>
|
||||||
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
||||||
<translation type="unfinished">-- 暗号化イベント (不明なイベント型です) --</translation>
|
<translation type="unfinished">-- 暗号化イベント (不明なイベント型です) --</translation>
|
||||||
|
@ -721,7 +766,12 @@
|
||||||
<translation>%1がノックを編集しました。</translation>
|
<translation>%1がノックを編集しました。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+2"/>
|
<location line="-1278"/>
|
||||||
|
<source>You joined this room.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+1280"/>
|
||||||
<source>Rejected the knock from %1.</source>
|
<source>Rejected the knock from %1.</source>
|
||||||
<translation>%1からのノックを拒否しました。</translation>
|
<translation>%1からのノックを拒否しました。</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -745,7 +795,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineRow</name>
|
<name>TimelineRow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/TimelineRow.qml" line="+83"/>
|
<location filename="../qml/TimelineRow.qml" line="+84"/>
|
||||||
<source>React</source>
|
<source>React</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -808,7 +858,7 @@
|
||||||
<translation>部屋が開いていません</translation>
|
<translation>部屋が開いていません</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+254"/>
|
<location line="+256"/>
|
||||||
<source>Close</source>
|
<source>Close</source>
|
||||||
<translation>閉じる</translation>
|
<translation>閉じる</translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<name>Cache</name>
|
<name>Cache</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/Cache.cpp" line="+1341"/>
|
<location filename="../../src/Cache.cpp" line="+1341"/>
|
||||||
<source>You joined this room</source>
|
<source>You joined this room.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -18,12 +18,22 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<location line="+894"/>
|
<location line="+898"/>
|
||||||
<source>Invited user: %1</source>
|
<source>Invited user: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-5"/>
|
<location line="-463"/>
|
||||||
|
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+428"/>
|
||||||
|
<source>Room %1 created.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+30"/>
|
||||||
<source>Failed to invite %1 to %2: %3</source>
|
<source>Failed to invite %1 to %2: %3</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -58,7 +68,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-819"/>
|
<location line="-823"/>
|
||||||
<source>Failed to upload media. Please try again.</source>
|
<source>Failed to upload media. Please try again.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -68,12 +78,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+1"/>
|
<location line="+13"/>
|
||||||
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+12"/>
|
|
||||||
<source>Incompatible cache version</source>
|
<source>Incompatible cache version</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -99,7 +104,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+51"/>
|
<location line="+51"/>
|
||||||
<location line="+215"/>
|
<location line="+219"/>
|
||||||
<source>Please try to login again: %1</source>
|
<source>Please try to login again: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -124,12 +129,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+5"/>
|
<location line="+16"/>
|
||||||
<source>Room %1 created</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+11"/>
|
|
||||||
<source>Failed to leave room: %1</source>
|
<source>Failed to leave room: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -238,10 +238,15 @@
|
||||||
<context>
|
<context>
|
||||||
<name>EncryptionIndicator</name>
|
<name>EncryptionIndicator</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/EncryptionIndicator.qml" line="+12"/>
|
<location filename="../qml/EncryptionIndicator.qml" line="+36"/>
|
||||||
<source>Encrypted</source>
|
<source>Encrypted</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>This message is not encrypted!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>InviteeItem</name>
|
<name>InviteeItem</name>
|
||||||
|
@ -254,7 +259,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LoginPage</name>
|
<name>LoginPage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/LoginPage.cpp" line="+82"/>
|
<location filename="../../src/LoginPage.cpp" line="+89"/>
|
||||||
<source>Matrix ID</source>
|
<source>Matrix ID</source>
|
||||||
<translation>Matrix-id</translation>
|
<translation>Matrix-id</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -264,22 +269,42 @@
|
||||||
<translation>b.v @jan:matrix.org<</translation>
|
<translation>b.v @jan:matrix.org<</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+15"/>
|
<location line="+2"/>
|
||||||
|
<source>Your login name. A mxid should start with @ followed by the user id. After the user id you need to include your server name after a :.
|
||||||
|
You can also put your homeserver address there, if your server doesn't support .well-known lookup.
|
||||||
|
Example: @user:server.my
|
||||||
|
If Nheko fails to discover your homeserver, it will show you a field to enter the server manually.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+21"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Wachtwoord</translation>
|
<translation>Wachtwoord</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+5"/>
|
||||||
<source>Device name</source>
|
<source>Device name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+19"/>
|
<location line="+2"/>
|
||||||
|
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+6"/>
|
||||||
|
<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="+16"/>
|
||||||
|
<location line="+185"/>
|
||||||
<source>LOGIN</source>
|
<source>LOGIN</source>
|
||||||
<translation>INLOGGEN</translation>
|
<translation>INLOGGEN</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+85"/>
|
<location line="-100"/>
|
||||||
<source>Autodiscovery failed. Received malformed response.</source>
|
<source>Autodiscovery failed. Received malformed response.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -289,7 +314,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+24"/>
|
<location line="+25"/>
|
||||||
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -304,10 +329,20 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+60"/>
|
<location line="+55"/>
|
||||||
|
<source>SSO LOGIN</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+25"/>
|
||||||
<source>Empty password</source>
|
<source>Empty password</source>
|
||||||
<translation>Leeg wachtwoord</translation>
|
<translation>Leeg wachtwoord</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+52"/>
|
||||||
|
<source>SSO login failed</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MemberList</name>
|
<name>MemberList</name>
|
||||||
|
@ -325,7 +360,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MessageDelegate</name>
|
<name>MessageDelegate</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/delegates/MessageDelegate.qml" line="+64"/>
|
<location filename="../qml/delegates/MessageDelegate.qml" line="+66"/>
|
||||||
<source>redacted</source>
|
<source>redacted</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -385,9 +420,19 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+3"/>
|
<location line="+3"/>
|
||||||
|
<source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+4"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Wachtwoord</translation>
|
<translation>Wachtwoord</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>Please choose a secure password. The exact requirements for password strength may depend on your server.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Password confirmation</source>
|
<source>Password confirmation</source>
|
||||||
|
@ -395,11 +440,16 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Home Server</source>
|
<source>Homeserver</source>
|
||||||
<translation>Thuisserver</translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+16"/>
|
<location line="+2"/>
|
||||||
|
<source>A server that allows registration. Since matrix is decentralized, you need to first find a server you can register on or host your own.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+17"/>
|
||||||
<source>REGISTER</source>
|
<source>REGISTER</source>
|
||||||
<translation>REGISTREREN</translation>
|
<translation>REGISTREREN</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -548,7 +598,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineModel</name>
|
<name>TimelineModel</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/timeline/TimelineModel.cpp" line="+844"/>
|
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/>
|
||||||
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
||||||
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -597,12 +647,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-258"/>
|
<location line="+82"/>
|
||||||
<source>You joined this room</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+340"/>
|
|
||||||
<source>-- Encrypted Event (Unknown event type) --</source>
|
<source>-- Encrypted Event (Unknown event type) --</source>
|
||||||
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -722,7 +767,12 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+2"/>
|
<location line="-1278"/>
|
||||||
|
<source>You joined this room.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+1280"/>
|
||||||
<source>Rejected the knock from %1.</source>
|
<source>Rejected the knock from %1.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -746,7 +796,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineRow</name>
|
<name>TimelineRow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/TimelineRow.qml" line="+83"/>
|
<location filename="../qml/TimelineRow.qml" line="+84"/>
|
||||||
<source>React</source>
|
<source>React</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -809,7 +859,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+254"/>
|
<location line="+256"/>
|
||||||
<source>Close</source>
|
<source>Close</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<name>Cache</name>
|
<name>Cache</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/Cache.cpp" line="+1341"/>
|
<location filename="../../src/Cache.cpp" line="+1341"/>
|
||||||
<source>You joined this room</source>
|
<source>You joined this room.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -18,12 +18,22 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<location line="+894"/>
|
<location line="+898"/>
|
||||||
<source>Invited user: %1</source>
|
<source>Invited user: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-5"/>
|
<location line="-463"/>
|
||||||
|
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+428"/>
|
||||||
|
<source>Room %1 created.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+30"/>
|
||||||
<source>Failed to invite %1 to %2: %3</source>
|
<source>Failed to invite %1 to %2: %3</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -58,7 +68,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-819"/>
|
<location line="-823"/>
|
||||||
<source>Failed to upload media. Please try again.</source>
|
<source>Failed to upload media. Please try again.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -68,12 +78,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+1"/>
|
<location line="+13"/>
|
||||||
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+12"/>
|
|
||||||
<source>Incompatible cache version</source>
|
<source>Incompatible cache version</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -99,7 +104,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+51"/>
|
<location line="+51"/>
|
||||||
<location line="+215"/>
|
<location line="+219"/>
|
||||||
<source>Please try to login again: %1</source>
|
<source>Please try to login again: %1</source>
|
||||||
<translation>Spróbuj zalogować się ponownie: %1</translation>
|
<translation>Spróbuj zalogować się ponownie: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -124,12 +129,7 @@
|
||||||
<translation>Tworzenie pokoju nie powiodło się: %1</translation>
|
<translation>Tworzenie pokoju nie powiodło się: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+5"/>
|
<location line="+16"/>
|
||||||
<source>Room %1 created</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+11"/>
|
|
||||||
<source>Failed to leave room: %1</source>
|
<source>Failed to leave room: %1</source>
|
||||||
<translation>Nie udało się opuścić pokoju: %1</translation>
|
<translation>Nie udało się opuścić pokoju: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -238,10 +238,15 @@
|
||||||
<context>
|
<context>
|
||||||
<name>EncryptionIndicator</name>
|
<name>EncryptionIndicator</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/EncryptionIndicator.qml" line="+12"/>
|
<location filename="../qml/EncryptionIndicator.qml" line="+36"/>
|
||||||
<source>Encrypted</source>
|
<source>Encrypted</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>This message is not encrypted!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>InviteeItem</name>
|
<name>InviteeItem</name>
|
||||||
|
@ -254,7 +259,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LoginPage</name>
|
<name>LoginPage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/LoginPage.cpp" line="+82"/>
|
<location filename="../../src/LoginPage.cpp" line="+89"/>
|
||||||
<source>Matrix ID</source>
|
<source>Matrix ID</source>
|
||||||
<translation>ID Matrixa</translation>
|
<translation>ID Matrixa</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -264,22 +269,42 @@
|
||||||
<translation>np. @joe:matrix.org</translation>
|
<translation>np. @joe:matrix.org</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+15"/>
|
<location line="+2"/>
|
||||||
|
<source>Your login name. A mxid should start with @ followed by the user id. After the user id you need to include your server name after a :.
|
||||||
|
You can also put your homeserver address there, if your server doesn't support .well-known lookup.
|
||||||
|
Example: @user:server.my
|
||||||
|
If Nheko fails to discover your homeserver, it will show you a field to enter the server manually.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+21"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Hasło</translation>
|
<translation>Hasło</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+5"/>
|
||||||
<source>Device name</source>
|
<source>Device name</source>
|
||||||
<translation>Nazwa urządzenia</translation>
|
<translation>Nazwa urządzenia</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+19"/>
|
<location line="+2"/>
|
||||||
|
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+6"/>
|
||||||
|
<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="+16"/>
|
||||||
|
<location line="+185"/>
|
||||||
<source>LOGIN</source>
|
<source>LOGIN</source>
|
||||||
<translation>ZALOGUJ</translation>
|
<translation>ZALOGUJ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+85"/>
|
<location line="-100"/>
|
||||||
<source>Autodiscovery failed. Received malformed response.</source>
|
<source>Autodiscovery failed. Received malformed response.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -289,7 +314,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+24"/>
|
<location line="+25"/>
|
||||||
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
||||||
<translation>Nie odnaleziono wymaganych punktów końcowych. To może nie być serwer Matriksa.</translation>
|
<translation>Nie odnaleziono wymaganych punktów końcowych. To może nie być serwer Matriksa.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -304,10 +329,20 @@
|
||||||
<translation>Wystąpił nieznany błąd. Upewnij się, że domena serwera domowego jest prawidłowa.</translation>
|
<translation>Wystąpił nieznany błąd. Upewnij się, że domena serwera domowego jest prawidłowa.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+60"/>
|
<location line="+55"/>
|
||||||
|
<source>SSO LOGIN</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+25"/>
|
||||||
<source>Empty password</source>
|
<source>Empty password</source>
|
||||||
<translation>Puste hasło</translation>
|
<translation>Puste hasło</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+52"/>
|
||||||
|
<source>SSO login failed</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MemberList</name>
|
<name>MemberList</name>
|
||||||
|
@ -325,7 +360,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MessageDelegate</name>
|
<name>MessageDelegate</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/delegates/MessageDelegate.qml" line="+64"/>
|
<location filename="../qml/delegates/MessageDelegate.qml" line="+66"/>
|
||||||
<source>redacted</source>
|
<source>redacted</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -385,9 +420,19 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+3"/>
|
<location line="+3"/>
|
||||||
|
<source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+4"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Hasło</translation>
|
<translation>Hasło</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>Please choose a secure password. The exact requirements for password strength may depend on your server.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Password confirmation</source>
|
<source>Password confirmation</source>
|
||||||
|
@ -395,11 +440,16 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Home Server</source>
|
<source>Homeserver</source>
|
||||||
<translation>Serwer domowy</translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+16"/>
|
<location line="+2"/>
|
||||||
|
<source>A server that allows registration. Since matrix is decentralized, you need to first find a server you can register on or host your own.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+17"/>
|
||||||
<source>REGISTER</source>
|
<source>REGISTER</source>
|
||||||
<translation>ZAREJESTRUJ</translation>
|
<translation>ZAREJESTRUJ</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -548,7 +598,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineModel</name>
|
<name>TimelineModel</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/timeline/TimelineModel.cpp" line="+844"/>
|
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/>
|
||||||
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
||||||
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -597,12 +647,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-258"/>
|
<location line="+82"/>
|
||||||
<source>You joined this room</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+340"/>
|
|
||||||
<source>-- Encrypted Event (Unknown event type) --</source>
|
<source>-- Encrypted Event (Unknown event type) --</source>
|
||||||
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -723,7 +768,12 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+2"/>
|
<location line="-1278"/>
|
||||||
|
<source>You joined this room.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+1280"/>
|
||||||
<source>Rejected the knock from %1.</source>
|
<source>Rejected the knock from %1.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -747,7 +797,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineRow</name>
|
<name>TimelineRow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/TimelineRow.qml" line="+83"/>
|
<location filename="../qml/TimelineRow.qml" line="+84"/>
|
||||||
<source>React</source>
|
<source>React</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -810,7 +860,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+254"/>
|
<location line="+256"/>
|
||||||
<source>Close</source>
|
<source>Close</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<name>Cache</name>
|
<name>Cache</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/Cache.cpp" line="+1341"/>
|
<location filename="../../src/Cache.cpp" line="+1341"/>
|
||||||
<source>You joined this room</source>
|
<source>You joined this room.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -18,12 +18,22 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<location line="+894"/>
|
<location line="+898"/>
|
||||||
<source>Invited user: %1</source>
|
<source>Invited user: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-5"/>
|
<location line="-463"/>
|
||||||
|
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+428"/>
|
||||||
|
<source>Room %1 created.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+30"/>
|
||||||
<source>Failed to invite %1 to %2: %3</source>
|
<source>Failed to invite %1 to %2: %3</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -58,7 +68,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-819"/>
|
<location line="-823"/>
|
||||||
<source>Failed to upload media. Please try again.</source>
|
<source>Failed to upload media. Please try again.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -68,12 +78,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+1"/>
|
<location line="+13"/>
|
||||||
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+12"/>
|
|
||||||
<source>Incompatible cache version</source>
|
<source>Incompatible cache version</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -99,7 +104,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+51"/>
|
<location line="+51"/>
|
||||||
<location line="+215"/>
|
<location line="+219"/>
|
||||||
<source>Please try to login again: %1</source>
|
<source>Please try to login again: %1</source>
|
||||||
<translation>Повторите попытку входа: %1</translation>
|
<translation>Повторите попытку входа: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -124,12 +129,7 @@
|
||||||
<translation>Не удалось создать комнату: %1</translation>
|
<translation>Не удалось создать комнату: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+5"/>
|
<location line="+16"/>
|
||||||
<source>Room %1 created</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+11"/>
|
|
||||||
<source>Failed to leave room: %1</source>
|
<source>Failed to leave room: %1</source>
|
||||||
<translation>Не удалось покинуть комнату: %1</translation>
|
<translation>Не удалось покинуть комнату: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -238,10 +238,15 @@
|
||||||
<context>
|
<context>
|
||||||
<name>EncryptionIndicator</name>
|
<name>EncryptionIndicator</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/EncryptionIndicator.qml" line="+12"/>
|
<location filename="../qml/EncryptionIndicator.qml" line="+36"/>
|
||||||
<source>Encrypted</source>
|
<source>Encrypted</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>This message is not encrypted!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>InviteeItem</name>
|
<name>InviteeItem</name>
|
||||||
|
@ -254,7 +259,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LoginPage</name>
|
<name>LoginPage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/LoginPage.cpp" line="+82"/>
|
<location filename="../../src/LoginPage.cpp" line="+89"/>
|
||||||
<source>Matrix ID</source>
|
<source>Matrix ID</source>
|
||||||
<translation>Идентификатор Matrix</translation>
|
<translation>Идентификатор Matrix</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -264,22 +269,42 @@
|
||||||
<translation>Пример: @joe:matrix.org</translation>
|
<translation>Пример: @joe:matrix.org</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+15"/>
|
<location line="+2"/>
|
||||||
|
<source>Your login name. A mxid should start with @ followed by the user id. After the user id you need to include your server name after a :.
|
||||||
|
You can also put your homeserver address there, if your server doesn't support .well-known lookup.
|
||||||
|
Example: @user:server.my
|
||||||
|
If Nheko fails to discover your homeserver, it will show you a field to enter the server manually.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+21"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Пароль</translation>
|
<translation>Пароль</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+5"/>
|
||||||
<source>Device name</source>
|
<source>Device name</source>
|
||||||
<translation>Имя устройства</translation>
|
<translation>Имя устройства</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+19"/>
|
<location line="+2"/>
|
||||||
|
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+6"/>
|
||||||
|
<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="+16"/>
|
||||||
|
<location line="+185"/>
|
||||||
<source>LOGIN</source>
|
<source>LOGIN</source>
|
||||||
<translation>ВОЙТИ</translation>
|
<translation>ВОЙТИ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+85"/>
|
<location line="-100"/>
|
||||||
<source>Autodiscovery failed. Received malformed response.</source>
|
<source>Autodiscovery failed. Received malformed response.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -289,7 +314,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+24"/>
|
<location line="+25"/>
|
||||||
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
||||||
<translation>Необходимые конечные точки не найдены. Возможно, это не сервер Matrix.</translation>
|
<translation>Необходимые конечные точки не найдены. Возможно, это не сервер Matrix.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -304,10 +329,20 @@
|
||||||
<translation>Произошла неизвестная ошибка. Убедитесь, что домен homeserver действителен.</translation>
|
<translation>Произошла неизвестная ошибка. Убедитесь, что домен homeserver действителен.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+60"/>
|
<location line="+55"/>
|
||||||
|
<source>SSO LOGIN</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+25"/>
|
||||||
<source>Empty password</source>
|
<source>Empty password</source>
|
||||||
<translation>Пустой пароль</translation>
|
<translation>Пустой пароль</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+52"/>
|
||||||
|
<source>SSO login failed</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MemberList</name>
|
<name>MemberList</name>
|
||||||
|
@ -325,7 +360,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MessageDelegate</name>
|
<name>MessageDelegate</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/delegates/MessageDelegate.qml" line="+64"/>
|
<location filename="../qml/delegates/MessageDelegate.qml" line="+66"/>
|
||||||
<source>redacted</source>
|
<source>redacted</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -385,9 +420,19 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+3"/>
|
<location line="+3"/>
|
||||||
|
<source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+4"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Пароль</translation>
|
<translation>Пароль</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>Please choose a secure password. The exact requirements for password strength may depend on your server.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Password confirmation</source>
|
<source>Password confirmation</source>
|
||||||
|
@ -395,11 +440,16 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Home Server</source>
|
<source>Homeserver</source>
|
||||||
<translation>Домашний сервер</translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+16"/>
|
<location line="+2"/>
|
||||||
|
<source>A server that allows registration. Since matrix is decentralized, you need to first find a server you can register on or host your own.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+17"/>
|
||||||
<source>REGISTER</source>
|
<source>REGISTER</source>
|
||||||
<translation>РЕГИСТРАЦИЯ</translation>
|
<translation>РЕГИСТРАЦИЯ</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -548,7 +598,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineModel</name>
|
<name>TimelineModel</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/timeline/TimelineModel.cpp" line="+844"/>
|
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/>
|
||||||
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
||||||
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -597,12 +647,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-258"/>
|
<location line="+82"/>
|
||||||
<source>You joined this room</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+340"/>
|
|
||||||
<source>-- Encrypted Event (Unknown event type) --</source>
|
<source>-- Encrypted Event (Unknown event type) --</source>
|
||||||
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -723,7 +768,12 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+2"/>
|
<location line="-1278"/>
|
||||||
|
<source>You joined this room.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+1280"/>
|
||||||
<source>Rejected the knock from %1.</source>
|
<source>Rejected the knock from %1.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -747,7 +797,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineRow</name>
|
<name>TimelineRow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/TimelineRow.qml" line="+83"/>
|
<location filename="../qml/TimelineRow.qml" line="+84"/>
|
||||||
<source>React</source>
|
<source>React</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -810,7 +860,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+254"/>
|
<location line="+256"/>
|
||||||
<source>Close</source>
|
<source>Close</source>
|
||||||
<translation type="unfinished">Закрыть</translation>
|
<translation type="unfinished">Закрыть</translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<name>Cache</name>
|
<name>Cache</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/Cache.cpp" line="+1341"/>
|
<location filename="../../src/Cache.cpp" line="+1341"/>
|
||||||
<source>You joined this room</source>
|
<source>You joined this room.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
@ -18,12 +18,22 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<location line="+894"/>
|
<location line="+898"/>
|
||||||
<source>Invited user: %1</source>
|
<source>Invited user: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-5"/>
|
<location line="-463"/>
|
||||||
|
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+428"/>
|
||||||
|
<source>Room %1 created.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+30"/>
|
||||||
<source>Failed to invite %1 to %2: %3</source>
|
<source>Failed to invite %1 to %2: %3</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -58,7 +68,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-819"/>
|
<location line="-823"/>
|
||||||
<source>Failed to upload media. Please try again.</source>
|
<source>Failed to upload media. Please try again.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -68,12 +78,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+1"/>
|
<location line="+13"/>
|
||||||
<source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+12"/>
|
|
||||||
<source>Incompatible cache version</source>
|
<source>Incompatible cache version</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -99,7 +104,7 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+51"/>
|
<location line="+51"/>
|
||||||
<location line="+215"/>
|
<location line="+219"/>
|
||||||
<source>Please try to login again: %1</source>
|
<source>Please try to login again: %1</source>
|
||||||
<translation>请尝试再次登录:%1</translation>
|
<translation>请尝试再次登录:%1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -124,12 +129,7 @@
|
||||||
<translation>创建聊天室失败:%1</translation>
|
<translation>创建聊天室失败:%1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+5"/>
|
<location line="+16"/>
|
||||||
<source>Room %1 created</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+11"/>
|
|
||||||
<source>Failed to leave room: %1</source>
|
<source>Failed to leave room: %1</source>
|
||||||
<translation>离开聊天室失败:%1</translation>
|
<translation>离开聊天室失败:%1</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -238,10 +238,15 @@
|
||||||
<context>
|
<context>
|
||||||
<name>EncryptionIndicator</name>
|
<name>EncryptionIndicator</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/EncryptionIndicator.qml" line="+12"/>
|
<location filename="../qml/EncryptionIndicator.qml" line="+36"/>
|
||||||
<source>Encrypted</source>
|
<source>Encrypted</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>This message is not encrypted!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>InviteeItem</name>
|
<name>InviteeItem</name>
|
||||||
|
@ -254,7 +259,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>LoginPage</name>
|
<name>LoginPage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/LoginPage.cpp" line="+82"/>
|
<location filename="../../src/LoginPage.cpp" line="+89"/>
|
||||||
<source>Matrix ID</source>
|
<source>Matrix ID</source>
|
||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -264,22 +269,42 @@
|
||||||
<translation>例如 @joe:matrix.org</translation>
|
<translation>例如 @joe:matrix.org</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+15"/>
|
<location line="+2"/>
|
||||||
|
<source>Your login name. A mxid should start with @ followed by the user id. After the user id you need to include your server name after a :.
|
||||||
|
You can also put your homeserver address there, if your server doesn't support .well-known lookup.
|
||||||
|
Example: @user:server.my
|
||||||
|
If Nheko fails to discover your homeserver, it will show you a field to enter the server manually.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+21"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>密码</translation>
|
<translation>密码</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+5"/>
|
||||||
<source>Device name</source>
|
<source>Device name</source>
|
||||||
<translation>设备名</translation>
|
<translation>设备名</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+19"/>
|
<location line="+2"/>
|
||||||
|
<source>A name for this device, which will be shown to others, when verifying your devices. If none is provided, a random string is used for privacy purposes.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+6"/>
|
||||||
|
<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="+16"/>
|
||||||
|
<location line="+185"/>
|
||||||
<source>LOGIN</source>
|
<source>LOGIN</source>
|
||||||
<translation>登录</translation>
|
<translation>登录</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+85"/>
|
<location line="-100"/>
|
||||||
<source>Autodiscovery failed. Received malformed response.</source>
|
<source>Autodiscovery failed. Received malformed response.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -289,7 +314,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+24"/>
|
<location line="+25"/>
|
||||||
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
<source>The required endpoints were not found. Possibly not a Matrix server.</source>
|
||||||
<translation>没找到要求的终端。可能不是一个 Matrix 服务器。</translation>
|
<translation>没找到要求的终端。可能不是一个 Matrix 服务器。</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -304,10 +329,20 @@
|
||||||
<translation>发生了一个未知错误。请确认服务器域名合法。</translation>
|
<translation>发生了一个未知错误。请确认服务器域名合法。</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+60"/>
|
<location line="+55"/>
|
||||||
|
<source>SSO LOGIN</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+25"/>
|
||||||
<source>Empty password</source>
|
<source>Empty password</source>
|
||||||
<translation>空密码</translation>
|
<translation>空密码</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+52"/>
|
||||||
|
<source>SSO login failed</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MemberList</name>
|
<name>MemberList</name>
|
||||||
|
@ -325,7 +360,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>MessageDelegate</name>
|
<name>MessageDelegate</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/delegates/MessageDelegate.qml" line="+64"/>
|
<location filename="../qml/delegates/MessageDelegate.qml" line="+66"/>
|
||||||
<source>redacted</source>
|
<source>redacted</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -385,9 +420,19 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+3"/>
|
<location line="+3"/>
|
||||||
|
<source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+4"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>密码</translation>
|
<translation>密码</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+2"/>
|
||||||
|
<source>Please choose a secure password. The exact requirements for password strength may depend on your server.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Password confirmation</source>
|
<source>Password confirmation</source>
|
||||||
|
@ -395,11 +440,16 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+4"/>
|
<location line="+4"/>
|
||||||
<source>Home Server</source>
|
<source>Homeserver</source>
|
||||||
<translation>服务器</translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+16"/>
|
<location line="+2"/>
|
||||||
|
<source>A server that allows registration. Since matrix is decentralized, you need to first find a server you can register on or host your own.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+17"/>
|
||||||
<source>REGISTER</source>
|
<source>REGISTER</source>
|
||||||
<translation>注册</translation>
|
<translation>注册</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -548,7 +598,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineModel</name>
|
<name>TimelineModel</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../src/timeline/TimelineModel.cpp" line="+844"/>
|
<location filename="../../src/timeline/TimelineModel.cpp" line="+853"/>
|
||||||
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
<source>-- Decryption Error (failed to communicate with DB) --</source>
|
||||||
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
<comment>Placeholder, when the message can't be decrypted, because the DB access failed when trying to lookup the session.</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -597,12 +647,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="-258"/>
|
<location line="+82"/>
|
||||||
<source>You joined this room</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location line="+340"/>
|
|
||||||
<source>-- Encrypted Event (Unknown event type) --</source>
|
<source>-- Encrypted Event (Unknown event type) --</source>
|
||||||
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
<comment>Placeholder, when the message was decrypted, but we couldn't parse it, because Nheko/mtxclient don't support that event type yet.</comment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
@ -721,7 +766,12 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+2"/>
|
<location line="-1278"/>
|
||||||
|
<source>You joined this room.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location line="+1280"/>
|
||||||
<source>Rejected the knock from %1.</source>
|
<source>Rejected the knock from %1.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -745,7 +795,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TimelineRow</name>
|
<name>TimelineRow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../qml/TimelineRow.qml" line="+83"/>
|
<location filename="../qml/TimelineRow.qml" line="+84"/>
|
||||||
<source>React</source>
|
<source>React</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -808,7 +858,7 @@
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location line="+254"/>
|
<location line="+256"/>
|
||||||
<source>Close</source>
|
<source>Close</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -3,13 +3,14 @@ import QtQuick.Controls 2.1
|
||||||
import im.nheko 1.0
|
import im.nheko 1.0
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
property bool encrypted: false
|
||||||
id: indicator
|
id: indicator
|
||||||
color: "transparent"
|
color: "transparent"
|
||||||
width: 16
|
width: 16
|
||||||
height: 16
|
height: 16
|
||||||
|
|
||||||
ToolTip.visible: ma.containsMouse && indicator.visible
|
ToolTip.visible: ma.containsMouse && indicator.visible
|
||||||
ToolTip.text: qsTr("Encrypted")
|
ToolTip.text: getEncryptionTooltip()
|
||||||
|
|
||||||
MouseArea{
|
MouseArea{
|
||||||
id: ma
|
id: ma
|
||||||
|
@ -20,7 +21,21 @@ Rectangle {
|
||||||
Image {
|
Image {
|
||||||
id: stateImg
|
id: stateImg
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
source: "image://colorimage/:/icons/icons/ui/lock.png?"+colors.buttonText
|
source: getEncryptionImage()
|
||||||
|
}
|
||||||
|
|
||||||
|
function getEncryptionImage() {
|
||||||
|
if (encrypted)
|
||||||
|
return "image://colorimage/:/icons/icons/ui/lock.png?"+colors.buttonText
|
||||||
|
else
|
||||||
|
return "image://colorimage/:/icons/icons/ui/unlock.png?#dd3d3d"
|
||||||
|
}
|
||||||
|
|
||||||
|
function getEncryptionTooltip() {
|
||||||
|
if (encrypted)
|
||||||
|
return qsTr("Encrypted")
|
||||||
|
else
|
||||||
|
return qsTr("This message is not encrypted!")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -71,6 +71,8 @@ MouseArea {
|
||||||
pixelDelta = wheel.pixelDelta.y
|
pixelDelta = wheel.pixelDelta.y
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pixelDelta = Math.round(pixelDelta)
|
||||||
|
|
||||||
if (!pixelDelta) {
|
if (!pixelDelta) {
|
||||||
return flickableItem.contentY;
|
return flickableItem.contentY;
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,7 +67,8 @@ MouseArea {
|
||||||
}
|
}
|
||||||
|
|
||||||
EncryptionIndicator {
|
EncryptionIndicator {
|
||||||
visible: model.isEncrypted
|
visible: model.isRoomEncrypted
|
||||||
|
encrypted: model.isEncrypted
|
||||||
Layout.alignment: Qt.AlignRight | Qt.AlignTop
|
Layout.alignment: Qt.AlignRight | Qt.AlignTop
|
||||||
Layout.preferredHeight: 16
|
Layout.preferredHeight: 16
|
||||||
width: 16
|
width: 16
|
||||||
|
|
|
@ -125,6 +125,8 @@ Page {
|
||||||
|
|
||||||
visible: timelineManager.timeline != null
|
visible: timelineManager.timeline != null
|
||||||
|
|
||||||
|
cacheBuffer: 500
|
||||||
|
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
|
|
|
@ -6,10 +6,11 @@ Item {
|
||||||
property double tempWidth: Math.min(parent ? parent.width : undefined, model.data.width < 1 ? parent.width : model.data.width)
|
property double tempWidth: Math.min(parent ? parent.width : undefined, model.data.width < 1 ? parent.width : model.data.width)
|
||||||
property double tempHeight: tempWidth * model.data.proportionalHeight
|
property double tempHeight: tempWidth * model.data.proportionalHeight
|
||||||
|
|
||||||
property bool tooHigh: tempHeight > timelineRoot.height / 2
|
property double divisor: model.isReply ? 4 : 2
|
||||||
|
property bool tooHigh: tempHeight > timelineRoot.height / divisor
|
||||||
|
|
||||||
height: tooHigh ? timelineRoot.height / 2 : tempHeight
|
height: tooHigh ? timelineRoot.height / divisor : tempHeight
|
||||||
width: tooHigh ? (timelineRoot.height / 2) / model.data.proportionalHeight : tempWidth
|
width: tooHigh ? (timelineRoot.height / divisor) / model.data.proportionalHeight : tempWidth
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
id: blurhash
|
id: blurhash
|
||||||
|
|
|
@ -6,9 +6,11 @@ Item {
|
||||||
Item {
|
Item {
|
||||||
id: model
|
id: model
|
||||||
property var data;
|
property var data;
|
||||||
|
property bool isReply: false
|
||||||
}
|
}
|
||||||
|
|
||||||
property alias modelData: model.data
|
property alias modelData: model.data
|
||||||
|
property alias isReply: model.isReply
|
||||||
|
|
||||||
height: chooser.childrenRect.height
|
height: chooser.childrenRect.height
|
||||||
property real implicitWidth: (chooser.child && chooser.child.implicitWidth) ? chooser.child.implicitWidth : width
|
property real implicitWidth: (chooser.child && chooser.child.implicitWidth) ? chooser.child.implicitWidth : width
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
TextMessage {
|
TextMessage {
|
||||||
font.italic: true
|
font.italic: true
|
||||||
color: colors.buttonText
|
color: colors.buttonText
|
||||||
|
height: isReply ? Math.min(chat.height / 8, implicitHeight) : undefined
|
||||||
|
clip: true
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,8 +20,14 @@ Rectangle {
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: videoContainer
|
id: videoContainer
|
||||||
visible: model.data.type == MtxEvent.VideoMessage
|
visible: model.data.type == MtxEvent.VideoMessage
|
||||||
width: Math.min(parent.width, model.data.width ? model.data.width : 400) // some media has 0 as size...
|
property double tempWidth: Math.min(parent ? parent.width : undefined, model.data.width < 1 ? 400 : model.data.width)
|
||||||
height: width*model.data.proportionalHeight
|
property double tempHeight: tempWidth * model.data.proportionalHeight
|
||||||
|
|
||||||
|
property double divisor: model.isReply ? 4 : 2
|
||||||
|
property bool tooHigh: tempHeight > timelineRoot.height / divisor
|
||||||
|
|
||||||
|
height: tooHigh ? timelineRoot.height / divisor : tempHeight
|
||||||
|
width: tooHigh ? (timelineRoot.height / divisor) / model.data.proportionalHeight : tempWidth
|
||||||
Image {
|
Image {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
source: model.data.thumbnailUrl.replace("mxc://", "image://MxcImage/")
|
source: model.data.thumbnailUrl.replace("mxc://", "image://MxcImage/")
|
||||||
|
|
|
@ -51,6 +51,7 @@ Item {
|
||||||
MessageDelegate {
|
MessageDelegate {
|
||||||
id: reply
|
id: reply
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
isReply: true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,4 +4,6 @@ MatrixText {
|
||||||
property string formatted: model.data.formattedBody
|
property string formatted: model.data.formattedBody
|
||||||
text: "<style type=\"text/css\">a { color:"+colors.link+";}</style>" + formatted.replace("<pre>", "<pre style='white-space: pre-wrap'>")
|
text: "<style type=\"text/css\">a { color:"+colors.link+";}</style>" + formatted.replace("<pre>", "<pre style='white-space: pre-wrap'>")
|
||||||
width: parent ? parent.width : undefined
|
width: parent ? parent.width : undefined
|
||||||
|
height: isReply ? Math.min(chat.height / 8, implicitHeight) : undefined
|
||||||
|
clip: true
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,8 @@
|
||||||
<file>icons/ui/double-tick-indicator@2x.png</file>
|
<file>icons/ui/double-tick-indicator@2x.png</file>
|
||||||
<file>icons/ui/lock.png</file>
|
<file>icons/ui/lock.png</file>
|
||||||
<file>icons/ui/lock@2x.png</file>
|
<file>icons/ui/lock@2x.png</file>
|
||||||
|
<file>icons/ui/unlock.png</file>
|
||||||
|
<file>icons/ui/unlock@2x.png</file>
|
||||||
<file>icons/ui/clock.png</file>
|
<file>icons/ui/clock.png</file>
|
||||||
<file>icons/ui/clock@2x.png</file>
|
<file>icons/ui/clock@2x.png</file>
|
||||||
<file>icons/ui/checkmark.png</file>
|
<file>icons/ui/checkmark.png</file>
|
||||||
|
|
|
@ -1338,7 +1338,7 @@ Cache::getLastMessageInfo(lmdb::txn &txn, const std::string &room_id)
|
||||||
auto time = QDateTime::fromMSecsSinceEpoch(ts);
|
auto time = QDateTime::fromMSecsSinceEpoch(ts);
|
||||||
fallbackDesc = DescInfo{QString::fromStdString(obj["event"]["event_id"]),
|
fallbackDesc = DescInfo{QString::fromStdString(obj["event"]["event_id"]),
|
||||||
local_user,
|
local_user,
|
||||||
tr("You joined this room"),
|
tr("You joined this room."),
|
||||||
utils::descriptiveTime(time),
|
utils::descriptiveTime(time),
|
||||||
ts,
|
ts,
|
||||||
time};
|
time};
|
||||||
|
|
|
@ -666,7 +666,7 @@ ChatPage::bootstrap(QString userid, QString homeserver, QString token)
|
||||||
"This can have different reasons. Please open an "
|
"This can have different reasons. Please open an "
|
||||||
"issue and try to use an older version in the mean "
|
"issue and try to use an older version in the mean "
|
||||||
"time. Alternatively you can try deleting the cache "
|
"time. Alternatively you can try deleting the cache "
|
||||||
"manually"));
|
"manually."));
|
||||||
QCoreApplication::quit();
|
QCoreApplication::quit();
|
||||||
}
|
}
|
||||||
loadStateFromCache();
|
loadStateFromCache();
|
||||||
|
@ -994,8 +994,12 @@ ChatPage::trySync()
|
||||||
const auto err_code = mtx::errors::to_string(err->matrix_error.errcode);
|
const auto err_code = mtx::errors::to_string(err->matrix_error.errcode);
|
||||||
const int status_code = static_cast<int>(err->status_code);
|
const int status_code = static_cast<int>(err->status_code);
|
||||||
|
|
||||||
if (http::is_logged_in() && err->matrix_error.errcode ==
|
if ((http::is_logged_in() &&
|
||||||
mtx::errors::ErrorCode::M_UNKNOWN_TOKEN) {
|
(err->matrix_error.errcode ==
|
||||||
|
mtx::errors::ErrorCode::M_UNKNOWN_TOKEN ||
|
||||||
|
err->matrix_error.errcode ==
|
||||||
|
mtx::errors::ErrorCode::M_MISSING_TOKEN)) ||
|
||||||
|
!http::is_logged_in()) {
|
||||||
emit dropToLoginPageCb(msg);
|
emit dropToLoginPageCb(msg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1086,7 +1090,7 @@ ChatPage::createRoom(const mtx::requests::CreateRoom &req)
|
||||||
}
|
}
|
||||||
|
|
||||||
emit showNotification(
|
emit showNotification(
|
||||||
tr("Room %1 created").arg(QString::fromStdString(res.room_id.to_string())));
|
tr("Room %1 created.").arg(QString::fromStdString(res.room_id.to_string())));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,28 +15,35 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <QDesktopServices>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QStyleOption>
|
#include <QStyleOption>
|
||||||
|
|
||||||
#include <mtx/identifiers.hpp>
|
#include <mtx/identifiers.hpp>
|
||||||
|
#include <mtx/requests.hpp>
|
||||||
#include <mtx/responses/login.hpp>
|
#include <mtx/responses/login.hpp>
|
||||||
|
|
||||||
#include "Config.h"
|
#include "Config.h"
|
||||||
#include "Logging.h"
|
#include "Logging.h"
|
||||||
#include "LoginPage.h"
|
#include "LoginPage.h"
|
||||||
#include "MatrixClient.h"
|
#include "MatrixClient.h"
|
||||||
|
#include "SSOHandler.h"
|
||||||
#include "ui/FlatButton.h"
|
#include "ui/FlatButton.h"
|
||||||
#include "ui/LoadingIndicator.h"
|
#include "ui/LoadingIndicator.h"
|
||||||
#include "ui/OverlayModal.h"
|
#include "ui/OverlayModal.h"
|
||||||
#include "ui/RaisedButton.h"
|
#include "ui/RaisedButton.h"
|
||||||
#include "ui/TextField.h"
|
#include "ui/TextField.h"
|
||||||
|
|
||||||
|
Q_DECLARE_METATYPE(LoginPage::LoginMethod)
|
||||||
|
|
||||||
using namespace mtx::identifiers;
|
using namespace mtx::identifiers;
|
||||||
|
|
||||||
LoginPage::LoginPage(QWidget *parent)
|
LoginPage::LoginPage(QWidget *parent)
|
||||||
: QWidget(parent)
|
: QWidget(parent)
|
||||||
, inferredServerAddress_()
|
, inferredServerAddress_()
|
||||||
{
|
{
|
||||||
|
qRegisterMetaType<LoginPage::LoginMethod>("LoginPage::LoginMethod");
|
||||||
|
|
||||||
top_layout_ = new QVBoxLayout();
|
top_layout_ = new QVBoxLayout();
|
||||||
|
|
||||||
top_bar_layout_ = new QHBoxLayout();
|
top_bar_layout_ = new QHBoxLayout();
|
||||||
|
@ -81,6 +88,14 @@ LoginPage::LoginPage(QWidget *parent)
|
||||||
matrixid_input_ = new TextField(this);
|
matrixid_input_ = new TextField(this);
|
||||||
matrixid_input_->setLabel(tr("Matrix ID"));
|
matrixid_input_->setLabel(tr("Matrix ID"));
|
||||||
matrixid_input_->setPlaceholderText(tr("e.g @joe:matrix.org"));
|
matrixid_input_->setPlaceholderText(tr("e.g @joe:matrix.org"));
|
||||||
|
matrixid_input_->setToolTip(
|
||||||
|
tr("Your login name. A mxid should start with @ followed by the user id. After the user "
|
||||||
|
"id you need to include your server name after a :.\nYou can also put your homeserver "
|
||||||
|
"address there, if your server doesn't support .well-known lookup.\nExample: "
|
||||||
|
"@user:server.my\nIf Nheko fails to discover your homeserver, it will show you a "
|
||||||
|
"field to enter the server manually."));
|
||||||
|
matrixid_input_->setValidator(
|
||||||
|
new QRegularExpressionValidator(QRegularExpression("@.+?:.{3,}"), this));
|
||||||
|
|
||||||
spinner_ = new LoadingIndicator(this);
|
spinner_ = new LoadingIndicator(this);
|
||||||
spinner_->setFixedHeight(40);
|
spinner_->setFixedHeight(40);
|
||||||
|
@ -97,13 +112,19 @@ LoginPage::LoginPage(QWidget *parent)
|
||||||
password_input_ = new TextField(this);
|
password_input_ = new TextField(this);
|
||||||
password_input_->setLabel(tr("Password"));
|
password_input_->setLabel(tr("Password"));
|
||||||
password_input_->setEchoMode(QLineEdit::Password);
|
password_input_->setEchoMode(QLineEdit::Password);
|
||||||
|
password_input_->setToolTip("Your password.");
|
||||||
|
|
||||||
deviceName_ = new TextField(this);
|
deviceName_ = new TextField(this);
|
||||||
deviceName_->setLabel(tr("Device name"));
|
deviceName_->setLabel(tr("Device name"));
|
||||||
|
deviceName_->setToolTip(
|
||||||
|
tr("A name for this device, which will be shown to others, when verifying your devices. "
|
||||||
|
"If none is provided, a random string is used for privacy purposes."));
|
||||||
|
|
||||||
serverInput_ = new TextField(this);
|
serverInput_ = new TextField(this);
|
||||||
serverInput_->setLabel("Homeserver address");
|
serverInput_->setLabel("Homeserver address");
|
||||||
serverInput_->setPlaceholderText("matrix.org");
|
serverInput_->setPlaceholderText("matrix.org");
|
||||||
|
serverInput_->setToolTip(tr("The address that can be used to contact you homeservers "
|
||||||
|
"client API.\nExample: https://server.my:8787"));
|
||||||
serverInput_->hide();
|
serverInput_->hide();
|
||||||
|
|
||||||
serverLayout_ = new QHBoxLayout();
|
serverLayout_ = new QHBoxLayout();
|
||||||
|
@ -212,7 +233,8 @@ LoginPage::onMatrixIdEntered()
|
||||||
emit versionErrorCb(tr("Autodiscovery failed. Unknown error when "
|
emit versionErrorCb(tr("Autodiscovery failed. Unknown error when "
|
||||||
"requesting .well-known."));
|
"requesting .well-known."));
|
||||||
nhlog::net()->error("Autodiscovery failed. Unknown error when "
|
nhlog::net()->error("Autodiscovery failed. Unknown error when "
|
||||||
"requesting .well-known.");
|
"requesting .well-known. {}",
|
||||||
|
err->error_code.message());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -249,7 +271,16 @@ LoginPage::checkHomeserverVersion()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
emit versionOkCb();
|
http::client()->get_login(
|
||||||
|
[this](mtx::responses::LoginFlows flows, mtx::http::RequestErr err) {
|
||||||
|
if (err || flows.flows.empty())
|
||||||
|
emit versionOkCb(LoginMethod::Password);
|
||||||
|
|
||||||
|
if (flows.flows[0].type == mtx::user_interactive::auth_types::sso)
|
||||||
|
emit versionOkCb(LoginMethod::SSO);
|
||||||
|
else
|
||||||
|
emit versionOkCb(LoginMethod::Password);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -280,12 +311,22 @@ LoginPage::versionError(const QString &error)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
LoginPage::versionOk()
|
LoginPage::versionOk(LoginMethod loginMethod_)
|
||||||
{
|
{
|
||||||
|
this->loginMethod = loginMethod_;
|
||||||
|
|
||||||
serverLayout_->removeWidget(spinner_);
|
serverLayout_->removeWidget(spinner_);
|
||||||
matrixidLayout_->removeWidget(spinner_);
|
matrixidLayout_->removeWidget(spinner_);
|
||||||
spinner_->stop();
|
spinner_->stop();
|
||||||
|
|
||||||
|
if (loginMethod == LoginMethod::SSO) {
|
||||||
|
password_input_->hide();
|
||||||
|
login_button_->setText(tr("SSO LOGIN"));
|
||||||
|
} else {
|
||||||
|
password_input_->show();
|
||||||
|
login_button_->setText(tr("LOGIN"));
|
||||||
|
}
|
||||||
|
|
||||||
if (serverInput_->isVisible())
|
if (serverInput_->isVisible())
|
||||||
serverInput_->hide();
|
serverInput_->hide();
|
||||||
}
|
}
|
||||||
|
@ -303,6 +344,7 @@ LoginPage::onLoginButtonClicked()
|
||||||
return loginError("You have entered an invalid Matrix ID e.g @joe:matrix.org");
|
return loginError("You have entered an invalid Matrix ID e.g @joe:matrix.org");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (loginMethod == LoginMethod::Password) {
|
||||||
if (password_input_->text().isEmpty())
|
if (password_input_->text().isEmpty())
|
||||||
return loginError(tr("Empty password"));
|
return loginError(tr("Empty password"));
|
||||||
|
|
||||||
|
@ -326,6 +368,44 @@ LoginPage::onLoginButtonClicked()
|
||||||
|
|
||||||
emit loginOk(res);
|
emit loginOk(res);
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
auto sso = new SSOHandler();
|
||||||
|
connect(sso, &SSOHandler::ssoSuccess, this, [this, sso](std::string token) {
|
||||||
|
mtx::requests::Login req{};
|
||||||
|
req.token = token;
|
||||||
|
req.type = mtx::user_interactive::auth_types::token;
|
||||||
|
req.device_id = deviceName_->text().trimmed().isEmpty()
|
||||||
|
? initialDeviceName()
|
||||||
|
: deviceName_->text().toStdString();
|
||||||
|
http::client()->login(
|
||||||
|
req, [this](const mtx::responses::Login &res, mtx::http::RequestErr err) {
|
||||||
|
if (err) {
|
||||||
|
emit loginError(
|
||||||
|
QString::fromStdString(err->matrix_error.error));
|
||||||
|
emit errorOccurred();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (res.well_known) {
|
||||||
|
http::client()->set_server(
|
||||||
|
res.well_known->homeserver.base_url);
|
||||||
|
nhlog::net()->info("Login requested to user server: " +
|
||||||
|
res.well_known->homeserver.base_url);
|
||||||
|
}
|
||||||
|
|
||||||
|
emit loginOk(res);
|
||||||
|
});
|
||||||
|
sso->deleteLater();
|
||||||
|
});
|
||||||
|
connect(sso, &SSOHandler::ssoFailed, this, [this, sso]() {
|
||||||
|
emit loginError(tr("SSO login failed"));
|
||||||
|
emit errorOccurred();
|
||||||
|
sso->deleteLater();
|
||||||
|
});
|
||||||
|
|
||||||
|
QDesktopServices::openUrl(
|
||||||
|
QString::fromStdString(http::client()->login_sso_redirect(sso->url())));
|
||||||
|
}
|
||||||
|
|
||||||
emit loggingIn();
|
emit loggingIn();
|
||||||
}
|
}
|
||||||
|
@ -335,6 +415,7 @@ LoginPage::reset()
|
||||||
{
|
{
|
||||||
matrixid_input_->clear();
|
matrixid_input_->clear();
|
||||||
password_input_->clear();
|
password_input_->clear();
|
||||||
|
password_input_->show();
|
||||||
serverInput_->clear();
|
serverInput_->clear();
|
||||||
|
|
||||||
spinner_->stop();
|
spinner_->stop();
|
||||||
|
|
|
@ -38,6 +38,12 @@ class LoginPage : public QWidget
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
enum class LoginMethod
|
||||||
|
{
|
||||||
|
Password,
|
||||||
|
SSO,
|
||||||
|
};
|
||||||
|
|
||||||
LoginPage(QWidget *parent = nullptr);
|
LoginPage(QWidget *parent = nullptr);
|
||||||
|
|
||||||
void reset();
|
void reset();
|
||||||
|
@ -50,7 +56,7 @@ signals:
|
||||||
//! Used to trigger the corresponding slot outside of the main thread.
|
//! Used to trigger the corresponding slot outside of the main thread.
|
||||||
void versionErrorCb(const QString &err);
|
void versionErrorCb(const QString &err);
|
||||||
void loginErrorCb(const QString &err);
|
void loginErrorCb(const QString &err);
|
||||||
void versionOkCb();
|
void versionOkCb(LoginPage::LoginMethod method);
|
||||||
|
|
||||||
void loginOk(const mtx::responses::Login &res);
|
void loginOk(const mtx::responses::Login &res);
|
||||||
|
|
||||||
|
@ -77,7 +83,7 @@ private slots:
|
||||||
// Callback for errors produced during server probing
|
// Callback for errors produced during server probing
|
||||||
void versionError(const QString &error_message);
|
void versionError(const QString &error_message);
|
||||||
// Callback for successful server probing
|
// Callback for successful server probing
|
||||||
void versionOk();
|
void versionOk(LoginPage::LoginMethod method);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool isMatrixIdValid();
|
bool isMatrixIdValid();
|
||||||
|
@ -123,4 +129,5 @@ private:
|
||||||
TextField *password_input_;
|
TextField *password_input_;
|
||||||
TextField *deviceName_;
|
TextField *deviceName_;
|
||||||
TextField *serverInput_;
|
TextField *serverInput_;
|
||||||
|
LoginMethod loginMethod = LoginMethod::Password;
|
||||||
};
|
};
|
||||||
|
|
|
@ -85,17 +85,26 @@ RegisterPage::RegisterPage(QWidget *parent)
|
||||||
|
|
||||||
username_input_ = new TextField();
|
username_input_ = new TextField();
|
||||||
username_input_->setLabel(tr("Username"));
|
username_input_->setLabel(tr("Username"));
|
||||||
|
username_input_->setValidator(
|
||||||
|
new QRegularExpressionValidator(QRegularExpression("[a-z0-9._=/-]+"), this));
|
||||||
|
username_input_->setToolTip(tr("The username must not be empty, and must contain only the "
|
||||||
|
"characters a-z, 0-9, ., _, =, -, and /."));
|
||||||
|
|
||||||
password_input_ = new TextField();
|
password_input_ = new TextField();
|
||||||
password_input_->setLabel(tr("Password"));
|
password_input_->setLabel(tr("Password"));
|
||||||
password_input_->setEchoMode(QLineEdit::Password);
|
password_input_->setEchoMode(QLineEdit::Password);
|
||||||
|
password_input_->setToolTip(tr("Please choose a secure password. The exact requirements "
|
||||||
|
"for password strength may depend on your server."));
|
||||||
|
|
||||||
password_confirmation_ = new TextField();
|
password_confirmation_ = new TextField();
|
||||||
password_confirmation_->setLabel(tr("Password confirmation"));
|
password_confirmation_->setLabel(tr("Password confirmation"));
|
||||||
password_confirmation_->setEchoMode(QLineEdit::Password);
|
password_confirmation_->setEchoMode(QLineEdit::Password);
|
||||||
|
|
||||||
server_input_ = new TextField();
|
server_input_ = new TextField();
|
||||||
server_input_->setLabel(tr("Home Server"));
|
server_input_->setLabel(tr("Homeserver"));
|
||||||
|
server_input_->setToolTip(
|
||||||
|
tr("A server that allows registration. Since matrix is decentralized, you need to first "
|
||||||
|
"find a server you can register on or host your own."));
|
||||||
|
|
||||||
form_layout_->addWidget(username_input_, Qt::AlignHCenter, nullptr);
|
form_layout_->addWidget(username_input_, Qt::AlignHCenter, nullptr);
|
||||||
form_layout_->addWidget(password_input_, Qt::AlignHCenter, nullptr);
|
form_layout_->addWidget(password_input_, Qt::AlignHCenter, nullptr);
|
||||||
|
|
53
src/SSOHandler.cpp
Normal file
53
src/SSOHandler.cpp
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
#include "SSOHandler.h"
|
||||||
|
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
|
#include <thread>
|
||||||
|
|
||||||
|
#include "Logging.h"
|
||||||
|
|
||||||
|
SSOHandler::SSOHandler(QObject *)
|
||||||
|
{
|
||||||
|
QTimer::singleShot(120000, this, &SSOHandler::ssoFailed);
|
||||||
|
|
||||||
|
using namespace httplib;
|
||||||
|
|
||||||
|
svr.set_logger([](const Request &req, const Response &res) {
|
||||||
|
nhlog::net()->info("req: {}, res: {}", req.path, res.status);
|
||||||
|
});
|
||||||
|
|
||||||
|
svr.Get("/sso", [this](const Request &req, Response &res) {
|
||||||
|
if (req.has_param("loginToken")) {
|
||||||
|
auto val = req.get_param_value("loginToken");
|
||||||
|
res.set_content("SSO success", "text/plain");
|
||||||
|
emit ssoSuccess(val);
|
||||||
|
} else {
|
||||||
|
res.set_content("Missing loginToken for SSO login!", "text/plain");
|
||||||
|
emit ssoFailed();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
std::thread t([this]() {
|
||||||
|
this->port = svr.bind_to_any_port("localhost");
|
||||||
|
svr.listen_after_bind();
|
||||||
|
});
|
||||||
|
t.detach();
|
||||||
|
|
||||||
|
while (!svr.is_running()) {
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SSOHandler::~SSOHandler()
|
||||||
|
{
|
||||||
|
svr.stop();
|
||||||
|
while (svr.is_running()) {
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string
|
||||||
|
SSOHandler::url() const
|
||||||
|
{
|
||||||
|
return "http://localhost:" + std::to_string(port) + "/sso";
|
||||||
|
}
|
24
src/SSOHandler.h
Normal file
24
src/SSOHandler.h
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
#include "httplib.h"
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
class SSOHandler : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
SSOHandler(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
~SSOHandler();
|
||||||
|
|
||||||
|
std::string url() const;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void ssoSuccess(std::string token);
|
||||||
|
void ssoFailed();
|
||||||
|
|
||||||
|
private:
|
||||||
|
httplib::Server svr;
|
||||||
|
int port = 0;
|
||||||
|
};
|
|
@ -224,6 +224,7 @@ TimelineModel::roleNames() const
|
||||||
{Id, "id"},
|
{Id, "id"},
|
||||||
{State, "state"},
|
{State, "state"},
|
||||||
{IsEncrypted, "isEncrypted"},
|
{IsEncrypted, "isEncrypted"},
|
||||||
|
{IsRoomEncrypted, "isRoomEncrypted"},
|
||||||
{ReplyTo, "replyTo"},
|
{ReplyTo, "replyTo"},
|
||||||
{Reactions, "reactions"},
|
{Reactions, "reactions"},
|
||||||
{RoomId, "roomId"},
|
{RoomId, "roomId"},
|
||||||
|
@ -294,6 +295,10 @@ TimelineModel::data(const QString &id, int role) const
|
||||||
if (isReply)
|
if (isReply)
|
||||||
formattedBody_ = formattedBody_.remove(replyFallback);
|
formattedBody_ = formattedBody_.remove(replyFallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
formattedBody_.replace("<img src=\"mxc://", "<img src=\"image://mxcImage/");
|
||||||
|
formattedBody_.replace("<img src=\"mxc://", "<img src=\"image://mxcImage/");
|
||||||
|
|
||||||
return QVariant(utils::replaceEmoji(
|
return QVariant(utils::replaceEmoji(
|
||||||
utils::linkifyMessage(utils::escapeBlacklistedHtml(formattedBody_))));
|
utils::linkifyMessage(utils::escapeBlacklistedHtml(formattedBody_))));
|
||||||
}
|
}
|
||||||
|
@ -346,6 +351,9 @@ TimelineModel::data(const QString &id, int role) const
|
||||||
return std::holds_alternative<
|
return std::holds_alternative<
|
||||||
mtx::events::EncryptedEvent<mtx::events::msg::Encrypted>>(events[id]);
|
mtx::events::EncryptedEvent<mtx::events::msg::Encrypted>>(events[id]);
|
||||||
}
|
}
|
||||||
|
case IsRoomEncrypted: {
|
||||||
|
return cache::isRoomEncrypted(room_id_.toStdString());
|
||||||
|
}
|
||||||
case ReplyTo:
|
case ReplyTo:
|
||||||
return QVariant(QString::fromStdString(in_reply_to_event(event)));
|
return QVariant(QString::fromStdString(in_reply_to_event(event)));
|
||||||
case Reactions:
|
case Reactions:
|
||||||
|
@ -383,6 +391,7 @@ TimelineModel::data(const QString &id, int role) const
|
||||||
m.insert(names[Id], data(id, static_cast<int>(Id)));
|
m.insert(names[Id], data(id, static_cast<int>(Id)));
|
||||||
m.insert(names[State], data(id, static_cast<int>(State)));
|
m.insert(names[State], data(id, static_cast<int>(State)));
|
||||||
m.insert(names[IsEncrypted], data(id, static_cast<int>(IsEncrypted)));
|
m.insert(names[IsEncrypted], data(id, static_cast<int>(IsEncrypted)));
|
||||||
|
m.insert(names[IsRoomEncrypted], data(id, static_cast<int>(IsRoomEncrypted)));
|
||||||
m.insert(names[ReplyTo], data(id, static_cast<int>(ReplyTo)));
|
m.insert(names[ReplyTo], data(id, static_cast<int>(ReplyTo)));
|
||||||
m.insert(names[RoomName], data(id, static_cast<int>(RoomName)));
|
m.insert(names[RoomName], data(id, static_cast<int>(RoomName)));
|
||||||
m.insert(names[RoomTopic], data(id, static_cast<int>(RoomTopic)));
|
m.insert(names[RoomTopic], data(id, static_cast<int>(RoomTopic)));
|
||||||
|
@ -566,7 +575,7 @@ TimelineModel::updateLastMessage()
|
||||||
room_id_,
|
room_id_,
|
||||||
DescInfo{QString::fromStdString(mtx::accessors::event_id(event)),
|
DescInfo{QString::fromStdString(mtx::accessors::event_id(event)),
|
||||||
QString::fromStdString(http::client()->user_id().to_string()),
|
QString::fromStdString(http::client()->user_id().to_string()),
|
||||||
tr("You joined this room"),
|
tr("You joined this room."),
|
||||||
utils::descriptiveTime(time),
|
utils::descriptiveTime(time),
|
||||||
ts,
|
ts,
|
||||||
time});
|
time});
|
||||||
|
|
|
@ -159,6 +159,7 @@ public:
|
||||||
Id,
|
Id,
|
||||||
State,
|
State,
|
||||||
IsEncrypted,
|
IsEncrypted,
|
||||||
|
IsRoomEncrypted,
|
||||||
ReplyTo,
|
ReplyTo,
|
||||||
Reactions,
|
Reactions,
|
||||||
RoomId,
|
RoomId,
|
||||||
|
|
|
@ -147,7 +147,10 @@ QColor
|
||||||
TextField::underlineColor() const
|
TextField::underlineColor() const
|
||||||
{
|
{
|
||||||
if (!underline_color_.isValid()) {
|
if (!underline_color_.isValid()) {
|
||||||
|
if (hasAcceptableInput() || !isModified())
|
||||||
return QPalette().color(QPalette::Highlight);
|
return QPalette().color(QPalette::Highlight);
|
||||||
|
else
|
||||||
|
return Qt::red;
|
||||||
}
|
}
|
||||||
|
|
||||||
return underline_color_;
|
return underline_color_;
|
||||||
|
|
5125
third_party/cpp-httplib-0.5.12/httplib.h
vendored
Normal file
5125
third_party/cpp-httplib-0.5.12/httplib.h
vendored
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue