Add support for db migrations

This commit is contained in:
Nicolas Werner 2020-05-02 16:44:50 +02:00
parent 38417a374d
commit dad2de7ba2
15 changed files with 401 additions and 156 deletions

View File

@ -4,13 +4,13 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+225"/> <location filename="../../src/ChatPage.cpp" line="+226"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation>Nutzer konnte nicht eingeladen werden: %1</translation> <translation>Nutzer konnte nicht eingeladen werden: %1</translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+866"/> <location line="+888"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation>Eingeladener Benutzer: %1</translation> <translation>Eingeladener Benutzer: %1</translation>
</message> </message>
@ -50,12 +50,32 @@
<translation>Verbannung von %1 wurde aufgehoben.</translation> <translation>Verbannung von %1 wurde aufgehoben.</translation>
</message> </message>
<message> <message>
<location line="-791"/> <location line="-813"/>
<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="+404"/> <location line="+296"/>
<source>Cache migration failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+111"/>
<source>Failed to restore OLM account. Please login again.</source> <source>Failed to restore OLM account. Please login again.</source>
<translation>Wiederherstellung des OLM Accounts fehlgeschlagen. Bitte logge dich erneut ein.</translation> <translation>Wiederherstellung des OLM Accounts fehlgeschlagen. Bitte logge dich erneut ein.</translation>
</message> </message>
@ -71,7 +91,7 @@
</message> </message>
<message> <message>
<location line="+51"/> <location line="+51"/>
<location line="+210"/> <location line="+215"/>
<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>
@ -355,7 +375,7 @@
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+2311"/> <location filename="../../src/Cache.cpp" line="+2213"/>
<source>no version stored</source> <source>no version stored</source>
<translation>keine Version gespeichert</translation> <translation>keine Version gespeichert</translation>
</message> </message>
@ -368,7 +388,7 @@
<translation>Raum verlassen</translation> <translation>Raum verlassen</translation>
</message> </message>
<message> <message>
<location line="+158"/> <location line="+160"/>
<source>Accept</source> <source>Accept</source>
<translation>Akzeptieren</translation> <translation>Akzeptieren</translation>
</message> </message>
@ -471,7 +491,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+766"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+773"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation>-- Entschlüsselungsfehler (Fehler bei Kommunikation mit Datenbank) --</translation> <translation>-- Entschlüsselungsfehler (Fehler bei Kommunikation mit Datenbank) --</translation>
@ -489,7 +509,7 @@
<translation>-- Entschlüsselungsfehler (%1) --</translation> <translation>-- Entschlüsselungsfehler (%1) --</translation>
</message> </message>
<message> <message>
<location line="+89"/> <location line="+99"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation>Nachricht zurückziehen fehlgeschlagen: %1</translation> <translation>Nachricht zurückziehen fehlgeschlagen: %1</translation>
</message> </message>
@ -514,7 +534,7 @@
<translation>Datei speichern</translation> <translation>Datei speichern</translation>
</message> </message>
<message> <message>
<location line="-600"/> <location line="-610"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation>-- Verschlüsseltes Event (keine Schlüssel zur Entschlüsselung gefunden) --</translation> <translation>-- Verschlüsseltes Event (keine Schlüssel zur Entschlüsselung gefunden) --</translation>
@ -526,7 +546,7 @@
<translation>-- Verschlüsseltes Event (Unbekannter Eventtyp) --</translation> <translation>-- Verschlüsseltes Event (Unbekannter Eventtyp) --</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+650"/> <location line="+660"/>
<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>
@ -677,7 +697,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+48"/> <location filename="../qml/TimelineView.qml" line="+52"/>
<source>Reply</source> <source>Reply</source>
<translation>Antworten</translation> <translation>Antworten</translation>
</message> </message>
@ -971,7 +991,7 @@
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+138"/> <location filename="../../src/Utils.cpp" line="+141"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation>Gestern</translation> <translation>Gestern</translation>
</message> </message>

View File

@ -4,13 +4,13 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+225"/> <location filename="../../src/ChatPage.cpp" line="+226"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+866"/> <location line="+888"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -50,12 +50,32 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-791"/> <location line="-813"/>
<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>
<message> <message>
<location line="+404"/> <location line="+296"/>
<source>Cache migration failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+111"/>
<source>Failed to restore OLM account. Please login again.</source> <source>Failed to restore OLM account. Please login again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -71,7 +91,7 @@
</message> </message>
<message> <message>
<location line="+51"/> <location line="+51"/>
<location line="+210"/> <location line="+215"/>
<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>
@ -355,7 +375,7 @@
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+2311"/> <location filename="../../src/Cache.cpp" line="+2213"/>
<source>no version stored</source> <source>no version stored</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -368,7 +388,7 @@
<translation>Βγές</translation> <translation>Βγές</translation>
</message> </message>
<message> <message>
<location line="+158"/> <location line="+160"/>
<source>Accept</source> <source>Accept</source>
<translation>Αποδοχή</translation> <translation>Αποδοχή</translation>
</message> </message>
@ -471,7 +491,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+766"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+773"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -489,7 +509,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+89"/> <location line="+99"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -514,7 +534,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-600"/> <location line="-610"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -526,7 +546,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+650"/> <location line="+660"/>
<source>%1 and %2 are typing.</source> <source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished"> <translation type="unfinished">
@ -677,7 +697,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+48"/> <location filename="../qml/TimelineView.qml" line="+52"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -971,7 +991,7 @@
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+138"/> <location filename="../../src/Utils.cpp" line="+141"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -4,13 +4,13 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+225"/> <location filename="../../src/ChatPage.cpp" line="+226"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation>Failed to invite user: %1</translation> <translation>Failed to invite user: %1</translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+866"/> <location line="+888"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation>Invited user: %1</translation> <translation>Invited user: %1</translation>
</message> </message>
@ -50,12 +50,32 @@
<translation>Unbanned user: %1</translation> <translation>Unbanned user: %1</translation>
</message> </message>
<message> <message>
<location line="-791"/> <location line="-813"/>
<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="+404"/> <location line="+296"/>
<source>Cache migration failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+111"/>
<source>Failed to restore OLM account. Please login again.</source> <source>Failed to restore OLM account. Please login again.</source>
<translation>Failed to restore OLM account. Please login again.</translation> <translation>Failed to restore OLM account. Please login again.</translation>
</message> </message>
@ -71,7 +91,7 @@
</message> </message>
<message> <message>
<location line="+51"/> <location line="+51"/>
<location line="+210"/> <location line="+215"/>
<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>
@ -355,7 +375,7 @@
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+2311"/> <location filename="../../src/Cache.cpp" line="+2213"/>
<source>no version stored</source> <source>no version stored</source>
<translation>no version stored</translation> <translation>no version stored</translation>
</message> </message>
@ -368,7 +388,7 @@
<translation>Leave room</translation> <translation>Leave room</translation>
</message> </message>
<message> <message>
<location line="+158"/> <location line="+160"/>
<source>Accept</source> <source>Accept</source>
<translation>Accept</translation> <translation>Accept</translation>
</message> </message>
@ -471,7 +491,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+766"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+773"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation>-- Decryption Error (failed to communicate with DB) --</translation> <translation>-- Decryption Error (failed to communicate with DB) --</translation>
@ -489,7 +509,7 @@
<translation>-- Decryption Error (%1) --</translation> <translation>-- Decryption Error (%1) --</translation>
</message> </message>
<message> <message>
<location line="+89"/> <location line="+99"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation>Message redaction failed: %1</translation> <translation>Message redaction failed: %1</translation>
</message> </message>
@ -514,7 +534,7 @@
<translation>Save file</translation> <translation>Save file</translation>
</message> </message>
<message> <message>
<location line="-600"/> <location line="-610"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation>-- Encrypted Event (No keys found for decryption) --</translation> <translation>-- Encrypted Event (No keys found for decryption) --</translation>
@ -526,7 +546,7 @@
<translation>-- Encrypted Event (Unknown event type) --</translation> <translation>-- Encrypted Event (Unknown event type) --</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+650"/> <location line="+660"/>
<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>
@ -677,7 +697,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+48"/> <location filename="../qml/TimelineView.qml" line="+52"/>
<source>Reply</source> <source>Reply</source>
<translation>Reply</translation> <translation>Reply</translation>
</message> </message>
@ -971,7 +991,7 @@
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+138"/> <location filename="../../src/Utils.cpp" line="+141"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation>Yesterday</translation> <translation>Yesterday</translation>
</message> </message>

View File

@ -4,13 +4,13 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+225"/> <location filename="../../src/ChatPage.cpp" line="+226"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+866"/> <location line="+888"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -50,12 +50,32 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-791"/> <location line="-813"/>
<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>
<message> <message>
<location line="+404"/> <location line="+296"/>
<source>Cache migration failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+111"/>
<source>Failed to restore OLM account. Please login again.</source> <source>Failed to restore OLM account. Please login again.</source>
<translation>OLM-tilin palauttaminen epäonnistui. Ole hyvä ja kirjaudu sisään uudelleen.</translation> <translation>OLM-tilin palauttaminen epäonnistui. Ole hyvä ja kirjaudu sisään uudelleen.</translation>
</message> </message>
@ -71,7 +91,7 @@
</message> </message>
<message> <message>
<location line="+51"/> <location line="+51"/>
<location line="+210"/> <location line="+215"/>
<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>
@ -355,7 +375,7 @@
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+2311"/> <location filename="../../src/Cache.cpp" line="+2213"/>
<source>no version stored</source> <source>no version stored</source>
<translation>ei tallennettua versiota</translation> <translation>ei tallennettua versiota</translation>
</message> </message>
@ -368,7 +388,7 @@
<translation>Poistu huoneesta</translation> <translation>Poistu huoneesta</translation>
</message> </message>
<message> <message>
<location line="+158"/> <location line="+160"/>
<source>Accept</source> <source>Accept</source>
<translation>Hyväksy</translation> <translation>Hyväksy</translation>
</message> </message>
@ -471,7 +491,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+766"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+773"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation type="unfinished">-- Virhe purkaessa salausta (tietokannan kanssa kommunikointi epäonnistui) --</translation> <translation type="unfinished">-- Virhe purkaessa salausta (tietokannan kanssa kommunikointi epäonnistui) --</translation>
@ -489,7 +509,7 @@
<translation type="unfinished">-- Virhe purkaessa salausta (%1) --</translation> <translation type="unfinished">-- Virhe purkaessa salausta (%1) --</translation>
</message> </message>
<message> <message>
<location line="+89"/> <location line="+99"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation type="unfinished">Viestin poisto epäonnistui: %1</translation> <translation type="unfinished">Viestin poisto epäonnistui: %1</translation>
</message> </message>
@ -514,7 +534,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-600"/> <location line="-610"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished">-- Salattu viesti (salauksen purkuavaimia ei löydetty) --</translation> <translation type="unfinished">-- Salattu viesti (salauksen purkuavaimia ei löydetty) --</translation>
@ -526,7 +546,7 @@
<translation type="unfinished">-- Salattu viesti (tuntematon viestityyppi) --</translation> <translation type="unfinished">-- Salattu viesti (tuntematon viestityyppi) --</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+650"/> <location line="+660"/>
<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>
@ -677,7 +697,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+48"/> <location filename="../qml/TimelineView.qml" line="+52"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -971,7 +991,7 @@
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+138"/> <location filename="../../src/Utils.cpp" line="+141"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation>Eilen</translation> <translation>Eilen</translation>
</message> </message>

View File

@ -4,13 +4,13 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+225"/> <location filename="../../src/ChatPage.cpp" line="+226"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+866"/> <location line="+888"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -50,12 +50,32 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-791"/> <location line="-813"/>
<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>
<message> <message>
<location line="+404"/> <location line="+296"/>
<source>Cache migration failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+111"/>
<source>Failed to restore OLM account. Please login again.</source> <source>Failed to restore OLM account. Please login again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -71,7 +91,7 @@
</message> </message>
<message> <message>
<location line="+51"/> <location line="+51"/>
<location line="+210"/> <location line="+215"/>
<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>
@ -356,7 +376,7 @@
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+2311"/> <location filename="../../src/Cache.cpp" line="+2213"/>
<source>no version stored</source> <source>no version stored</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -369,7 +389,7 @@
<translation>Quitter le salon</translation> <translation>Quitter le salon</translation>
</message> </message>
<message> <message>
<location line="+158"/> <location line="+160"/>
<source>Accept</source> <source>Accept</source>
<translation>Accepter</translation> <translation>Accepter</translation>
</message> </message>
@ -472,7 +492,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+766"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+773"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -490,7 +510,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+89"/> <location line="+99"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -515,7 +535,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-600"/> <location line="-610"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -527,7 +547,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+650"/> <location line="+660"/>
<source>%1 and %2 are typing.</source> <source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished"> <translation type="unfinished">
@ -678,7 +698,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+48"/> <location filename="../qml/TimelineView.qml" line="+52"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -972,7 +992,7 @@
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+138"/> <location filename="../../src/Utils.cpp" line="+141"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -4,13 +4,13 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+225"/> <location filename="../../src/ChatPage.cpp" line="+226"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation>: %1</translation> <translation>: %1</translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+866"/> <location line="+888"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation>: %1</translation> <translation>: %1</translation>
</message> </message>
@ -50,12 +50,32 @@
<translation>: %1</translation> <translation>: %1</translation>
</message> </message>
<message> <message>
<location line="-791"/> <location line="-813"/>
<source>Failed to upload media. Please try again.</source> <source>Failed to upload media. Please try again.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+404"/> <location line="+296"/>
<source>Cache migration failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+111"/>
<source>Failed to restore OLM account. Please login again.</source> <source>Failed to restore OLM account. Please login again.</source>
<translation>OLMアカウントを復元できませんでした</translation> <translation>OLMアカウントを復元できませんでした</translation>
</message> </message>
@ -71,7 +91,7 @@
</message> </message>
<message> <message>
<location line="+51"/> <location line="+51"/>
<location line="+210"/> <location line="+215"/>
<source>Please try to login again: %1</source> <source>Please try to login again: %1</source>
<translation>: %1</translation> <translation>: %1</translation>
</message> </message>
@ -355,7 +375,7 @@
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+2311"/> <location filename="../../src/Cache.cpp" line="+2213"/>
<source>no version stored</source> <source>no version stored</source>
<translation></translation> <translation></translation>
</message> </message>
@ -368,7 +388,7 @@
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+158"/> <location line="+160"/>
<source>Accept</source> <source>Accept</source>
<translation></translation> <translation></translation>
</message> </message>
@ -471,7 +491,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+766"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+773"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation>-- () --</translation> <translation>-- () --</translation>
@ -489,7 +509,7 @@
<translation type="unfinished">-- (%1) --</translation> <translation type="unfinished">-- (%1) --</translation>
</message> </message>
<message> <message>
<location line="+89"/> <location line="+99"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation>: %1</translation> <translation>: %1</translation>
</message> </message>
@ -514,7 +534,7 @@
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="-600"/> <location line="-610"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished">-- () --</translation> <translation type="unfinished">-- () --</translation>
@ -526,7 +546,7 @@
<translation type="unfinished">-- () --</translation> <translation type="unfinished">-- () --</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+650"/> <location line="+660"/>
<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>
@ -676,7 +696,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+48"/> <location filename="../qml/TimelineView.qml" line="+52"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -970,7 +990,7 @@
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+138"/> <location filename="../../src/Utils.cpp" line="+141"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation></translation> <translation></translation>
</message> </message>

View File

@ -4,13 +4,13 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+225"/> <location filename="../../src/ChatPage.cpp" line="+226"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+866"/> <location line="+888"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -50,12 +50,32 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-791"/> <location line="-813"/>
<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>
<message> <message>
<location line="+404"/> <location line="+296"/>
<source>Cache migration failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+111"/>
<source>Failed to restore OLM account. Please login again.</source> <source>Failed to restore OLM account. Please login again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -71,7 +91,7 @@
</message> </message>
<message> <message>
<location line="+51"/> <location line="+51"/>
<location line="+210"/> <location line="+215"/>
<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>
@ -355,7 +375,7 @@
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+2311"/> <location filename="../../src/Cache.cpp" line="+2213"/>
<source>no version stored</source> <source>no version stored</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -368,7 +388,7 @@
<translation>Kamer verlaten</translation> <translation>Kamer verlaten</translation>
</message> </message>
<message> <message>
<location line="+158"/> <location line="+160"/>
<source>Accept</source> <source>Accept</source>
<translation>Accepteren</translation> <translation>Accepteren</translation>
</message> </message>
@ -471,7 +491,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+766"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+773"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -489,7 +509,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+89"/> <location line="+99"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -514,7 +534,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-600"/> <location line="-610"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -526,7 +546,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+650"/> <location line="+660"/>
<source>%1 and %2 are typing.</source> <source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished"> <translation type="unfinished">
@ -677,7 +697,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+48"/> <location filename="../qml/TimelineView.qml" line="+52"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -971,7 +991,7 @@
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+138"/> <location filename="../../src/Utils.cpp" line="+141"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -4,13 +4,13 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+225"/> <location filename="../../src/ChatPage.cpp" line="+226"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+866"/> <location line="+888"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -50,12 +50,32 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-791"/> <location line="-813"/>
<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>
<message> <message>
<location line="+404"/> <location line="+296"/>
<source>Cache migration failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+111"/>
<source>Failed to restore OLM account. Please login again.</source> <source>Failed to restore OLM account. Please login again.</source>
<translation>Nie udało się przywrócić konta OLM. Spróbuj zalogować się ponownie.</translation> <translation>Nie udało się przywrócić konta OLM. Spróbuj zalogować się ponownie.</translation>
</message> </message>
@ -71,7 +91,7 @@
</message> </message>
<message> <message>
<location line="+51"/> <location line="+51"/>
<location line="+210"/> <location line="+215"/>
<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>
@ -355,7 +375,7 @@
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+2311"/> <location filename="../../src/Cache.cpp" line="+2213"/>
<source>no version stored</source> <source>no version stored</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -368,7 +388,7 @@
<translation>Opuść pokój</translation> <translation>Opuść pokój</translation>
</message> </message>
<message> <message>
<location line="+158"/> <location line="+160"/>
<source>Accept</source> <source>Accept</source>
<translation>Akceptuj</translation> <translation>Akceptuj</translation>
</message> </message>
@ -471,7 +491,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+766"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+773"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -489,7 +509,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+89"/> <location line="+99"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation type="unfinished">Redagowanie wiadomości nie powiodło się: %1</translation> <translation type="unfinished">Redagowanie wiadomości nie powiodło się: %1</translation>
</message> </message>
@ -514,7 +534,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-600"/> <location line="-610"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -526,7 +546,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+650"/> <location line="+660"/>
<source>%1 and %2 are typing.</source> <source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished"> <translation type="unfinished">
@ -678,7 +698,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+48"/> <location filename="../qml/TimelineView.qml" line="+52"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -972,7 +992,7 @@
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+138"/> <location filename="../../src/Utils.cpp" line="+141"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -4,13 +4,13 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+225"/> <location filename="../../src/ChatPage.cpp" line="+226"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+866"/> <location line="+888"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -50,12 +50,32 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-791"/> <location line="-813"/>
<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>
<message> <message>
<location line="+404"/> <location line="+296"/>
<source>Cache migration failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+111"/>
<source>Failed to restore OLM account. Please login again.</source> <source>Failed to restore OLM account. Please login again.</source>
<translation>Не удалось восстановить учетную запись OLM. Пожалуйста, войдите снова.</translation> <translation>Не удалось восстановить учетную запись OLM. Пожалуйста, войдите снова.</translation>
</message> </message>
@ -71,7 +91,7 @@
</message> </message>
<message> <message>
<location line="+51"/> <location line="+51"/>
<location line="+210"/> <location line="+215"/>
<source>Please try to login again: %1</source> <source>Please try to login again: %1</source>
<translation>Повторите попытку входа: %1</translation> <translation>Повторите попытку входа: %1</translation>
</message> </message>
@ -355,7 +375,7 @@
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+2311"/> <location filename="../../src/Cache.cpp" line="+2213"/>
<source>no version stored</source> <source>no version stored</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -368,7 +388,7 @@
<translation>Покинуть комнату</translation> <translation>Покинуть комнату</translation>
</message> </message>
<message> <message>
<location line="+158"/> <location line="+160"/>
<source>Accept</source> <source>Accept</source>
<translation>Принять</translation> <translation>Принять</translation>
</message> </message>
@ -471,7 +491,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+766"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+773"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -489,7 +509,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+89"/> <location line="+99"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation type="unfinished">Ошибка редактирования сообщения: %1</translation> <translation type="unfinished">Ошибка редактирования сообщения: %1</translation>
</message> </message>
@ -514,7 +534,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-600"/> <location line="-610"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -526,7 +546,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+650"/> <location line="+660"/>
<source>%1 and %2 are typing.</source> <source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished"> <translation type="unfinished">
@ -678,7 +698,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+48"/> <location filename="../qml/TimelineView.qml" line="+52"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -973,7 +993,7 @@
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+138"/> <location filename="../../src/Utils.cpp" line="+141"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -4,13 +4,13 @@
<context> <context>
<name>ChatPage</name> <name>ChatPage</name>
<message> <message>
<location filename="../../src/ChatPage.cpp" line="+225"/> <location filename="../../src/ChatPage.cpp" line="+226"/>
<source>Failed to invite user: %1</source> <source>Failed to invite user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<location line="+866"/> <location line="+888"/>
<source>Invited user: %1</source> <source>Invited user: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -50,12 +50,32 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-791"/> <location line="-813"/>
<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>
<message> <message>
<location line="+404"/> <location line="+296"/>
<source>Cache migration failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+1"/>
<source>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+111"/>
<source>Failed to restore OLM account. Please login again.</source> <source>Failed to restore OLM account. Please login again.</source>
<translation> OLM </translation> <translation> OLM </translation>
</message> </message>
@ -71,7 +91,7 @@
</message> </message>
<message> <message>
<location line="+51"/> <location line="+51"/>
<location line="+210"/> <location line="+215"/>
<source>Please try to login again: %1</source> <source>Please try to login again: %1</source>
<translation>%1</translation> <translation>%1</translation>
</message> </message>
@ -355,7 +375,7 @@
<context> <context>
<name>RoomInfo</name> <name>RoomInfo</name>
<message> <message>
<location filename="../../src/Cache.cpp" line="+2311"/> <location filename="../../src/Cache.cpp" line="+2213"/>
<source>no version stored</source> <source>no version stored</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -368,7 +388,7 @@
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+158"/> <location line="+160"/>
<source>Accept</source> <source>Accept</source>
<translation></translation> <translation></translation>
</message> </message>
@ -471,7 +491,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+766"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+773"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <source>-- Decryption Error (failed to communicate with DB) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -489,7 +509,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+89"/> <location line="+99"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation type="unfinished">%1</translation> <translation type="unfinished">%1</translation>
</message> </message>
@ -514,7 +534,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-600"/> <location line="-610"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -526,7 +546,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+650"/> <location line="+660"/>
<source>%1 and %2 are typing.</source> <source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished"> <translation type="unfinished">
@ -676,7 +696,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+48"/> <location filename="../qml/TimelineView.qml" line="+52"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -970,7 +990,7 @@
<context> <context>
<name>descriptiveTime</name> <name>descriptiveTime</name>
<message> <message>
<location filename="../../src/Utils.cpp" line="+138"/> <location filename="../../src/Utils.cpp" line="+141"/>
<source>Yesterday</source> <source>Yesterday</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -665,8 +665,15 @@ Cache::deleteData()
} }
} }
//! migrates db to the current format
bool bool
Cache::isFormatValid() Cache::runMigrations()
{
return true;
}
cache::CacheVersion
Cache::formatVersion()
{ {
auto txn = lmdb::txn::begin(env_, nullptr, MDB_RDONLY); auto txn = lmdb::txn::begin(env_, nullptr, MDB_RDONLY);
@ -676,18 +683,16 @@ Cache::isFormatValid()
txn.commit(); txn.commit();
if (!res) if (!res)
return false; return cache::CacheVersion::Older;
std::string stored_version(current_version.data(), current_version.size()); std::string stored_version(current_version.data(), current_version.size());
if (stored_version != CURRENT_CACHE_FORMAT_VERSION) { if (stored_version < CURRENT_CACHE_FORMAT_VERSION)
nhlog::db()->warn("breaking changes in the cache format. stored: {}, current: {}", return cache::CacheVersion::Older;
stored_version, else if (stored_version > CURRENT_CACHE_FORMAT_VERSION)
CURRENT_CACHE_FORMAT_VERSION); return cache::CacheVersion::Older;
return false; else
} return cache::CacheVersion::Current;
return true;
} }
void void
@ -2468,10 +2473,17 @@ setup()
} }
bool bool
isFormatValid() runMigrations()
{ {
return instance_->isFormatValid(); return instance_->runMigrations();
} }
cache::CacheVersion
formatVersion()
{
return instance_->formatVersion();
}
void void
setCurrentFormat() setCurrentFormat()
{ {

View File

@ -111,10 +111,15 @@ removeRoom(const QString &roomid);
void void
setup(); setup();
bool //! returns if the format is current, older or newer
isFormatValid(); cache::CacheVersion
formatVersion();
//! set the format version to the current version
void void
setCurrentFormat(); setCurrentFormat();
//! migrates db to the current format
bool
runMigrations();
std::map<QString, mtx::responses::Timeline> std::map<QString, mtx::responses::Timeline>
roomMessages(); roomMessages();

View File

@ -8,6 +8,15 @@
#include <mtx/events/join_rules.hpp> #include <mtx/events/join_rules.hpp>
namespace cache {
enum class CacheVersion : int
{
Older = -1,
Current = 0,
Newer = 1,
};
}
struct RoomMember struct RoomMember
{ {
QString user_id; QString user_id;

View File

@ -102,8 +102,9 @@ public:
void removeRoom(const std::string &roomid); void removeRoom(const std::string &roomid);
void setup(); void setup();
bool isFormatValid(); cache::CacheVersion formatVersion();
void setCurrentFormat(); void setCurrentFormat();
bool runMigrations();
std::map<QString, mtx::responses::Timeline> roomMessages(); std::map<QString, mtx::responses::Timeline> roomMessages();

View File

@ -17,6 +17,7 @@
#include <QApplication> #include <QApplication>
#include <QImageReader> #include <QImageReader>
#include <QMessageBox>
#include <QSettings> #include <QSettings>
#include <QShortcut> #include <QShortcut>
#include <QtConcurrent> #include <QtConcurrent>
@ -642,20 +643,37 @@ ChatPage::bootstrap(QString userid, QString homeserver, QString token)
&NotificationsManager::removeNotification); &NotificationsManager::removeNotification);
const bool isInitialized = cache::isInitialized(); const bool isInitialized = cache::isInitialized();
const bool isValid = cache::isFormatValid(); const auto cacheVersion = cache::formatVersion();
if (!isInitialized) { if (!isInitialized) {
cache::setCurrentFormat(); cache::setCurrentFormat();
} else if (isInitialized && !isValid) { } else {
// TODO: Deleting session data but keep using the if (cacheVersion == cache::CacheVersion::Current) {
// same device doesn't work. loadStateFromCache();
cache::deleteData(); return;
} else if (cacheVersion == cache::CacheVersion::Older) {
cache::init(userid); if (!cache::runMigrations()) {
cache::setCurrentFormat(); QMessageBox::critical(
} else if (isInitialized) { this,
loadStateFromCache(); tr("Cache migration failed!"),
return; tr("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"));
QCoreApplication::quit();
}
loadStateFromCache();
return;
} else if (cacheVersion == cache::CacheVersion::Newer) {
QMessageBox::critical(
this,
tr("Incompatible cache version"),
tr("The cache on your disk is newer than this version of Nheko "
"supports. Please update or clear your cache."));
QCoreApplication::quit();
return;
}
} }
} catch (const lmdb::error &e) { } catch (const lmdb::error &e) {