summary refs log tree commit diff
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2021-11-03 23:44:55 +0100
committerNicolas Werner <nicolas.werner@hotmail.de>2021-11-03 23:44:55 +0100
commite1b9a0c61949b85fa1396681e3ed8b107f69e24b (patch)
tree91b1c9f8ab371013f173377eb6a60bbae9b0f905
parentUse ItemDelegate for CommunitiesList (diff)
downloadnheko-e1b9a0c61949b85fa1396681e3ed8b107f69e24b.tar.xz
Update translations
-rw-r--r--resources/langs/nheko_cs.ts672
-rw-r--r--resources/langs/nheko_de.ts678
-rw-r--r--resources/langs/nheko_el.ts672
-rw-r--r--resources/langs/nheko_en.ts680
-rw-r--r--resources/langs/nheko_eo.ts676
-rw-r--r--resources/langs/nheko_es.ts672
-rw-r--r--resources/langs/nheko_et.ts678
-rw-r--r--resources/langs/nheko_fi.ts678
-rw-r--r--resources/langs/nheko_fr.ts784
-rw-r--r--resources/langs/nheko_hu.ts672
-rw-r--r--resources/langs/nheko_id.ts678
-rw-r--r--resources/langs/nheko_it.ts672
-rw-r--r--resources/langs/nheko_ja.ts672
-rw-r--r--resources/langs/nheko_ml.ts672
-rw-r--r--resources/langs/nheko_nl.ts686
-rw-r--r--resources/langs/nheko_pl.ts680
-rw-r--r--resources/langs/nheko_pt_BR.ts672
-rw-r--r--resources/langs/nheko_pt_PT.ts690
-rw-r--r--resources/langs/nheko_ro.ts672
-rw-r--r--resources/langs/nheko_ru.ts672
-rw-r--r--resources/langs/nheko_si.ts672
-rw-r--r--resources/langs/nheko_sv.ts672
-rw-r--r--resources/langs/nheko_zh_CN.ts672
-rw-r--r--src/Cache.cpp10
24 files changed, 10059 insertions, 5595 deletions
diff --git a/resources/langs/nheko_cs.ts b/resources/langs/nheko_cs.ts
index b0307278..9d5a913c 100644
--- a/resources/langs/nheko_cs.ts
+++ b/resources/langs/nheko_cs.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -151,23 +151,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -182,7 +182,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -197,7 +197,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -217,7 +217,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -259,23 +259,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation type="unfinished"></translation>
     </message>
@@ -285,17 +285,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -364,12 +364,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation type="unfinished"></translation>
     </message>
@@ -612,7 +621,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation type="unfinished"></translation>
     </message>
@@ -622,7 +631,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation type="unfinished"></translation>
     </message>
@@ -697,7 +706,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation type="unfinished"></translation>
     </message>
@@ -712,7 +721,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation type="unfinished"></translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation type="unfinished"></translation>
     </message>
@@ -745,7 +754,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -846,25 +881,25 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -874,27 +909,45 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+192"/>
@@ -1019,7 +1072,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1039,7 +1092,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation type="unfinished"></translation>
@@ -1129,7 +1182,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1178,7 +1236,7 @@ Example: https://server.my:8787</source>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
+        <source>You are about to notify the whole room</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1186,30 +1244,18 @@ Example: https://server.my:8787</source>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1239,7 +1285,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1270,7 +1316,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1288,7 +1334,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1296,7 +1342,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1304,18 +1350,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <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="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1345,37 +1391,22 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1385,7 +1416,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1416,20 +1447,25 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1447,16 +1483,6 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation type="unfinished"></translation>
@@ -1487,7 +1513,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1512,7 +1538,30 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1540,12 +1589,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation type="unfinished">
@@ -1583,12 +1632,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1694,12 +1743,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1719,8 +1768,8 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1728,22 +1777,50 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1800,20 +1877,98 @@ Example: https://server.my:8787</source>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
@@ -1829,7 +1984,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1886,18 +2041,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1917,7 +2072,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation type="unfinished">
@@ -1927,7 +2082,7 @@ Example: https://server.my:8787</source>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1967,12 +2122,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1982,12 +2137,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2002,12 +2157,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2037,27 +2192,27 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2094,7 +2249,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2120,27 +2280,19 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2151,7 +2303,7 @@ Example: https://server.my:8787</source>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -2199,9 +2351,34 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2211,7 +2388,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2221,7 +2398,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2231,7 +2408,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2241,18 +2418,18 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2267,12 +2444,42 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2295,8 +2502,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2304,7 +2511,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2314,22 +2521,22 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2354,7 +2561,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2370,6 +2577,16 @@ OFF - square, ON - Circle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation type="unfinished"></translation>
@@ -2397,7 +2614,7 @@ be blurred.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2452,7 +2669,7 @@ If this is on, rooms which have active notifications (the small circle with a nu
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2463,7 +2680,7 @@ Status is displayed next to timestamps.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2550,7 +2767,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2560,7 +2777,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2570,7 +2787,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2645,7 +2862,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2665,17 +2882,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2715,7 +2932,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2745,14 +2962,14 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2760,19 +2977,19 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2788,6 +3005,14 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2841,7 +3066,7 @@ This usually causes the application icon in the task bar to animate in some fash
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2913,37 +3138,6 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3007,47 +3201,47 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3062,7 +3256,7 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3082,27 +3276,27 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3110,7 +3304,7 @@ Media size: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_de.ts b/resources/langs/nheko_de.ts
index bf9068d2..538f67e2 100644
--- a/resources/langs/nheko_de.ts
+++ b/resources/langs/nheko_de.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation>Wählt...</translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>Videoanruf</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>Videoanruf</translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation>Ganzer Bildschirm</translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>Nutzer konnte nicht eingeladen werden: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>Eingeladener Benutzer: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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>Das Migrieren des Caches auf die aktuelle Version ist fehlgeschlagen. Das kann verschiedene Gründe als Ursache haben. Bitte melde den Fehler und verwende in der Zwischenzeit eine ältere Version. Alternativ kannst du den Cache manuell löschen.</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation>Beitritt bestätigen</translation>
     </message>
@@ -151,23 +151,23 @@
         <translation>Möchtest du wirklich %1 beitreten?</translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>Raum %1 erzeugt.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>Einladung bestätigen</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Nutzer %1 (%2) wirklich einladen?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation>Einladung von %1 in Raum %2 fehlgeschlagen: %3</translation>
     </message>
@@ -182,7 +182,7 @@
         <translation>Nutzer %1 (%2) wirklich kicken?</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>Gekickter Benutzer: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation>Nutzer %1 (%2) wirklich bannen?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>%1 konnte nicht aus %2 verbannt werden: %3</translation>
     </message>
@@ -217,7 +217,7 @@
         <translation>Bann des Nutzers %1 (%2) wirklich aufheben?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation>Verbannung von %1 aus %2 konnte nicht aufgehoben werden: %3</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Verbannung aufgehoben: %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation>Möchtest du wirklich eine private Konversation mit %1 beginnen?</translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation>Migration des Caches fehlgeschlagen!</translation>
     </message>
@@ -259,23 +259,23 @@
         <translation>Gespeicherte Nachrichten konnten nicht wiederhergestellt werden. Bitte melde Dich erneut an.</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>Fehler beim Setup der Verschlüsselungsschlüssel. Servermeldung: %1 %2. Bitte versuche es später erneut.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>Bitte melde dich erneut an: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>Konnte Raum nicht betreten: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>Du hast den Raum betreten</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation>Einladung konnte nicht zurückgezogen werden: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>Raum konnte nicht erstellt werden: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>Konnte den Raum nicht verlassen: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation>Kontte %1 nicht aus %2 entfernen: %3</translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation>Geheimnisse entschlüsseln</translation>
     </message>
@@ -364,12 +364,12 @@
         <translation>Gib deinen Wiederherstellungsschlüssel oder dein Wiederherstellungspasswort ein um deine Geheimnisse zu entschlüsseln:</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation>Gib deinen Wiederherstellungsschlüssel oder dein Wiederherstellungspasswort mit dem Namen %1 ein um deine Geheimnisse zu entschlüsseln:</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation>Entschlüsseln fehlgeschlagen</translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation>Verifizierung abgelaufen, die andere Seite antwortet nicht.</translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation>Die andere Seite hat die Verifizierung abgebrochen.</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
@@ -612,7 +621,7 @@
         <translation>Bilderpackung bearbeiten</translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation>Bilder hinzufügen</translation>
     </message>
@@ -622,7 +631,7 @@
         <translation>Sticker (*.png *.webp *.gif *.jpg *.jpeg)</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation>Eindeutiger Name</translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation>Als Emoji verwenden</translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation>Als Sticker verwenden</translation>
     </message>
@@ -697,7 +706,7 @@
         <translation>Neue Packung</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation>Private Packung</translation>
     </message>
@@ -712,7 +721,7 @@
         <translation>Global aktivierte Packung</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation>Global aktivieren</translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation>Datei auswählen</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation>Alle Dateien (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation>Medienupload fehlgeschlagen. Bitte versuche es erneut.</translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation>Lade Benutzer in %1 ein</translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished">Raum-ID oder -Alias</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">Raum verlassen</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished">Willst du wirklich den Raum verlassen?</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -850,25 +885,25 @@ Beispiel: https://mein.server:8787</translation>
         <translation>ANMELDEN</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation>Du hast eine invalide Matrix ID eingegeben. Normalerwise sehen die so aus: @joe:matrix.org</translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Automatische Erkennung fehlgeschlagen. Antwort war fehlerhaft.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Automatische Erkennung fehlgeschlagen. Unbekannter Fehler bei Anfrage .well-known.</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Benötigte Ansprechpunkte nicht auffindbar. Möglicherweise kein Matrixserver.</translation>
     </message>
@@ -878,27 +913,45 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Erhaltene Antwort war fehlerhaft. Bitte Homeserverdomain prüfen.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>Ein unbekannter Fehler ist aufgetreten. Bitte Homeserverdomain prüfen.</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation>SSO ANMELDUNG</translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>Leeres Passwort</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation>SSO Anmeldung fehlgeschlagen</translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+174"/>
@@ -1023,7 +1076,7 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation>Bearbeiten</translation>
     </message>
@@ -1043,7 +1096,7 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Optionen</translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation>&amp;Kopieren</translation>
@@ -1133,7 +1186,12 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Verifizierungsanfrage erhalten</translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation>Damit andere Nutzer sehen, welche Geräte tatsächlich dir gehören, kannst du sie verifizieren. Das erlaubt auch Schlüsselbackup zu nutzen ohne ein Passwort einzugeben. %1 jetzt verifizieren?</translation>
     </message>
@@ -1182,38 +1240,26 @@ Beispiel: https://mein.server:8787</translation>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
-        <translation>Du wirst den ganzen Raum benachrichtigen</translation>
+        <source>You are about to notify the whole room</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation>%1 hat eine verschlüsselte Nachricht gesendet</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation>* %1 %2</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation>%1 hat geantwortet: %2</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation>%1: %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1243,7 +1289,7 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Kein Mikrofon gefunden.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation>Sprache</translation>
     </message>
@@ -1274,7 +1320,7 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation>Benutze ein separates profil, wodurch mehrere Accounts und Nhekoinstanzen zur gleichen Zeit verwendet werden können.</translation>
     </message>
@@ -1292,7 +1338,7 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation>Lesebestätigungen</translation>
     </message>
@@ -1300,7 +1346,7 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation>Gestern, %1</translation>
     </message>
@@ -1308,18 +1354,18 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>Benutzername</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <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="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>Passwort</translation>
     </message>
@@ -1349,37 +1395,22 @@ Beispiel: https://mein.server:8787</translation>
         <translation>REGISTRIEREN</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation>Keine unterstützten Registrierungsmethoden!</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation>Registrierungstoken</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation>Bitte gebe ein gültiges Registrierungstoken ein.</translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Automatische Erkennung fehlgeschlagen. Antwort war fehlerhaft.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Automatische Erkennung fehlgeschlagen. Unbekannter Fehler bei Anfrage .well-known.</translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Benötigte Ansprechpunkte nicht auffindbar. Möglicherweise kein Matrixserver.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation>Erhaltene Antwort war fehlerhaft. Bitte Homeserverdomain prüfen.</translation>
     </message>
@@ -1389,7 +1420,7 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Ein unbekannter Fehler ist aufgetreten. Bitte Homeserverdomain prüfen.</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>Passwort nicht lang genug (mind. 8 Zeichen)</translation>
     </message>
@@ -1420,20 +1451,25 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation>Öffentliche Räume erkunden</translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation>Suche nach öffentlichen Räumen</translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation>keine Version gespeichert</translation>
     </message>
@@ -1451,16 +1487,6 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Gib den Tag, den du verwenden willst, ein:</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation>Raum verlassen</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation>Willst du wirklich diesen Raum verlassen?</translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation>Raum verlassen</translation>
@@ -1491,7 +1517,7 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Neuen Tag erstellen...</translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation>Statusnachricht</translation>
     </message>
@@ -1516,7 +1542,30 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Abmelden</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished">Schließen</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation>Neues Gespräch beginnen</translation>
     </message>
@@ -1544,12 +1593,12 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation>Teilnehmer in %1</translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation>
@@ -1586,12 +1635,12 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation>Raumeinstellungen</translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation>%1 Teilnehmer</translation>
     </message>
@@ -1697,12 +1746,12 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Raumversion</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Aktivierung der Verschlüsselung fehlgeschlagen: %1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation>Wähle einen Avatar</translation>
     </message>
@@ -1722,8 +1771,8 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Fehler beim Lesen der Datei: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation>Hochladen des Bildes fehlgeschlagen: %s</translation>
     </message>
@@ -1731,22 +1780,50 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation>Offene Einladung.</translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation>Vorschau dieses Raums</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation>Keine Vorschau verfügbar</translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1803,20 +1880,98 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation>Verbindung zum kryptografischen Speicher fehlgeschlagen</translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
-        <translation>Nheko konnte sich nicht mit dem kryptografischen Speicher verbinden um die Geheimnisse zu speichern. Dies kann verschiedene Gründe haben. Stelle sicher, dass der D-Bus-Dienst läuft und du einen Dienst wie KWallet, Gnome Secrets oder dein Platformäquivalent konfiguriert hast. Wenn du Probleme hast, kannst du hier um Hilfe fragen: https://github.com/Nheko-Reborn/nheko/issues</translation>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation>Konnte die Bilderpackung nicht aktualisieren: %1</translation>
@@ -1832,7 +1987,7 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Konnte Bild nicht öffnen: %1</translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation>Konnte Bild nicht hochladen: %1</translation>
     </message>
@@ -1889,18 +2044,18 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation>Nachricht zurückziehen fehlgeschlagen: %1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation>Event konnte nicht verschlüsselt werden, senden wurde abgebrochen!</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation>Bild speichern</translation>
     </message>
@@ -1920,7 +2075,7 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Datei speichern</translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation>
@@ -1929,7 +2084,7 @@ Beispiel: https://mein.server:8787</translation>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation>%1 hat diesen Raum öffentlich gemacht.</translation>
     </message>
@@ -1969,12 +2124,12 @@ Beispiel: https://mein.server:8787</translation>
         <translation>%1 hat eingestellt, dass nur Teilnehmer Nachrichten in diesem Raum lesen können (ab diesem Punkt).</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation>%1 hat eingestellt, dass Teilnehmer die Historie dieses Raums lesen können ab dem Zeitpunkt, zu dem sie eingeladen wurden.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation>%1 hat eingestellt, dass Teilnehmer die Historie dieses Raums lesen können ab dem Zeitpunkt, zu dem sie beigetreten sind.</translation>
     </message>
@@ -1984,12 +2139,12 @@ Beispiel: https://mein.server:8787</translation>
         <translation>%1 hat die Berechtigungen dieses Raums bearbeitet.</translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation>%1 wurde eingeladen.</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation>%1 hat den Avatar geändert.</translation>
     </message>
@@ -2004,12 +2159,12 @@ Beispiel: https://mein.server:8787</translation>
         <translation>%1 hat den Raum betreten.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation>%1 hat den Raum durch Authorisierung von %2s Server betreten.</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 hat die Einladung abgewiesen.</translation>
     </message>
@@ -2039,27 +2194,27 @@ Beispiel: https://mein.server:8787</translation>
         <translation>%1 wurde gebannt.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation>Grund: %1</translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation>%1 hat das Anklopfen zurückgezogen.</translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation>Du bist dem Raum beigetreten.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation>%1 hat den eigenen Avatar und Namen geändert zu %2.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation>%1 hat den eigenen Namen geändert zu %2.</translation>
     </message>
@@ -2096,7 +2251,12 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Kein Raum geöffnet</translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished">Keine Vorschau verfügbar</translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation>%1 Teilnehmer</translation>
     </message>
@@ -2122,27 +2282,19 @@ Beispiel: https://mein.server:8787</translation>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation>Keinen verschlüsselten Chat mit diesem User gefunden. Erstelle einen verschlüsselten 1:1 Chat mit diesem Nutzer und versuche es erneut.</translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation>Zurück zur Raumliste</translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation>Kein Raum ausgewählt</translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation>Dieser Raum ist nicht verschlüsselt!</translation>
     </message>
@@ -2153,8 +2305,8 @@ Beispiel: https://mein.server:8787</translation>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
-        <translation>Dieser Raum beinhaltet verifizierte Geräte und Geräte, die nie ihre Identität gewechselt haben.</translation>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+2"/>
@@ -2201,9 +2353,34 @@ Beispiel: https://mein.server:8787</translation>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished">Bitte gebe ein gültiges Registrierungstoken ein.</translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation>Globales Nutzerprofil</translation>
     </message>
@@ -2213,7 +2390,7 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Raumspezifisches Nutzerprofil</translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation>Ändere das Profilbild in allen Räumen.</translation>
     </message>
@@ -2223,7 +2400,7 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Ändere das Profilbild nur in diesem Raum.</translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation>Ändere den Anzeigenamen in allen Räumen.</translation>
     </message>
@@ -2233,7 +2410,7 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Ändere den Anzeigenamen nur in diesem Raum.</translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation>Raum: %1</translation>
     </message>
@@ -2243,18 +2420,18 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Dies ist das raumspezifische Nutzerprofil. Der Anzeigename und das Profilbild kann sich von dem globalen Profil unterscheiden.</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation>Öffne das globale Profil des Nutzers.</translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation>Verifizieren</translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation>Starte eine private Unterhaltung.</translation>
     </message>
@@ -2269,12 +2446,42 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Benutzer aus dem Raum verbannen.</translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation>Verifizierung zurückziehen</translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation>Avatar wählen</translation>
     </message>
@@ -2297,8 +2504,8 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation>Standard</translation>
     </message>
@@ -2306,7 +2513,7 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>Ins Benachrichtigungsfeld minimieren</translation>
     </message>
@@ -2316,22 +2523,22 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Im Benachrichtigungsfeld starten</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>Gruppen-Seitenleiste</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation>Runde Profilbilder</translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation>Profil: %1</translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation>Standard</translation>
     </message>
@@ -2356,7 +2563,7 @@ Beispiel: https://mein.server:8787</translation>
         <translation>DOWNLOADEN</translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation>Applikation im Hintergrund weiterlaufen lassen.</translation>
     </message>
@@ -2373,6 +2580,16 @@ OFF - square, ON - Circle.</source>
 AUS - Quadratisch, AN - Kreis.</translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation>Seitenleiste mit Gruppen und Tags neben der Raumliste.</translation>
@@ -2401,7 +2618,7 @@ be blurred.</source>
         <translation>Die Zeitliste wird unscharf, wenn das Fenster den Fokus verliert.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation>Sichtschutz-Zeitbegrenzung (in Sekunden [0 - 3600])</translation>
     </message>
@@ -2461,7 +2678,7 @@ Wenn das aus ist, werden die Räume in der Raumliste rein nach dem Sendezeitpunk
 Wenn das eingeschaltet ist, werden Nachrichten mit aktiven Erwähnung zuerst sortiert (der rote Kreis). Danach kommen andere Benachrichtigungen (weißer Kreis) und zuletzt stummgeschaltete Räume sortiert nach deren Zeitstempel.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>Lesebestätigungen</translation>
     </message>
@@ -2473,7 +2690,7 @@ Status is displayed next to timestamps.</source>
 Der Status wird neben der Nachricht angezeigt.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation>Sende Nachrichten als Markdown formatiert</translation>
     </message>
@@ -2562,7 +2779,7 @@ Normalerweise animiert das den Taskbaricon oder färbt das Fenster orange ein.</
         <translation>Speichere eine Kopie der Nachrichtenschlüssel verschlüsselt auf dem Server.</translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation>Onlinenachrichtenschlüsselspeicher aktivieren</translation>
     </message>
@@ -2572,7 +2789,7 @@ Normalerweise animiert das den Taskbaricon oder färbt das Fenster orange ein.</
         <translation>Die Nhekoentwickler empfehlen aktuell nicht die Onlinesicherung zu ativieren bevor die symmetrische Methode zu verfügung steht. Trotzdem aktivieren?</translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation>IM CACHE</translation>
     </message>
@@ -2582,7 +2799,7 @@ Normalerweise animiert das den Taskbaricon oder färbt das Fenster orange ein.</
         <translation>NICHT IM CACHE</translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation>Skalierungsfaktor</translation>
     </message>
@@ -2657,7 +2874,7 @@ Normalerweise animiert das den Taskbaricon oder färbt das Fenster orange ein.</
         <translation>Gerätefingerabdruck</translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation>Sitzungsschlüssel</translation>
     </message>
@@ -2677,17 +2894,17 @@ Normalerweise animiert das den Taskbaricon oder färbt das Fenster orange ein.</
         <translation>VERSCHLÜSSELUNG</translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>ALLGEMEINES</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation>OBERFLÄCHE</translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation>Spiele Medien wie GIF oder WEBP nur ab, wenn du die Maus darüber bewegst.</translation>
     </message>
@@ -2727,7 +2944,7 @@ Normalerweise animiert das den Taskbaricon oder färbt das Fenster orange ein.</
         <translation>Der Schlüssel um andere Nutzer zu verifizieren. Wenn der lokal zwischengespeichert ist, dann werden durch eine Nutzerverifizierung alle Geräte verifiziert.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation>Selbstverifizierungsschlüssel</translation>
     </message>
@@ -2757,14 +2974,14 @@ Normalerweise animiert das den Taskbaricon oder färbt das Fenster orange ein.</
         <translation>Alle Dateien (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation>Öffne Sessions Datei</translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2772,19 +2989,19 @@ Normalerweise animiert das den Taskbaricon oder färbt das Fenster orange ein.</
         <translation>Feher</translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation>Password für Datei</translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation>Bitte gib das Passwort zum Enschlüsseln der Datei ein:</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation>Das Passwort darf nicht leer sein</translation>
     </message>
@@ -2800,6 +3017,14 @@ Normalerweise animiert das den Taskbaricon oder färbt das Fenster orange ein.</
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished">Keinen verschlüsselten Chat mit diesem User gefunden. Erstelle einen verschlüsselten 1:1 Chat mit diesem Nutzer und versuche es erneut.</translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2853,7 +3078,7 @@ Normalerweise animiert das den Taskbaricon oder färbt das Fenster orange ein.</
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation>Gestern</translation>
     </message>
@@ -2925,37 +3150,6 @@ Normalerweise animiert das den Taskbaricon oder färbt das Fenster orange ein.</
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation>Betreten</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>Abbrechen</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>Raum-ID oder -Alias</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation>Abbrechen</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>Willst du wirklich den Raum verlassen?</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3021,47 +3215,47 @@ Medien-Größe: %2
         <translation>%1 hat eine Audiodatei gesendet</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation>Du hast ein Bild gesendet</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation>%1 hat ein Bild gesendet</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation>Du hast eine Datei gesendet</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation>%1 hat eine Datei gesendet</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation>Du hast ein Video gesendet</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation>%1 hat ein Video gesendet</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation>Du hast einen Sticker gesendet</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation>%1 hat einen Sticker gesendet</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation>Du hast eine Benachrichtigung gesendet</translation>
     </message>
@@ -3076,7 +3270,7 @@ Medien-Größe: %2
         <translation>Du: %1</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation>%1: %2</translation>
     </message>
@@ -3096,27 +3290,27 @@ Medien-Größe: %2
         <translation>Du hast angerufen</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation>%1 hat angerufen</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation>Du hast einen Anruf angenommen</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation>%1 hat einen Anruf angenommen</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation>Du hast einen Anruf beendet</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation>%1 hat einen Anruf beendet</translation>
     </message>
@@ -3124,7 +3318,7 @@ Medien-Größe: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation>Unbekannter Nachrichtentyp</translation>
     </message>
diff --git a/resources/langs/nheko_el.ts b/resources/langs/nheko_el.ts
index e74a53c0..88503e86 100644
--- a/resources/langs/nheko_el.ts
+++ b/resources/langs/nheko_el.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -151,23 +151,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -182,7 +182,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -197,7 +197,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -217,7 +217,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -259,23 +259,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation type="unfinished"></translation>
     </message>
@@ -285,17 +285,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -364,12 +364,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation type="unfinished"></translation>
     </message>
@@ -612,7 +621,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation type="unfinished"></translation>
     </message>
@@ -622,7 +631,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation type="unfinished"></translation>
     </message>
@@ -697,7 +706,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation type="unfinished"></translation>
     </message>
@@ -712,7 +721,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation type="unfinished"></translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation type="unfinished">Διάλεξε ένα αρχείο</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation type="unfinished">Όλα τα αρχεία (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished">ID ή όνομα συνομιλίας</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">Βγές</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished">Είστε σίγουροι οτι θέλετε να κλείσετε τη συνομιλία;</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -846,25 +881,25 @@ Example: https://server.my:8787</source>
         <translation>ΕΙΣΟΔΟΣ</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -874,27 +909,45 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>Κενός κωδικός</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+174"/>
@@ -1019,7 +1072,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1039,7 +1092,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation type="unfinished"></translation>
@@ -1129,7 +1182,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1178,7 +1236,7 @@ Example: https://server.my:8787</source>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
+        <source>You are about to notify the whole room</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1186,30 +1244,18 @@ Example: https://server.my:8787</source>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1239,7 +1285,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1270,7 +1316,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1288,7 +1334,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1296,7 +1342,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1304,18 +1350,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>Όνομα χρήστη</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <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="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>Κωδικός</translation>
     </message>
@@ -1345,37 +1391,22 @@ Example: https://server.my:8787</source>
         <translation>ΕΓΓΡΑΦΗ</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1385,7 +1416,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>Ο κωδικός δεν αποτελείται από αρκετους χαρακτήρες</translation>
     </message>
@@ -1416,20 +1447,25 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1447,16 +1483,6 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation type="unfinished">Βγές</translation>
@@ -1487,7 +1513,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1512,7 +1538,30 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1540,12 +1589,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation type="unfinished">
@@ -1582,12 +1631,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1693,12 +1742,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1718,8 +1767,8 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1727,22 +1776,50 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1799,20 +1876,98 @@ Example: https://server.my:8787</source>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
@@ -1828,7 +1983,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1885,18 +2040,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation type="unfinished">Αποθήκευση Εικόνας</translation>
     </message>
@@ -1916,7 +2071,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation type="unfinished">
@@ -1925,7 +2080,7 @@ Example: https://server.my:8787</source>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1965,12 +2120,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1980,12 +2135,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2000,12 +2155,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2035,27 +2190,27 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2092,7 +2247,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2118,27 +2278,19 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2149,7 +2301,7 @@ Example: https://server.my:8787</source>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -2197,9 +2349,34 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2209,7 +2386,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2219,7 +2396,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2229,7 +2406,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2239,18 +2416,18 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2265,12 +2442,42 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2293,8 +2500,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2302,7 +2509,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>Ελαχιστοποίηση</translation>
     </message>
@@ -2312,22 +2519,22 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2352,7 +2559,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2368,6 +2575,16 @@ OFF - square, ON - Circle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation type="unfinished"></translation>
@@ -2395,7 +2612,7 @@ be blurred.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2450,7 +2667,7 @@ If this is on, rooms which have active notifications (the small circle with a nu
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2461,7 +2678,7 @@ Status is displayed next to timestamps.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2548,7 +2765,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2558,7 +2775,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2568,7 +2785,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2643,7 +2860,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2663,17 +2880,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>ΓΕΝΙΚΑ</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2713,7 +2930,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2743,14 +2960,14 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished">Όλα τα αρχεία (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2758,19 +2975,19 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2786,6 +3003,14 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2839,7 +3064,7 @@ This usually causes the application icon in the task bar to animate in some fash
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2911,37 +3136,6 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation type="unfinished">Άκυρο</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>ID ή όνομα συνομιλίας</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation type="unfinished">Άκυρο</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>Είστε σίγουροι οτι θέλετε να κλείσετε τη συνομιλία;</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3005,47 +3199,47 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3060,7 +3254,7 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3080,27 +3274,27 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3108,7 +3302,7 @@ Media size: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_en.ts b/resources/langs/nheko_en.ts
index 61264bb7..5768e051 100644
--- a/resources/langs/nheko_en.ts
+++ b/resources/langs/nheko_en.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation>Calling...</translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>Video Call</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>Video Call</translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation>Entire screen</translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>Failed to invite user: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>Invited user: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation>Confirm join</translation>
     </message>
@@ -151,23 +151,23 @@
         <translation>Do you really want to join %1?</translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>Room %1 created.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>Confirm invite</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Do you really want to invite %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation>Failed to invite %1 to %2: %3</translation>
     </message>
@@ -182,7 +182,7 @@
         <translation>Do you really want to kick %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>Kicked user: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation>Do you really want to ban %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>Failed to ban %1 in %2: %3</translation>
     </message>
@@ -217,7 +217,7 @@
         <translation>Do you really want to unban %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation>Failed to unban %1 in %2: %3</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Unbanned user: %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation>Do you really want to start a private chat with %1?</translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation>Cache migration failed!</translation>
     </message>
@@ -259,23 +259,23 @@
         <translation>Failed to restore save data. Please login again.</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>Please try to login again: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>Failed to join room: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>You joined the room</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation>Failed to remove invite: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>Room creation failed: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>Failed to leave room: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation>Failed to kick %1 from %2: %3</translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation>Decrypt secrets</translation>
     </message>
@@ -364,12 +364,12 @@
         <translation>Enter your recovery key or passphrase to decrypt your secrets:</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation>Enter your recovery key or passphrase called %1 to decrypt your secrets:</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation>Decryption failed</translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation>Device verification timed out.</translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation>Other party canceled the verification.</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation>Verification messages received out of order!</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation>Unknown verification error.</translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation>Close</translation>
     </message>
@@ -612,7 +621,7 @@
         <translation>Editing image pack</translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation>Add images</translation>
     </message>
@@ -622,7 +631,7 @@
         <translation>Stickers (*.png *.webp *.gif *.jpg *.jpeg)</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation>State key</translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation>Use as Emoji</translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation>Use as Sticker</translation>
     </message>
@@ -697,7 +706,7 @@
         <translation>New room pack</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation>Private pack</translation>
     </message>
@@ -712,7 +721,7 @@
         <translation>Globally enabled pack</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation>Enable globally</translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation>Select a file</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation>All Files (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation>Failed to upload media. Please try again.</translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation>Invite users to %1</translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation>Join room</translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation>Room ID or alias</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation>Leave room</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation>Are you sure you want to leave?</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -850,25 +885,25 @@ Example: https://server.my:8787</translation>
         <translation>LOGIN</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation>You have entered an invalid Matrix ID  e.g @joe:matrix.org</translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Autodiscovery failed. Received malformed response.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Autodiscovery failed. Unknown error while requesting .well-known.</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <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>
     </message>
@@ -878,27 +913,45 @@ Example: https://server.my:8787</translation>
         <translation>Received malformed response. Make sure the homeserver domain is valid.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>An unknown error occured. Make sure the homeserver domain is valid.</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation>SSO LOGIN</translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>Empty password</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation>SSO login failed</translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation>Log out</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation>A call is in progress. Log out?</translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation>Are you sure you want to log out?</translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+192"/>
@@ -1023,7 +1076,7 @@ Example: https://server.my:8787</translation>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation>Edit</translation>
     </message>
@@ -1043,7 +1096,7 @@ Example: https://server.my:8787</translation>
         <translation>Options</translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation>&amp;Copy</translation>
@@ -1133,7 +1186,12 @@ Example: https://server.my:8787</translation>
         <translation>Received Verification Request</translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</translation>
     </message>
@@ -1182,38 +1240,26 @@ Example: https://server.my:8787</translation>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
-        <translation>You will be pinging the whole room</translation>
+        <source>You are about to notify the whole room</source>
+        <translation>You are about to notify the whole room</translation>
     </message>
 </context>
 <context>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation>%1 sent an encrypted message</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation>* %1 %2</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation>%1 replied: %2</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation>%1: %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1243,7 +1289,7 @@ Example: https://server.my:8787</translation>
         <translation>No microphone found.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation>Voice</translation>
     </message>
@@ -1274,7 +1320,7 @@ Example: https://server.my:8787</translation>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</translation>
     </message>
@@ -1292,7 +1338,7 @@ Example: https://server.my:8787</translation>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation>Read receipts</translation>
     </message>
@@ -1300,7 +1346,7 @@ Example: https://server.my:8787</translation>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation>Yesterday, %1</translation>
     </message>
@@ -1308,18 +1354,18 @@ Example: https://server.my:8787</translation>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>Username</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <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="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>Password</translation>
     </message>
@@ -1349,37 +1395,22 @@ Example: https://server.my:8787</translation>
         <translation>REGISTER</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation>No supported registration flows!</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation>Registration token</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation>Please enter a valid registration token.</translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Autodiscovery failed. Received malformed response.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Autodiscovery failed. Unknown error while requesting .well-known.</translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <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>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation>Received malformed response. Make sure the homeserver domain is valid.</translation>
     </message>
@@ -1389,7 +1420,7 @@ Example: https://server.my:8787</translation>
         <translation>An unknown error occured. Make sure the homeserver domain is valid.</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>Password is not long enough (min 8 chars)</translation>
     </message>
@@ -1420,20 +1451,25 @@ Example: https://server.my:8787</translation>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation>Explore Public Rooms</translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation>Search for public rooms</translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation>Choose custom homeserver</translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation>no version stored</translation>
     </message>
@@ -1451,16 +1487,6 @@ Example: https://server.my:8787</translation>
         <translation>Enter the tag you want to use:</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation>Leave room</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation>Are you sure you want to leave this room?</translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation>Leave room</translation>
@@ -1491,7 +1517,7 @@ Example: https://server.my:8787</translation>
         <translation>Create new tag...</translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation>Status Message</translation>
     </message>
@@ -1516,7 +1542,30 @@ Example: https://server.my:8787</translation>
         <translation>Logout</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation>Encryption not set up</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation>Unverified login</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation>Please verify your other devices</translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation>Close</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation>Start a new chat</translation>
     </message>
@@ -1544,12 +1593,12 @@ Example: https://server.my:8787</translation>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation>Members of %1</translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation>
@@ -1586,12 +1635,12 @@ Example: https://server.my:8787</translation>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation>Room Settings</translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation>%1 member(s)</translation>
     </message>
@@ -1697,12 +1746,12 @@ Example: https://server.my:8787</translation>
         <translation>Room Version</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Failed to enable encryption: %1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation>Select an avatar</translation>
     </message>
@@ -1722,8 +1771,8 @@ Example: https://server.my:8787</translation>
         <translation>Error while reading file: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation>Failed to upload image: %s</translation>
     </message>
@@ -1731,22 +1780,50 @@ Example: https://server.my:8787</translation>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation>Pending invite.</translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation>Previewing this room</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation>No preview available</translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation>Please enter your login password to continue:</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation>Please enter a valid email address to continue:</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation>Please enter a valid phone number to continue:</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation>Please enter the token, which has been sent to you:</translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation>Wait for the confirmation link to arrive, then continue.</translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1803,20 +1880,100 @@ Example: https://server.my:8787</translation>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation>Failed to connect to secret storage</translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
-        <translation>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</translation>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation>Encryption setup successfully</translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation>Failed to setup encryption: %1</translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation>Setup Encryption</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation>Activate Encryption</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation>verify</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation>enter passphrase</translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation>Failed to create keys for cross-signing!</translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation>Failed to create keys for online key backup!</translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation>Failed to create keys secure server side secret storage!</translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation>Encryption Setup</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
+        <translation>Encryption setup failed: %1</translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation>Failed to update image pack: %1</translation>
@@ -1832,7 +1989,7 @@ Example: https://server.my:8787</translation>
         <translation>Failed to open image: %1</translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation>Failed to upload image: %1</translation>
     </message>
@@ -1889,18 +2046,18 @@ Example: https://server.my:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation>Message redaction failed: %1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation>Failed to encrypt event, sending aborted!</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation>Save image</translation>
     </message>
@@ -1920,7 +2077,7 @@ Example: https://server.my:8787</translation>
         <translation>Save file</translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation>
@@ -1929,7 +2086,7 @@ Example: https://server.my:8787</translation>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation>%1 opened the room to the public.</translation>
     </message>
@@ -1969,12 +2126,12 @@ Example: https://server.my:8787</translation>
         <translation>%1 set the room history visible to members from this point on.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation>%1 set the room history visible to members since they were invited.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation>%1 set the room history visible to members since they joined the room.</translation>
     </message>
@@ -1984,12 +2141,12 @@ Example: https://server.my:8787</translation>
         <translation>%1 has changed the room&apos;s permissions.</translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation>%1 was invited.</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation>%1 changed their avatar.</translation>
     </message>
@@ -2004,12 +2161,12 @@ Example: https://server.my:8787</translation>
         <translation>%1 joined.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation>%1 joined via authorisation from %2&apos;s server.</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 rejected their invite.</translation>
     </message>
@@ -2039,27 +2196,27 @@ Example: https://server.my:8787</translation>
         <translation>%1 was banned.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation>Reason: %1</translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation>%1 redacted their knock.</translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation>You joined this room.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation>%1 has changed their avatar and changed their display name to %2.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation>%1 has changed their display name to %2.</translation>
     </message>
@@ -2096,7 +2253,12 @@ Example: https://server.my:8787</translation>
         <translation>No room open</translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation>No preview available</translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation>%1 member(s)</translation>
     </message>
@@ -2122,27 +2284,19 @@ Example: https://server.my:8787</translation>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation>Back to room list</translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation>No room selected</translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation>This room is not encrypted!</translation>
     </message>
@@ -2153,8 +2307,8 @@ Example: https://server.my:8787</translation>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
-        <translation>This rooms contain verified devices and devices which have never changed their master key.</translation>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
+        <translation>This room contains verified devices and devices which have never changed their master key.</translation>
     </message>
     <message>
         <location line="+2"/>
@@ -2201,9 +2355,34 @@ Example: https://server.my:8787</translation>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation>No available registration flows!</translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation>Registration aborted</translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation>Please enter a valid registration token.</translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation>Invalid token</translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation>Global User Profile</translation>
     </message>
@@ -2213,7 +2392,7 @@ Example: https://server.my:8787</translation>
         <translation>Room User Profile</translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation>Change avatar globally.</translation>
     </message>
@@ -2223,7 +2402,7 @@ Example: https://server.my:8787</translation>
         <translation>Change avatar. Will only apply to this room.</translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation>Change display name globally.</translation>
     </message>
@@ -2233,7 +2412,7 @@ Example: https://server.my:8787</translation>
         <translation>Change display name. Will only apply to this room.</translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation>Room: %1</translation>
     </message>
@@ -2243,18 +2422,18 @@ Example: https://server.my:8787</translation>
         <translation>This is a room-specific profile. The user&apos;s name and avatar may be different from their global versions.</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation>Open the global profile for this user.</translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation>Verify</translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation>Start a private chat.</translation>
     </message>
@@ -2269,12 +2448,42 @@ Example: https://server.my:8787</translation>
         <translation>Ban the user.</translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation>Refresh device list.</translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation>Sign out this device.</translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation>Change device name.</translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation>Last seen %1 from %2</translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation>Unverify</translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation>Sign out device %1</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation>You signed out this device.</translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation>Select an avatar</translation>
     </message>
@@ -2297,8 +2506,8 @@ Example: https://server.my:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation>Default</translation>
     </message>
@@ -2306,7 +2515,7 @@ Example: https://server.my:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>Minimize to tray</translation>
     </message>
@@ -2316,22 +2525,22 @@ Example: https://server.my:8787</translation>
         <translation>Start in tray</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>Group&apos;s sidebar</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation>Circular Avatars</translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation>profile: %1</translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation>Default</translation>
     </message>
@@ -2356,7 +2565,7 @@ Example: https://server.my:8787</translation>
         <translation>DOWNLOAD</translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation>Keep the application running in the background after closing the client window.</translation>
     </message>
@@ -2373,6 +2582,16 @@ OFF - square, ON - Circle.</source>
 OFF - square, ON - Circle.</translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation>Use identicons</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation>Display an identicon instead of a letter when a user has not set an avatar.</translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation>Show a column containing groups and tags next to the room list.</translation>
@@ -2402,7 +2621,7 @@ be blurred.</source>
 be blurred.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation>Privacy screen timeout (in seconds [0 - 3600])</translation>
     </message>
@@ -2462,7 +2681,7 @@ If this is off, the list of rooms will only be sorted by the timestamp of the la
 If this is on, rooms which have active notifications (the small circle with a number in it) will be sorted on top. Rooms, that you have muted, will still be sorted by timestamp, since you don&apos;t seem to consider them as important as the other rooms.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>Read receipts</translation>
     </message>
@@ -2474,7 +2693,7 @@ Status is displayed next to timestamps.</source>
 Status is displayed next to timestamps.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation>Send messages as Markdown</translation>
     </message>
@@ -2563,7 +2782,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Download message encryption keys from and upload to the encrypted online key backup.</translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation>Enable online key backup</translation>
     </message>
@@ -2573,7 +2792,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>The Nheko authors recommend not enabling online key backup until symmetric online key backup is available. Enable anyway?</translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation>CACHED</translation>
     </message>
@@ -2583,7 +2802,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>NOT CACHED</translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation>Scale factor</translation>
     </message>
@@ -2658,7 +2877,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Device Fingerprint</translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation>Session Keys</translation>
     </message>
@@ -2678,17 +2897,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>ENCRYPTION</translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>GENERAL</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation>INTERFACE</translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation>Plays media like GIFs or WEBPs only when explicitly hovering over them.</translation>
     </message>
@@ -2728,7 +2947,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>The key to verify other users. If it is cached, verifying a user will verify all their devices.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation>Self signing key</translation>
     </message>
@@ -2758,14 +2977,14 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>All Files (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation>Open Sessions File</translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2773,19 +2992,19 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Error</translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation>File Password</translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation>Enter the passphrase to decrypt the file:</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation>The password cannot be empty</translation>
     </message>
@@ -2801,6 +3020,14 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2854,7 +3081,7 @@ This usually causes the application icon in the task bar to animate in some fash
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation>Yesterday</translation>
     </message>
@@ -2926,37 +3153,6 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation>Join</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>Cancel</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>Room ID or alias</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation>Cancel</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>Are you sure you want to leave?</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3022,47 +3218,47 @@ Media size: %2
         <translation>%1 sent an audio clip</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation>You sent an image</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation>%1 sent an image</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation>You sent a file</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation>%1 sent a file</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation>You sent a video</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation>%1 sent a video</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation>You sent a sticker</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation>%1 sent a sticker</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation>You sent a notification</translation>
     </message>
@@ -3077,7 +3273,7 @@ Media size: %2
         <translation>You: %1</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation>%1: %2</translation>
     </message>
@@ -3097,27 +3293,27 @@ Media size: %2
         <translation>You placed a call</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation>%1 placed a call</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation>You answered a call</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation>%1 answered a call</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation>You ended a call</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation>%1 ended a call</translation>
     </message>
@@ -3125,7 +3321,7 @@ Media size: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation>Unknown Message Type</translation>
     </message>
diff --git a/resources/langs/nheko_eo.ts b/resources/langs/nheko_eo.ts
index 021751ff..0d80dbcf 100644
--- a/resources/langs/nheko_eo.ts
+++ b/resources/langs/nheko_eo.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation>Vokante…</translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>Vidvoko</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>Vidvoko</translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation>Tuta ekrano</translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>Malsukcesis inviti uzanton: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>Invitita uzanto: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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>Malsukcesis migrado de kaŝmemoro al nuna versio. Tio povas havi diversajn kialojn. Bonvolu raporti eraron kaj dume provi malpli novan version. Alternative, vi povas provi forigi la kaŝmemoron permane.</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation>Konfirmu aliĝon</translation>
     </message>
@@ -151,24 +151,24 @@
         <translation>Ĉu vi certe volas aliĝi al %1?</translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translatorcomment>I believe that the -at ending is correct here.</translatorcomment>
         <translation>Ĉambro %1 farit.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>Konfirmu inviton</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Ĉu vi certe volas inviti uzanton %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation>Malsukcesis inviti uzanton %1 al %2: %3</translation>
     </message>
@@ -183,7 +183,7 @@
         <translation>Ĉu vi certe volas forpeli uzanton %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>Forpelis uzanton: %1</translation>
     </message>
@@ -198,7 +198,7 @@
         <translation>Ĉu vi certe volas forbari uzanton %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>Malsukcesis forbari uzanton %1 en %2: %3</translation>
     </message>
@@ -218,7 +218,7 @@
         <translation>Ĉu vi certe volas malforbari uzanton %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation>Malsukcesis malforbari uzanton %1 en %2: %3</translation>
     </message>
@@ -228,12 +228,12 @@
         <translation>Malforbaris uzanton: %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation>Ĉu vi certe volas komenci privatan babilon kun %1?</translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation>Malsukcesis migrado de kaŝmemoro!</translation>
     </message>
@@ -260,23 +260,23 @@
         <translation>Malsukcesis rehavi konservitajn datumojn. Bonvolu resaluti.</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>Malsukcesis agordi ĉifrajn ŝlosilojn. Respondo de servilo: %1 %2. Bonvolu reprovi poste.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>Bonvolu provi resaluti: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>Malsukcesis aliĝi al ĉambro: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>Vi aliĝis la ĉambron</translation>
     </message>
@@ -286,17 +286,17 @@
         <translation>Malsukcesis forigi inviton: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>Malsukcesis krei ĉambron: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>Malsukcesis eliri el ĉambro: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation>Malsukcesis forpeli uzanton %1 de %2: %3</translation>
     </message>
@@ -355,7 +355,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation>Malĉifri sekretojn</translation>
     </message>
@@ -365,12 +365,12 @@
         <translation>Enigu vian rehavan ŝlosilon aŭ pasfrazon por malĉifri viajn sekretojn:</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation>Enigu vian rehavan ŝlosilon aŭ pasfrazon kun nomo %1 por malĉifri viajn sekretojn:</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation>Malsukcesis malĉifrado</translation>
     </message>
@@ -582,17 +582,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation>Trafiĝis tempolimo de aparata kontrolo.</translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation>Aliulo nuligis la kontrolon.</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation>Fermi</translation>
     </message>
@@ -613,7 +622,7 @@
         <translation>Redaktado de bildopako</translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation>Aldoni bildojn</translation>
     </message>
@@ -623,7 +632,7 @@
         <translation>Glumarkoj (*.png *.webp *.gif *.jpg *.jpeg)</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation>Identigilo (stata ŝlosilo)</translation>
     </message>
@@ -639,13 +648,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation>Uzi kiel bildosignon</translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation>Uzi kiel glumarkon</translation>
     </message>
@@ -698,7 +707,7 @@
         <translation>Nova ĉambra pako</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation>Privata pako</translation>
     </message>
@@ -713,7 +722,7 @@
         <translation>Ĉie ŝaltita pako</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation>Ŝalti ĉie</translation>
     </message>
@@ -736,7 +745,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation>Elektu dosieron</translation>
     </message>
@@ -746,7 +755,7 @@
         <translation>Ĉiuj dosieroj (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation>Malsukcesis alŝuti vidaŭdaĵojn. Bonvolu reprovi.</translation>
     </message>
@@ -754,7 +763,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation>Invitu uzantojn al %1</translation>
     </message>
@@ -786,6 +795,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished">Identigilo aŭ kromnomo de ĉambro</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">Eliri el ĉambro</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished">Ĉu vi certas, ke vi volas foriri?</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -854,25 +889,25 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>SALUTI</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation>Vi enigis nevalidan identigilon de Matrikso  ekz. @tacuo:matrix.org</translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Malsukcesis memaga trovado. Ricevis misformitan respondon.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Malsukcesis memaga trovado. Okazis nekonata eraro dum petado. .well-known.</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>La bezonataj konektaj lokoj ne troviĝis. Eble tio ne estas Matriksa servilo.</translation>
     </message>
@@ -882,27 +917,45 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Ricevis misformitan respondon. Certiĝu, ke retnomo de la hejmservilo estas valida.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>Okazis nekonata eraro. Certiĝu, ke retnomo de la hejmservilo estas valida.</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation>UNUNURA SALUTO</translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>Malplena pasvorto</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation>Malsukcesis ununura saluto</translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+174"/>
@@ -1027,7 +1080,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation>Redakti</translation>
     </message>
@@ -1047,7 +1100,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Elektebloj</translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation>&amp;Kopii</translation>
@@ -1137,7 +1190,12 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Ricevita kontrolpeto</translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation>Por vidigi al aliuloj, kiuj viaj aparatoj vere apartenas al vi, vi povas ilin kontroli. Tio ankaŭ funkciigus memagan savkopiadon de ŝlosiloj. Ĉu vi volas kontroli aparaton %1 nun?</translation>
     </message>
@@ -1186,7 +1244,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
+        <source>You are about to notify the whole room</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1194,30 +1252,18 @@ Ekzemplo: https://servilo.mia:8787</translation>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation>%1 sendis ĉifritan mesaĝon</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation>* %1 %2</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation>%1 respondis: %2</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation>%1: %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1247,7 +1293,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Neniu mikrofono troviĝis.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation>Voĉe</translation>
     </message>
@@ -1278,7 +1324,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation>Krei unikan profilon, kiu permesos al vi saluti kelkajn kontojn samtempe, kaj startigi plurajn nhekojn.</translation>
     </message>
@@ -1296,7 +1342,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation>Kvitancoj</translation>
     </message>
@@ -1304,7 +1350,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation>Hieraŭ, %1</translation>
     </message>
@@ -1312,18 +1358,18 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>Uzantonomo</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
         <translation>La uzantonomo devas ne esti malplena, kaj devas enhavi nur la signojn a–z, 0–9, ., _, =, -, kaj /.</translation>
     </message>
     <message>
-        <location line="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>Pasvorto</translation>
     </message>
@@ -1353,37 +1399,22 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>REGISTRIĜI</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation>Neniuj subtenataj manieroj de registriĝo!</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation>Registra peco</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation>Bonvolu enigi validan registran pecon.</translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Malsukcesis memaga trovado. Ricevis misformitan respondon.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Malsukcesis memaga trovado. Okazis nekonata eraro dum petado. .well-known.</translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>La bezonataj konektaj lokoj ne troviĝis. Eble tio ne estas Matriksa servilo.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation>Ricevis misformitan respondon. Certiĝu, ke retnomo de la hejmservilo estas valida.</translation>
     </message>
@@ -1393,7 +1424,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Okazis nekonata eraro. Certiĝu, ke retnomo de la hejmservilo estas valida.</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>Pasvorto nesufiĉe longas (almenaŭ 8 signoj)</translation>
     </message>
@@ -1424,20 +1455,25 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation>Esplori publikajn ĉambrojn</translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation>Serĉi publikajn ĉambrojn</translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation>neniu versio konservita</translation>
     </message>
@@ -1455,16 +1491,6 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Enigu la etikedon, kiun vi volas uzi:</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation>Eliri el ĉambro</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation>Ĉu vi certas, ke vi volas eliri el ĉi tiu ĉambro?</translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation>Eliri el ĉambro</translation>
@@ -1495,7 +1521,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Krei novan etikedon…</translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation>Statmesaĝo</translation>
     </message>
@@ -1520,7 +1546,30 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Adiaŭi</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished">Fermi</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation>Komenci novan babilon</translation>
     </message>
@@ -1548,12 +1597,12 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation>Anoj de %1</translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation>
@@ -1590,12 +1639,12 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation>Agordoj de ĉambro</translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation>%1 ĉambrano(j)</translation>
     </message>
@@ -1701,12 +1750,12 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Versio de ĉambro</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Malsukcesis ŝalti ĉifradon: %1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation>Elektu bildon de ĉambro</translation>
     </message>
@@ -1726,8 +1775,8 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Eraris legado de dosiero: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation>Malsukcesis alŝuti bildon: %s</translation>
     </message>
@@ -1735,22 +1784,50 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation>Atendanta invito.</translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation>Antaŭrigardante ĉi tiun ĉambron</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation>Neniu antaŭrigardo disponeblas</translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1807,20 +1884,98 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation>Malsukcesis konektiĝi al sekreta deponejo</translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
-        <translation>Nheko ne povis konektiĝi al la sekreta deponejo por konservi ĉifrajn sekretojn. Tio povas havi diversajn kialojn. Kontrolu, ĉu la servo «D-Bus» funkcias, kaj ĉu vi agordis kroman servon kiel «KWallet», «Gnome Secrets», aŭ similan servon por via sistemo. Se daŭras problemoj, laŭplaĉe raportu ilin tie ĉi: https://github.com/Nheko-Reborn/nheko/issues</translation>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation>Malsukcesis ĝisdatigi bildopakon: %1</translation>
@@ -1836,7 +1991,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Malsukcesis malfermi bildon: %1</translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation>Malsukcesis alŝuti bildon: %1</translation>
     </message>
@@ -1894,18 +2049,18 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation>Malsukcesis redaktado de mesaĝo: %1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation>Malsukcesis ĉifri okazon; sendado nuliĝis!</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation>Konservi bildon</translation>
     </message>
@@ -1925,7 +2080,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Konservi dosieron</translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation>
@@ -1934,7 +2089,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation>%1 malfermis la ĉambron al publiko.</translation>
     </message>
@@ -1974,12 +2129,12 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>%1 videbligis historion de la ĉambro al ĉiuj ĉambranoj ekde nun.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation>%1 videbligis historion de la ĉambro al ĉambranoj ekde ties invito.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation>%1 videbligis historion de la ĉambro al ĉambranoj ekde ties aliĝo.</translation>
     </message>
@@ -1989,13 +2144,13 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>%1 ŝanĝis permesojn de la ĉambro.</translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translatorcomment>%1 estis invitata.</translatorcomment>
         <translation>%1 estis invitita.</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translatorcomment>%1 ŝanĝis sian avataron.</translatorcomment>
         <translation>%1 ŝanĝis sian profilbildon.</translation>
@@ -2011,12 +2166,12 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>%1 aliĝis.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation>%1 aliĝis per rajtigo de servilo de %2.</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 rifuzis sian inviton.</translation>
     </message>
@@ -2046,27 +2201,27 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>%1 estas forbarita.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation>Kialo: %1</translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation>%1 forigis sian frapon.</translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation>Vi aliĝis ĉi tiun ĉambron.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation>%1 ŝanĝis sian profilbildon kaj sian prezentan nomon al %2.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation>%1 ŝanĝis sian prezentan nomon al %2.</translation>
     </message>
@@ -2103,7 +2258,12 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Neniu ĉambro estas malfermita</translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished">Neniu antaŭrigardo disponeblas</translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation>%1 ĉambrano(j)</translation>
     </message>
@@ -2129,27 +2289,19 @@ Ekzemplo: https://servilo.mia:8787</translation>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation>Neniu ĉifrita privata babilo kun ĉi tiu uzanto troviĝis. Kreu ĉifritan privatan babilon kun ĉi tiu uzanto kaj reprovu.</translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation>Reen al listo de ĉambroj</translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation>Neniu ĉambro estas elektita</translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation>Ĉi tiu ĉambro ne estas ĉifrata!</translation>
     </message>
@@ -2160,8 +2312,8 @@ Ekzemplo: https://servilo.mia:8787</translation>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
-        <translation>Ĉi tiu ĉambro enhavas kontrolitajn aparatojn kaj aparatojn, kiuj neniam ŝanĝis sian ĉefan ŝlosilon.</translation>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+2"/>
@@ -2208,9 +2360,34 @@ Ekzemplo: https://servilo.mia:8787</translation>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished">Bonvolu enigi validan registran pecon.</translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation>Ĉiea profilo de uzanto</translation>
     </message>
@@ -2220,7 +2397,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Ĉambra profilo de uzanto</translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation>Ŝanĝi bildon ĉie.</translation>
     </message>
@@ -2230,7 +2407,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Ŝanĝi bildon. Efektiviĝos nur en ĉi tiu ĉambro.</translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation>Ŝanĝi prezentan nomon ĉie.</translation>
     </message>
@@ -2240,7 +2417,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Ŝanĝi prezentan nomon. Efektiviĝos nur en ĉi tiu ĉambro.</translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation>Ĉambro: %1</translation>
     </message>
@@ -2250,18 +2427,18 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Ĉi tio estas profilo speciala por ĉambro. La nomo kaj profilbildo de la uzanto povas esti malsamaj de siaj ĉieaj versioj.</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation>Malfermi la ĉiean profilon de ĉi tiu uzanto.</translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation>Kontroli</translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation>Komenci privatan babilon.</translation>
     </message>
@@ -2276,12 +2453,42 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Forbari la uzanton.</translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation>Malkontroli</translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation>Elektu profilbildon</translation>
     </message>
@@ -2304,8 +2511,8 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation>Implicita</translation>
     </message>
@@ -2313,7 +2520,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>Etigi al plato</translation>
     </message>
@@ -2323,22 +2530,22 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Komenci ete sur pleto</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>Flanka breto de grupoj</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation>Rondaj profilbildoj</translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation>profilo: %1</translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation>Implicita</translation>
     </message>
@@ -2363,7 +2570,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>ELŜUTI</translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation>Daŭrigi la aplikaĵon fone post fermo de la klienta fenestro.</translation>
     </message>
@@ -2380,6 +2587,16 @@ OFF - square, ON - Circle.</source>
 NE – kvadrataj, JES – rondaj.</translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation>Montras kolumnon kun grupoj kaj etikedoj apud la listo de ĉambroj.</translation>
@@ -2409,7 +2626,7 @@ be blurred.</source>
 malklariĝos.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation>Atendo ĝis privateca ŝirmilo (0–3600 sekundoj)</translation>
     </message>
@@ -2476,7 +2693,7 @@ kiujn vi silentigis, ankoraŭ estos ordigitaj laŭ tempo, ĉar vi
 probable ne pensas ilin same gravaj kiel la aliaj ĉambroj.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>Kvitancoj</translation>
     </message>
@@ -2488,7 +2705,7 @@ Status is displayed next to timestamps.</source>
 Stato estas montrita apud tempindikoj.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation>Sendi mesaĝojn Markdaŭne</translation>
     </message>
@@ -2577,7 +2794,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Elŝutu ĉifrajn ŝlosilojn por mesaĝoj de la ĉifrita enreta deponejo de ŝlosiloj, aŭ alŝutu ilin tien.</translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation>Ŝalti enretan savkopiadon de ŝlosiloj</translation>
     </message>
@@ -2587,7 +2804,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Aŭtoroj de Nheko rekomendas ne ŝalti enretan savkopiadon de ŝlosiloj, almenaŭ ĝis simetria enreta savkopiado estos disponebla. Ĉu vi tamen volas ĝin ŝalti?</translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation>KAŜMEMORITA</translation>
     </message>
@@ -2597,7 +2814,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>NE KAŜMEMORITA</translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation>Skala obligo</translation>
     </message>
@@ -2672,7 +2889,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Fingrospuro de aparato</translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation>Ŝlosiloj de salutaĵo</translation>
     </message>
@@ -2692,17 +2909,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>ĈIFRADO</translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>ĜENERALAJ</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation>FASADO</translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation>Ludas vidaŭdaĵojn kiel GIF-ojn aŭ WEBP-ojn nur sub musmontrilo.</translation>
     </message>
@@ -2742,7 +2959,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Ŝlosilo por kontrolado de aliaj uzantoj. Se ĝi estas kaŝmemorata, kontrolo de uzanto kontrolos ankaŭ ĉiujn ĝiajn aparatojn.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation>Mem-subskriba ŝlosilo</translation>
     </message>
@@ -2772,14 +2989,14 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Ĉiuj dosieroj (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation>Malfermi dosieron kun salutaĵoj</translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2787,19 +3004,19 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Eraro</translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation>Pasvorto de dosiero</translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation>Enigu pasfrazon por malĉifri la dosieron:</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation>La pasvorto ne povas esti malplena</translation>
     </message>
@@ -2815,6 +3032,14 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished">Neniu ĉifrita privata babilo kun ĉi tiu uzanto troviĝis. Kreu ĉifritan privatan babilon kun ĉi tiu uzanto kaj reprovu.</translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2869,7 +3094,7 @@ This usually causes the application icon in the task bar to animate in some fash
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation>Hieraŭ</translation>
     </message>
@@ -2941,37 +3166,6 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation>Aliĝi</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>Nuligi</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>Identigilo aŭ kromnomo de ĉambro</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation>Nuligi</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>Ĉu vi certas, ke vi volas foriri?</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3037,47 +3231,47 @@ Grandeco de vidaŭdaĵo: %2
         <translation>%1 sendis sonmesaĝon</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation>Vi sendis bildon</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation>%1 sendis bildon</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation>Vi sendis dosieron</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation>%1 sendis dosieron</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation>Vi sendis filmon</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation>%1 sendis filmon</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation>Vi sendis glumarkon</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation>%1 sendis glumarkon</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation>Vi sendis sciigon</translation>
     </message>
@@ -3092,7 +3286,7 @@ Grandeco de vidaŭdaĵo: %2
         <translation>Vi: %1</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation>%1: %2</translation>
     </message>
@@ -3112,27 +3306,27 @@ Grandeco de vidaŭdaĵo: %2
         <translation>Vi vokis</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation>%1 vokis</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation>Vi respondis vokon</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation>%1 respondis vokon</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation>Vi finis vokon</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation>%1 finis vokon</translation>
     </message>
@@ -3140,7 +3334,7 @@ Grandeco de vidaŭdaĵo: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation>Nekonata tipo de mesaĝo</translation>
     </message>
diff --git a/resources/langs/nheko_es.ts b/resources/langs/nheko_es.ts
index 80ccb676..63916a0a 100644
--- a/resources/langs/nheko_es.ts
+++ b/resources/langs/nheko_es.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation>Llamando...</translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>Videollamada</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>Videollamada</translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation>Pantalla completa</translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>No se pudo invitar al usuario: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>Usuario invitado: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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>La migración de la caché a la versión actual ha fallado. Esto puede deberse a distintos motivos. Por favor, reporte el incidente y mientras tanto intente usar una versión anterior. También puede probar a borrar la caché manualmente.</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -151,23 +151,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>Sala %1 creada.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>Confirmar invitación</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -182,7 +182,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>Se ha expulsado a %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -217,7 +217,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -259,23 +259,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation type="unfinished"></translation>
     </message>
@@ -285,17 +285,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -364,12 +364,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation type="unfinished"></translation>
     </message>
@@ -612,7 +621,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation type="unfinished"></translation>
     </message>
@@ -622,7 +631,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation type="unfinished"></translation>
     </message>
@@ -697,7 +706,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation type="unfinished"></translation>
     </message>
@@ -712,7 +721,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation type="unfinished"></translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation type="unfinished"></translation>
     </message>
@@ -745,7 +754,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -846,25 +881,25 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -874,27 +909,45 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+192"/>
@@ -1019,7 +1072,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1039,7 +1092,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation type="unfinished"></translation>
@@ -1129,7 +1182,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1178,7 +1236,7 @@ Example: https://server.my:8787</source>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
+        <source>You are about to notify the whole room</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1186,30 +1244,18 @@ Example: https://server.my:8787</source>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1239,7 +1285,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished">No se encontró micrófono.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1270,7 +1316,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1288,7 +1334,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1296,7 +1342,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1304,18 +1350,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <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="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1345,37 +1391,22 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1385,7 +1416,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1416,20 +1447,25 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1447,16 +1483,6 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation type="unfinished"></translation>
@@ -1487,7 +1513,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1512,7 +1538,30 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1540,12 +1589,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation type="unfinished">
@@ -1582,12 +1631,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1693,12 +1742,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1718,8 +1767,8 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1727,22 +1776,50 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1799,20 +1876,98 @@ Example: https://server.my:8787</source>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
@@ -1828,7 +1983,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1885,18 +2040,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1916,7 +2071,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation type="unfinished">
@@ -1925,7 +2080,7 @@ Example: https://server.my:8787</source>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1965,12 +2120,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1980,17 +2135,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+13"/>
+        <location line="+12"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2010,12 +2165,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2045,22 +2200,22 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation type="unfinished">Te has unido a esta sala.</translation>
     </message>
     <message>
-        <location line="+960"/>
+        <location line="+953"/>
         <source>Rejected the knock from %1.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2092,7 +2247,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2118,27 +2278,19 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2149,7 +2301,7 @@ Example: https://server.my:8787</source>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -2197,9 +2349,34 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2209,7 +2386,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2219,7 +2396,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2229,7 +2406,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2239,18 +2416,18 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2265,12 +2442,42 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2293,8 +2500,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2302,7 +2509,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2312,22 +2519,22 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2352,7 +2559,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2368,6 +2575,16 @@ OFF - square, ON - Circle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation type="unfinished"></translation>
@@ -2395,7 +2612,7 @@ be blurred.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2450,7 +2667,7 @@ If this is on, rooms which have active notifications (the small circle with a nu
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2461,7 +2678,7 @@ Status is displayed next to timestamps.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2548,7 +2765,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2558,7 +2775,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2568,7 +2785,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2643,7 +2860,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2663,17 +2880,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2713,7 +2930,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2743,14 +2960,14 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2758,19 +2975,19 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2786,6 +3003,14 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2839,7 +3064,7 @@ This usually causes the application icon in the task bar to animate in some fash
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2911,37 +3136,6 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation type="unfinished">Cancelar</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation type="unfinished">Cancelar</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3005,47 +3199,47 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3060,7 +3254,7 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3080,27 +3274,27 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3108,7 +3302,7 @@ Media size: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_et.ts b/resources/langs/nheko_et.ts
index 7486656e..0d72ad6b 100644
--- a/resources/langs/nheko_et.ts
+++ b/resources/langs/nheko_et.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation>Helistan...</translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>Videokõne</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>Videokõne</translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation>Terve ekraan</translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>Kutse saatmine kasutajale ei õnnestunud: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>Kutsutud kasutaja: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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>Puhverdatud andmete muutmine sobivaks rakenduse praeguse versiooniga ei õnnestunud. Sellel võib olla erinevaid põhjuseid. Palun saada meile veateade ja seni kasuta vanemat rakenduse versiooni. Aga kui sa soovid proovida, siis kustuta puhverdatud andmed käsitsi.</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation>Kinnita liitumine</translation>
     </message>
@@ -151,23 +151,23 @@
         <translation>Kas sa kindlasti soovid liituda %1 jututoaga?</translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>%1 jututuba on loodud.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>Kinnita kutse</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Kas sa tõesti soovid saata kutset kasutajale %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation>Kasutaja %1 kutsumine %2 jututuppa ei õnnestunud: %3</translation>
     </message>
@@ -182,7 +182,7 @@
         <translation>Kas sa tõesti soovid müksata kasutaja %1 (%2) jututoast välja?</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>Väljamüksatud kasutaja: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation>Kas sa tõesti soovid kasutajale %1 (%2) seada suhtluskeeldu?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>Kasutajale %1 suhtluskeelu seadmine %2 jututoas ei õnnestunud: %3</translation>
     </message>
@@ -217,7 +217,7 @@
         <translation>Kas sa tõesti soovid kasutajalt %1 (%2) eemaldada suhtluskeelu?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation>Kasutajalt %1 suhtluskeelu eemaldamine %2 jututoas ei õnnestunud: %3</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Suhtluskeeld eemaldatud: %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation>Kas sa kindlasti soovid alustada otsevestlust kasutajaga %1?</translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation>Puhvri versiooniuuendus ebaõnnestus!</translation>
     </message>
@@ -259,23 +259,23 @@
         <translation>Salvestatud andmete taastamine ei õnnestunud. Palun logi uuesti sisse.</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>Krüptovõtmete kasutusele võtmine ei õnnestunud. Koduserveri vastus päringule: %1 %2. Palun proovi hiljem uuesti.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>Palun proovi uuesti sisse logida: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>Jututoaga liitumine ei õnnestunud: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>Sa liitusid selle jututoaga</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation>Kutse tagasivõtmine ei õnnestunud: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>Jututoa loomine ei õnnestunud: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>Jututoast lahkumine ei õnnestunud: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation>Kasutaja %1 väljamüksamine %2 jututoast ei õnnestunud: %3</translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation>Dekrüpti andmed</translation>
     </message>
@@ -364,12 +364,12 @@
         <translation>Andmete dekrüptimiseks sisesta oma taastevõti või salafraas:</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation>Andmete dekrüptimiseks sisesta oma taastevõti või salafraas nimega %1:</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation>Dekrüptimine ei õnnestunud</translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation>Seadme verifitseerimine aegus.</translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation>Teine osapool katkestas verifitseerimise.</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation>Sulge</translation>
     </message>
@@ -612,7 +621,7 @@
         <translation>Muudan pildipakki</translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation>Lisa pilte</translation>
     </message>
@@ -622,7 +631,7 @@
         <translation>Kleepsud (*.png *.webp *.gif *.jpg *.jpeg)</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation>Olekuvõti</translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation>Kasuta emojina</translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation>Kasuta kleepsuna</translation>
     </message>
@@ -697,7 +706,7 @@
         <translation>Uus jututoa pildipakk</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation>Isiklik pildipakk</translation>
     </message>
@@ -712,7 +721,7 @@
         <translation>Üldkasutatav pildipakk</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation>Luba kasutada üldiselt</translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation>Vali fail</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation>Kõik failid (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation>Meediafailide üleslaadimine ei õnnestunud. Palun proovi uuesti.</translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation>Kutsu kasutajaid %1 jututuppa</translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished">Jututoa tunnus või alias</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">Lahku jututoast</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished">Kas sa oled kindel, et soovid lahkuda?</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -850,25 +885,25 @@ Näiteks: https://server.minu:8787</translation>
         <translation>LOGI SISSE</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation>Sisestatud Matrix&apos;i kasutajatunnus on vigane - peaks olema @kasutaja:server.tld</translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Koduserveri automaatne tuvastamine ei õnnestunud: päringuvastus oli vigane.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Koduserveri automaatne tuvastamine ei õnnestunud: tundmatu viga .well-known päringu tegemisel.</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Protokolli järgi nõutavaid lõpppunkte ei leidunud. Ilmselt pole tegemist Matrix&apos;i serveriga.</translation>
     </message>
@@ -878,27 +913,45 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Päringule sain tagasi vigase vastuse. Palun kontrolli, et koduserveri domeen oleks õige.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>Tekkis teadmata viga. Palun kontrolli, et koduserveri domeen on õige.</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation>ÜHEKORDNE SISSELOGIMINE</translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>Tühi salasõna</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation>Ühekordne sisselogimine ei õnnestunud</translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+192"/>
@@ -1023,7 +1076,7 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation>Muuda</translation>
     </message>
@@ -1043,7 +1096,7 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Valikud</translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation>&amp;Kopeeri</translation>
@@ -1133,7 +1186,12 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Saabus verifitseerimispäring</translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation>Selleks, et muud kasutajad automaatselt usaldaks sinu seadmeid, peaksid nad verifitseerima. Samaga muutub ka krüptovõtmete varundus automaatseks. Kas verifitseerime seadme %1?</translation>
     </message>
@@ -1182,38 +1240,26 @@ Näiteks: https://server.minu:8787</translation>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
-        <translation>Sa saadad viitesõnumi tervele jututoale</translation>
+        <source>You are about to notify the whole room</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation>%1 saatis krüptitud sõnumi</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation>* %1 %2</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation>%1 vastas: %2</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation>%1: %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1243,7 +1289,7 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Ei suuda tuvastada mikrofoni.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation>Häälkõne</translation>
     </message>
@@ -1274,7 +1320,7 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation>Loo unikaalne profiil, mis võimaldab sul logida samaaegselt sisse erinevatele kasutajakontodele ning käivitada mitu Nheko programmiakent.</translation>
     </message>
@@ -1292,7 +1338,7 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation>Lugemisteatised</translation>
     </message>
@@ -1300,7 +1346,7 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation>Eile, %1</translation>
     </message>
@@ -1308,18 +1354,18 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>Kasutajanimi</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
         <translation>Kasutajanimi ei tohi olla tühi ning võib sisaldada vaid a-z, 0-9, ., _, =, -, / tähemärke.</translation>
     </message>
     <message>
-        <location line="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>Salasõna</translation>
     </message>
@@ -1349,37 +1395,22 @@ Näiteks: https://server.minu:8787</translation>
         <translation>REGISTREERI</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation>Selline registreerimise töövoog pole toetatud!</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation>Registreerimise tunnuslubatunnusluba</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation>Registreerimiseks palun sisesta kehtiv tunnusluba.</translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Koduserveri automaatne tuvastamine ei õnnestunud: päringuvastus oli vigane.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Koduserveri automaatne tuvastamine ei õnnestunud: tundmatu viga .well-known päringu tegemisel.</translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Protokolli järgi nõutavaid lõpppunkte ei leidunud. Ilmselt pole tegemist Matrix&apos;i serveriga.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation>Päringule sain tagasi vigase vastuse. Palun kontrolli, et koduserveri domeen oleks õige.</translation>
     </message>
@@ -1389,7 +1420,7 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Tekkis teadmata viga. Palun kontrolli, et koduserveri domeen on õige.</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>Salasõna pole piisavalt pikk (vähemalt 8 tähemärki)</translation>
     </message>
@@ -1420,20 +1451,25 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation>Tutvu avalike jututubadega</translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation>Otsi avalikke jututube</translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation>salvestatud versiooni ei leidu</translation>
     </message>
@@ -1451,16 +1487,6 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Kirjuta silt, mida soovid kasutada:</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation>Lahku jututoast</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation>Kas sa oled kindel, et soovid lahkuda sellest jututoast?</translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation>Lahku jututoast</translation>
@@ -1491,7 +1517,7 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Loo uus silt...</translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation>Olekuteade</translation>
     </message>
@@ -1516,7 +1542,30 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Logi välja</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished">Sulge</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation>Alusta uut vestlust</translation>
     </message>
@@ -1544,12 +1593,12 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation>%1 jututoa liikmed</translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation>
@@ -1586,12 +1635,12 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation>Jututoa seadistused</translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation>%1 liige(t)</translation>
     </message>
@@ -1697,12 +1746,12 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Jututoa versioon</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Krüptimise kasutuselevõtmine ei õnnestunud: %1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation>Vali tunnuspilt</translation>
     </message>
@@ -1722,8 +1771,8 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Viga faili lugemisel: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation>Viga faili üleslaadimisel: %1</translation>
     </message>
@@ -1731,22 +1780,50 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation>Ootel kutse.</translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation>Jututoa eelvaade</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation>Eelvaade pole saadaval</translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1803,20 +1880,98 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation>Ühenduse loomine võtmehoidlaga ei õnnestunud</translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
-        <translation>Krüptovõtmete salvestamiseks Nhekol ei õnnestunud luua ühendust võtmehoidlaga. Sellel võib olla mitu põhjust. Kontrolli, kas D-Bus&apos;i alusteenus toimib ning sa oled seadistanud KWallet&apos;i, Gnome Secrets&apos;i või mõne muu sinu platvormil kasutatava turvalise andmehoidla teenuse. Probleemide korral palun ava siin https://github.com/Nheko-Reborn/nheko/issues veateade</translation>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation>Pildipaki uuendamine ei õnnestunud: %1</translation>
@@ -1832,7 +1987,7 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Pildi avamine ei õnnestunud: %1</translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation>Faili üleslaadimine ei õnnestunud: %1</translation>
     </message>
@@ -1889,18 +2044,18 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation>Sõnumi ümbersõnastamine ebaõnnestus: %1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation>Sündmuse krüptimine ei õnnestunud, katkestame saatmise!</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation>Salvesta pilt</translation>
     </message>
@@ -1920,7 +2075,7 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Salvesta fail</translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation>
@@ -1929,7 +2084,7 @@ Näiteks: https://server.minu:8787</translation>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation>%1 tegi jututoa avalikuks.</translation>
     </message>
@@ -1969,12 +2124,12 @@ Näiteks: https://server.minu:8787</translation>
         <translation>%1 muutis, et selle jututoa ajalugu saavad lugeda kõik liikmed alates praegusest ajahetkest.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation>%1 muutis, et selle jututoa ajalugu saavad lugeda kõik liikmed alates oma kutse saatmisest.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation>%1 muutis, et selle jututoa ajalugu saavad lugeda kõik liikmed alates jututoaga liitumise hetkest.</translation>
     </message>
@@ -1984,12 +2139,12 @@ Näiteks: https://server.minu:8787</translation>
         <translation>%1 muutis selle jututoa õigusi.</translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation>%1 sai kutse.</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation>%1 muutis oma tunnuspilti.</translation>
     </message>
@@ -2004,12 +2159,12 @@ Näiteks: https://server.minu:8787</translation>
         <translation>%1 liitus jututoaga.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation>%1 liitus peale autentimist serverist %2.</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 lükkas liitumiskutse tagasi.</translation>
     </message>
@@ -2039,27 +2194,27 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Kasutaja %1 sai suhtluskeelu.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation>Põhjus: %1</translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation>%1 muutis oma koputust jututoa uksele.</translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation>Sa liitusid jututoaga.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation>%1 muutis oma tunnuspilti ja seadistas uueks kuvatavaks nimeks %2.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation>%1 seadistas uueks kuvatavaks nimeks %2.</translation>
     </message>
@@ -2096,7 +2251,12 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Ühtegi jututuba pole avatud</translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished">Eelvaade pole saadaval</translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation>%1 liige(t)</translation>
     </message>
@@ -2122,27 +2282,19 @@ Näiteks: https://server.minu:8787</translation>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation>Ühtegi krüptitud vestlust selle kasutajaga ei leidunud. Palun loo temaga krüptitud vestlus ja proovi uuesti.</translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation>Tagasi jututubade loendisse</translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation>Jututuba on valimata</translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation>See jututuba on krüptimata!</translation>
     </message>
@@ -2153,8 +2305,8 @@ Näiteks: https://server.minu:8787</translation>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
-        <translation>Selles jututoas on vaid verifitseeritud seadmed ning nad ei ole kunagi muutnud oma juurvõtit.</translation>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+2"/>
@@ -2201,9 +2353,34 @@ Näiteks: https://server.minu:8787</translation>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished">Registreerimiseks palun sisesta kehtiv tunnusluba.</translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation>Üldine kasutajaprofiil</translation>
     </message>
@@ -2213,7 +2390,7 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Kasutajaprofiil jututoas</translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation>Muuda oma tunnuspilti kõikjal.</translation>
     </message>
@@ -2223,7 +2400,7 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Muuda oma tunnuspilti vaid selles jututoas.</translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation>Muuda oma kuvatavat nime kõikjal.</translation>
     </message>
@@ -2233,7 +2410,7 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Muuda oma kuvatavat nime vaid selles jututoas.</translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation>Jututuba: %1</translation>
     </message>
@@ -2243,18 +2420,18 @@ Näiteks: https://server.minu:8787</translation>
         <translation>See kasutajaprofiil on vaid selle jututoa kohane. Kasutaja kuvatav nimi ja tunnuspilt võivad muudes jutubades olla teistsugused.</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation>Vaata selle kasutaja üldist profiili.</translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation>Verifitseeri</translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation>Alusta privaatset vestlust.</translation>
     </message>
@@ -2269,12 +2446,42 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Sea kasutajale suhtluskeeld.</translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation>Võta verifitseerimine tagasi</translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation>Vali tunnuspilt</translation>
     </message>
@@ -2297,8 +2504,8 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation>Vaikimisi</translation>
     </message>
@@ -2306,7 +2513,7 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>Vähenda tegumiribale</translation>
     </message>
@@ -2316,22 +2523,22 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Käivita tegumiribalt</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>Rühmade küljepaan</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation>Ümmargused tunnuspildid</translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation>Profiil: %1</translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation>Vaikimisi</translation>
     </message>
@@ -2356,7 +2563,7 @@ Näiteks: https://server.minu:8787</translation>
         <translation>ALLALAADIMISED</translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation>Peale akna sulgemist jäta rakendus taustal tööle.</translation>
     </message>
@@ -2373,6 +2580,16 @@ OFF - square, ON - Circle.</source>
 Väljalülitatuna - ruut, sisselülitatuna - ümmargune.</translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation>Näita jututubade loendi kõrval veergu rühmade ja siltidega.</translation>
@@ -2402,7 +2619,7 @@ be blurred.</source>
 siis ajajoone vaade hägustub.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation>Viivitus privaatsussirmi sisselülitamisel (sekundites [0 - 3600])</translation>
     </message>
@@ -2462,7 +2679,7 @@ Kui see valik on välja lülitatud, siis jututoad järjestatakse viimati saanunu
 Kui see valik on sisse lülitatud, siis teavitustega jututoad (pisike ümmargune numbrifa ikoon) järjestatakse esimesena. Sinu poolt summutatud jututoad järjestatakse ikkagi ajatempli alusel, sest sa ei pea neid teistega võrreldes piisavalt tähtsaks.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>Lugemisteatised</translation>
     </message>
@@ -2474,7 +2691,7 @@ Status is displayed next to timestamps.</source>
 Lugemise olekut kuvatakse ajatempli kõrval.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation>Saada sõnumid Markdown-vormindusena</translation>
     </message>
@@ -2563,7 +2780,7 @@ See tavaliselt tähendab, et rakenduse ikoon tegumiribal annab mingit sorti anim
         <translation>Luba krüptitud võtmete varunduseks laadida sõnumite krüptovõtmeid sinu serverisse või sinu serverist.</translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation>Võta kasutusele krüptovõtmete varundus võrgus</translation>
     </message>
@@ -2573,7 +2790,7 @@ See tavaliselt tähendab, et rakenduse ikoon tegumiribal annab mingit sorti anim
         <translation>Seni kuni sümmetriline krüptovõtmete varundamine pole teostatav, siis Nheko arendajad ei soovita krüptovõtmeid võrgus salvestada. Kas ikkagi jätkame?</translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation>PUHVERDATUD</translation>
     </message>
@@ -2583,7 +2800,7 @@ See tavaliselt tähendab, et rakenduse ikoon tegumiribal annab mingit sorti anim
         <translation>PUHVERDAMATA</translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation>Mastaabitegur</translation>
     </message>
@@ -2658,7 +2875,7 @@ See tavaliselt tähendab, et rakenduse ikoon tegumiribal annab mingit sorti anim
         <translation>Seadme sõrmejälg</translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation>Sessioonivõtmed</translation>
     </message>
@@ -2678,17 +2895,17 @@ See tavaliselt tähendab, et rakenduse ikoon tegumiribal annab mingit sorti anim
         <translation>KRÜPTIMINE</translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>ÜLDISED SEADISTUSED</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation>LIIDES</translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation>Esitame liikuvaid GIF ja WEBP pilte vaid siis, kui kursor on pildi kohal.</translation>
     </message>
@@ -2728,7 +2945,7 @@ See tavaliselt tähendab, et rakenduse ikoon tegumiribal annab mingit sorti anim
         <translation>Teiste kasutajate verifitseerimiseks mõeldud võti. Kui see võti on puhverdatud, siis kasutaja verifitseerimine tähendab ka kõikide tema seadmete verifitseerimist.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation>Omatunnustusvõti</translation>
     </message>
@@ -2758,14 +2975,14 @@ See tavaliselt tähendab, et rakenduse ikoon tegumiribal annab mingit sorti anim
         <translation>Kõik failid (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation>Ava sessioonide fail</translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2773,19 +2990,19 @@ See tavaliselt tähendab, et rakenduse ikoon tegumiribal annab mingit sorti anim
         <translation>Viga</translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation>Faili salasõna</translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation>Faili dekrüptimiseks sisesta salafraas:</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation>Salasõna ei saa olla tühi</translation>
     </message>
@@ -2801,6 +3018,14 @@ See tavaliselt tähendab, et rakenduse ikoon tegumiribal annab mingit sorti anim
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished">Ühtegi krüptitud vestlust selle kasutajaga ei leidunud. Palun loo temaga krüptitud vestlus ja proovi uuesti.</translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2854,7 +3079,7 @@ See tavaliselt tähendab, et rakenduse ikoon tegumiribal annab mingit sorti anim
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation>Eile</translation>
     </message>
@@ -2926,37 +3151,6 @@ See tavaliselt tähendab, et rakenduse ikoon tegumiribal annab mingit sorti anim
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation>Liitu</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>Tühista</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>Jututoa tunnus või alias</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation>Tühista</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>Kas sa oled kindel, et soovid lahkuda?</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3022,47 +3216,47 @@ Meedia suurus: %2
         <translation>%1 saatis helifaili</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation>Sa saatsid pildi</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation>%1 saatis pildi</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation>Sa saatsid faili</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation>%1 saatis faili</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation>Sa saatsid video</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation>%1 saatis video</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation>Sa saatsid kleepsu</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation>%1 saatis kleepsu</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation>Sa saatsid teavituse</translation>
     </message>
@@ -3077,7 +3271,7 @@ Meedia suurus: %2
         <translation>Sina: %1</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation>%1: %2</translation>
     </message>
@@ -3097,27 +3291,27 @@ Meedia suurus: %2
         <translation>Sa helistasid</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation>%1 helistas</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation>Sa vastasid kõnele</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation>%1 vastas kõnele</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation>Sa lõpetasid kõne</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation>%1 lõpetas kõne</translation>
     </message>
@@ -3125,7 +3319,7 @@ Meedia suurus: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation>Tundmatu sõnumitüüp</translation>
     </message>
diff --git a/resources/langs/nheko_fi.ts b/resources/langs/nheko_fi.ts
index c269fa36..2fb5221d 100644
--- a/resources/langs/nheko_fi.ts
+++ b/resources/langs/nheko_fi.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation>Soitetaan...</translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>Videopuhelu</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>Videopuhelu</translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation>Koko näyttö</translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>Käyttäjää %1 ei onnistuttu kutsumaan</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>Kutsuttu käyttäjä: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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>Välimuistin tuominen nykyiseen versioon epäonnistui. Tällä voi olla eri syitä. Luo vikailmoitus ja yritä sillä aikaa käyttää vanhempaa versiota. Voit myös vaihtoehtoisesti koettaa tyhjentää välimuistin käsin.</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation>Vahvista liittyminen</translation>
     </message>
@@ -151,23 +151,23 @@
         <translation>Haluatko todella liittyä huoneeseen %1?</translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>Huone %1 luotu.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>Vahvista kutsu</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Haluatko kutsua %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation>Epäonnistuttiin kutsuminen %1 huoneeseen %2:%3</translation>
     </message>
@@ -182,7 +182,7 @@
         <translation>Haluatko potkia %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>Potkittiin käyttäjä: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation>Haluatko antaa porttikiellon käyttäjälle %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>Ei onnistuttu antamaan porttikieltoa käyttäjälle %1 huoneessa %2:%3</translation>
     </message>
@@ -217,7 +217,7 @@
         <translation>Haluatko purkaa porttikiellon käyttäjältä %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation>Ei onnistuttu purkamaan porttikieltoa käyttäjältä %1 huoneessa %2: %3</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Purettiin porttikielto käyttäjältä %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation>Haluatko luoda yksityisen keskustelun käyttäjän %1 kanssa?</translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation>Välimuistin siirto epäonnistui!</translation>
     </message>
@@ -259,23 +259,23 @@
         <translation>Tallennettujen tietojen palauttaminen epäonnistui. Ole hyvä ja kirjaudu sisään uudelleen.</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>Salausavainten lähetys epäonnistui. Palvelimen vastaus: %1 %2. Ole hyvä ja yritä uudelleen myöhemmin.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>Ole hyvä ja yritä kirjautua sisään uudelleen: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>Huoneeseen liittyminen epäonnistui: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>Sinä liityit huoneeseen</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation>Kutsua ei onnistuttu poistamaan: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>Huoneen luominen epäonnistui: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>Huoneesta poistuminen epäonnistui: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation>Ei onnistuttu potkimaan käyttäjää %1 huoneesta %2: %3</translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation>Salaisuuksien salauksen purku</translation>
     </message>
@@ -364,12 +364,12 @@
         <translation>Anna palauttamisavain tai salasana purkaaksesi salaisuuksiesi salaus:</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation>Anna palautusavaimesi tai salasanasi nimeltä %1 purkaaksesi salaisuuksien salauksen:</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation>Salauksen purku epäonnistui</translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation>Aikakatkaisu laitteen vahvistuksessa.</translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation>Toinen osapuoli perui vahvistuksen.</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation>Sulje</translation>
     </message>
@@ -612,7 +621,7 @@
         <translation>Muokataan kuvapakkausta</translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation>Lisää kuvia</translation>
     </message>
@@ -622,7 +631,7 @@
         <translation>Tarrat (*.png *.webp *.gif *.jpg *.jpeg)</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation>TIla-avain</translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation>Käytä emojina</translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation>Käytä tarrana</translation>
     </message>
@@ -697,7 +706,7 @@
         <translation>Uusi huonepakkaus</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation>Yksityinen pakkaus</translation>
     </message>
@@ -712,7 +721,7 @@
         <translation>Kaikkialla käytössä oleva pakkaus</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation>Salli käytettäväksi kaikkialla</translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation>Valitse tiedosto</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation>Kaikki Tiedostot (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation>Mediaa ei onnistuttu lataamaan. Yritä uudelleen.</translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation>Kutsu käyttäjiä %1</translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished">Huoneen tunnus tai osoite</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">Poistu huoneesta</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished">Oletko varma, että haluat poistua?</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -850,25 +885,25 @@ Esimerkki: https://server.my:8787</translation>
         <translation>KIRJAUDU</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation>Väärä Matrix-tunnus. Esim.  @joe:matrix.org</translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Palvelimen tietojen hakeminen epäonnistui: virheellinen vastaus.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Palvelimen tietojen hakeminen epäonnistui: tuntematon virhe hakiessa .well-known -tiedostoa.</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Vaadittuja päätepisteitä ei löydetty. Mahdollisesti ei Matrix-palvelin.</translation>
     </message>
@@ -878,27 +913,45 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Vastaanotettiin virheellinen vastaus. Varmista, että kotipalvelimen osoite on pätevä.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>Tapahtui tuntematon virhe. Varmista, että kotipalvelimen osoite on pätevä.</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation>SSO-kirjautuminen</translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>Tyhjä salasana</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation>SSO-kirjautuminen epäonnistui</translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+174"/>
@@ -1023,7 +1076,7 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation>Muokkaa</translation>
     </message>
@@ -1043,7 +1096,7 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Asetukset</translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation>&amp;Kopioi</translation>
@@ -1133,7 +1186,12 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Otettiin vastaan vahvistuspyyntö</translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation>Voit vahvistaa laitteesi, jotta sallit muiden nähdä, mitkä niistä oikeasti kuuluvat sinulle. Tämä myös mahdollistaa avaimen varmuuskopioinnin toiminnnan automaattisesti. Vahvistetaanko %1 nyt?</translation>
     </message>
@@ -1182,38 +1240,26 @@ Esimerkki: https://server.my:8787</translation>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
-        <translation>Hälytät koko huonetta</translation>
+        <source>You are about to notify the whole room</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation>%1 lähetti salatun viestin</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation>* %1 %2</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation>%1 vastasi: %2</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation>%1: %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1243,7 +1289,7 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Mikrofonia ei löydy.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation>Ääni</translation>
     </message>
@@ -1274,7 +1320,7 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation>Luo uniikki profili, joka mahdollistaa kirjautumisen usealle tilille samanaikaisesti ja useamman nheko-instanssin aloittamisen.</translation>
     </message>
@@ -1292,7 +1338,7 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation>Lukukuittaukset</translation>
     </message>
@@ -1300,7 +1346,7 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation>Eilen, &amp;1</translation>
     </message>
@@ -1308,18 +1354,18 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>Käyttäjänimi</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
         <translation>Käyttäjätunnus ei saa olla tyhjä, ja se saa sisältää vain merkkejä a-z, 0-9, ., _, =, - ja /.</translation>
     </message>
     <message>
-        <location line="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>Salasana</translation>
     </message>
@@ -1349,37 +1395,22 @@ Esimerkki: https://server.my:8787</translation>
         <translation>REKISTERÖIDY</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation>Ei tuettuja rekisteröintejä!</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation>Rekisteröitymispoletti</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation>Anna kelvollinen rekisteröitymispoletti.</translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Palvelimen tietojen hakeminen epäonnistui: virheellinen vastaus.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Palvelimen tietojen hakeminen epäonnistui: tuntematon virhe hakiessa .well-known -tiedostoa.</translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Vaadittuja päätepisteitä ei löydetty. Mahdollisesti ei Matrix-palvelin.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation>Vastaanotettiin virheellinen vastaus. Varmista, että kotipalvelimen osoite on pätevä.</translation>
     </message>
@@ -1389,7 +1420,7 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Tapahtui tuntematon virhe. Varmista, että kotipalvelimen osoite on pätevä.</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>Salasana ei ole tarpeeksi pitkä (vähintään 8 merkkiä)</translation>
     </message>
@@ -1420,20 +1451,25 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation>Tutki julkisia huoneita</translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation>Etsi julkisia huoneita</translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation>ei tallennettua versiota</translation>
     </message>
@@ -1451,16 +1487,6 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Kirjoita tagi jota haluat käyttää:</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation>Poistu huoneesta</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation>Oletko varma, että haluat poistua tästä huoneesta?</translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation>Poistu huoneesta</translation>
@@ -1491,7 +1517,7 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Luo uusi tagi...</translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation>Tilapäivitys</translation>
     </message>
@@ -1516,7 +1542,30 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Kirjaudu ulos</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished">Sulje</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation>Aloita uusi keskustelu</translation>
     </message>
@@ -1544,12 +1593,12 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation>&amp;1 jäsenet</translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation>
@@ -1586,12 +1635,12 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation>Huoneen asetukset</translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation>%1 jäsentä</translation>
     </message>
@@ -1697,12 +1746,12 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Huoneen versio</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Salauksen aktivointi epäonnistui: %1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation>Valitse profiilikuva</translation>
     </message>
@@ -1722,8 +1771,8 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Virhe lukiessa tiedostoa: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation>Kuvan lähetys epäonnistui: %s</translation>
     </message>
@@ -1731,22 +1780,50 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation>Kutsua odotetaan.</translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation>Esikatsellaan tätä huonetta</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation>Esikatselu ei saatavilla</translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1803,20 +1880,98 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation>Salattuun tallennustilaan ei saatu yhteyttä</translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
-        <translation>Nheko ei pystynyt yhdistämään salattuun tallennustilaan tallentamaan salaukseen kuuluvia salaisuuksia. Tämä voi johtua useasta syystä. Tarkista, onko D-Bus-palvelu käynnissä ja oletko määrittänyt alustallesi palvelun kuten KWallet, Gnome Secrets tai vastaavan. Jos sinulla on ongelmia, voit luoda vikailmoituksen täällä: https://github.com/Nheko-Reborn/nheko/issues</translation>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation>Kuvapakkausta %1 ei onnistuttu päivittämään</translation>
@@ -1832,7 +1987,7 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Kuvaa %1 ei onnistuttu avaamaan</translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation>Kuvan lähetys epäonnistui: %s</translation>
     </message>
@@ -1889,18 +2044,18 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation>Viestin muokkaus epäonnistui: %1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation>Tapahtuman salaus epäonnistui, lähetys keskeytetään!</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation>Tallenna kuva</translation>
     </message>
@@ -1920,7 +2075,7 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Tallenna tiedosto</translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation>
@@ -1929,7 +2084,7 @@ Esimerkki: https://server.my:8787</translation>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation>%1 avasi huoneen julkiseksi.</translation>
     </message>
@@ -1969,12 +2124,12 @@ Esimerkki: https://server.my:8787</translation>
         <translation>%1 asetti huoneen historian näkyväksi jäsenille tästä lähtien.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation>%1 asetti huoneen historian näkyväksi jäsenille kutsumisesta lähtien.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation>%1 asetti huoneen historian näkyväksi jäsenille huoneeseen liittymisen jälkeen.</translation>
     </message>
@@ -1984,12 +2139,12 @@ Esimerkki: https://server.my:8787</translation>
         <translation>%1 on muuttanut huoneen lupia.</translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation>&amp;1 kutsuttiin.</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation>%1 muutti avatariaan.</translation>
     </message>
@@ -2004,12 +2159,12 @@ Esimerkki: https://server.my:8787</translation>
         <translation>%1 liittyi.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation>%1 liittyi käyttäjän %2 palvelimen suomalla vahvistuksella.</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 hylkäsi kutsunsa.</translation>
     </message>
@@ -2039,27 +2194,27 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Käyttäjälle %1 annettiin porttikielto.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation>Syy: %1</translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation>%1 perui koputuksensa.</translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation>Sinä liityit tähän huoneeseen.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation>%1 vaihtoi avatariaan ja vaihtoi näyttönimekseen %2.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation>%1 vaihtoi näyttönimekseen %2.</translation>
     </message>
@@ -2096,7 +2251,12 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Ei avointa huonetta</translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished">Esikatselu ei saatavilla</translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation>%1 jäsentä</translation>
     </message>
@@ -2122,27 +2282,19 @@ Esimerkki: https://server.my:8787</translation>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation>Salattua keskustelua ei löydetty tälle käyttäjälle. Luo salattu yksityiskeskustelu tämän käyttäjän kanssa ja yritä uudestaan.</translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation>Takaisin huonelistaan</translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation>Ei valittua huonetta</translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation>Tämä huone ei ole salattu!</translation>
     </message>
@@ -2153,8 +2305,8 @@ Esimerkki: https://server.my:8787</translation>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
-        <translation>Tämä huone sisältää vahvistettuja laitteita ja laitteita, jotka eivät ole koskaan vaihtaneet pääavainta.</translation>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+2"/>
@@ -2201,9 +2353,34 @@ Esimerkki: https://server.my:8787</translation>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished">Anna kelvollinen rekisteröitymispoletti.</translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation>Yleinen käyttäjäprofiili</translation>
     </message>
@@ -2213,7 +2390,7 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Huoneen käyttäjäprofiili</translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation>Vaihda avataria kaikkialla.</translation>
     </message>
@@ -2223,7 +2400,7 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Muuta avataria. Toimii vain tässä huoneessa.</translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation>Muuta näyttönimeä kaikkialla.</translation>
     </message>
@@ -2233,7 +2410,7 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Muuta näyttönimeä. Toimii vain tässä huoneessa.</translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation>Huone: %1</translation>
     </message>
@@ -2243,18 +2420,18 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Tämä on huoneelle erityinen profiili. Käyttäjän nimi ja avatar voivat erota niiden kaikkialla käytössä olevista versioista.</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation>Avaa tämän käyttäjän yleinen profiili.</translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation>Vahvista</translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation>Aloita yksityinen keskustelu.</translation>
     </message>
@@ -2269,12 +2446,42 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Anna käyttäjälle porttikielto.</translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation>Peru vahvistus</translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation>Valitse profiilikuva</translation>
     </message>
@@ -2297,8 +2504,8 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation>Oletus</translation>
     </message>
@@ -2306,7 +2513,7 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>Pienennä ilmoitusalueelle</translation>
     </message>
@@ -2316,22 +2523,22 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Aloita ilmoitusalueella</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>Ryhmäsivupalkki</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation>Pyöreät avatarit</translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation>profiili: %1</translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation>Oletus</translation>
     </message>
@@ -2356,7 +2563,7 @@ Esimerkki: https://server.my:8787</translation>
         <translation>LATAA</translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation>Anna sovelluksen pyöriä taustalla asiakasohjelman ikkunan sulkemisen jälkeen.</translation>
     </message>
@@ -2373,6 +2580,16 @@ OFF - square, ON - Circle.</source>
 POIS PÄÄLTÄ - neliö, PÄÄLLÄ - pyöreä.</translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation>Näytä huonelistan vieressä tagit ja ryhmät sisältävä sarake.</translation>
@@ -2402,7 +2619,7 @@ be blurred.</source>
 sumennetaan.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation>Yksityisyysnäkymän aikakatkaisu (sekunneissa [0-3600])</translation>
     </message>
@@ -2462,7 +2679,7 @@ Jos tämä on poissa päältä, lista huoneista lajitellaan vain huoneen viimeis
 Jos tämä on päällä, huoneet, joissa ilmoitukset ovat päällä (pieni ympyrä, jonka sisässä on numero), lajitellaan päällimmäisiksi. Mykistämäsi huoneet lajitellaan aikaleiman mukaan, koska et nähtävästi pidä niitä yhtä tärkeinä kuin muita huoneita.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>Lukukuittaukset</translation>
     </message>
@@ -2474,7 +2691,7 @@ Status is displayed next to timestamps.</source>
 Tila näytetään aikaleimojen vieressä.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation>Lähetä viestit Markdownina</translation>
     </message>
@@ -2563,7 +2780,7 @@ Tämä yleensä saa sovelluksen kuvakkeen liikkumaan jollain tapaa tehtäväpalk
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation>Salli avaimen varmuuskopiointi verkkoon</translation>
     </message>
@@ -2573,7 +2790,7 @@ Tämä yleensä saa sovelluksen kuvakkeen liikkumaan jollain tapaa tehtäväpalk
         <translation>Nhekon tekijät eivät suosittele avaimen varmuuskopiointia verkkoon kunnes avaimen symmetrinen varmuuskopiointi verkkoon on saatavilla. Sallitaanko se kuitenkin?</translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation>VÄLIMUISTISSA</translation>
     </message>
@@ -2583,7 +2800,7 @@ Tämä yleensä saa sovelluksen kuvakkeen liikkumaan jollain tapaa tehtäväpalk
         <translation>EI VÄLIMUISTISSA</translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation>Mittakerroin</translation>
     </message>
@@ -2658,7 +2875,7 @@ Tämä yleensä saa sovelluksen kuvakkeen liikkumaan jollain tapaa tehtäväpalk
         <translation>Laitteen sormenjälki</translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation>Istunnon avaimet</translation>
     </message>
@@ -2678,17 +2895,17 @@ Tämä yleensä saa sovelluksen kuvakkeen liikkumaan jollain tapaa tehtäväpalk
         <translation>SALAUS</translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>YLEISET ASETUKSET</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation>KÄYTTÖLIITTYMÄ</translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation>Soittaa mediaa kuten GIF- ja WEBP-tiedostoja vain kun kursori on niiden kohdalla.</translation>
     </message>
@@ -2728,7 +2945,7 @@ Tämä yleensä saa sovelluksen kuvakkeen liikkumaan jollain tapaa tehtäväpalk
         <translation>Avain vahvistamaan muita käyttäjiä. Jos se on välimuistissa, käyttäjän varmistaminen varmistaa hänen kaikki laitteensa.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation>Itsensä allekirjoittava avain</translation>
     </message>
@@ -2758,14 +2975,14 @@ Tämä yleensä saa sovelluksen kuvakkeen liikkumaan jollain tapaa tehtäväpalk
         <translation>Kaikki Tiedostot (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation>Avaa Istuntoavaintiedosto</translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2773,19 +2990,19 @@ Tämä yleensä saa sovelluksen kuvakkeen liikkumaan jollain tapaa tehtäväpalk
         <translation>Virhe</translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation>Tiedoston Salasana</translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation>Anna salasana tiedoston salauksen purkamiseksi:</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation>Salasana ei voi olla tyhjä</translation>
     </message>
@@ -2801,6 +3018,14 @@ Tämä yleensä saa sovelluksen kuvakkeen liikkumaan jollain tapaa tehtäväpalk
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished">Salattua keskustelua ei löydetty tälle käyttäjälle. Luo salattu yksityiskeskustelu tämän käyttäjän kanssa ja yritä uudestaan.</translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2854,7 +3079,7 @@ Tämä yleensä saa sovelluksen kuvakkeen liikkumaan jollain tapaa tehtäväpalk
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation>Eilen</translation>
     </message>
@@ -2926,37 +3151,6 @@ Tämä yleensä saa sovelluksen kuvakkeen liikkumaan jollain tapaa tehtäväpalk
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation>Liity</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>Peruuta</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>Huoneen tunnus tai osoite</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation>Peruuta</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>Oletko varma, että haluat poistua?</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3022,47 +3216,47 @@ Median koko: %2
         <translation>%1 lähetti äänileikkeen</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation>Lähetit kuvan</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation>%1 lähetti kuvan</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation>Lähetit tiedoston</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation>%1 lähetti tiedoston</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation>Lähetit videotiedoston</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation>%1 lähetti videotiedoston</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation>Lähetit tarran</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation>%1 lähetti tarran</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation>Lähetit ilmoituksen</translation>
     </message>
@@ -3077,7 +3271,7 @@ Median koko: %2
         <translation>Sinä: %1</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation>%1: %2</translation>
     </message>
@@ -3097,27 +3291,27 @@ Median koko: %2
         <translation>Soitit puhelun</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation>%1 soitti puhelun</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation>Vastasit puheluun</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation>%1 vastasi puheluun</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation>Lopetit puhelun</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation>%1 lopetti puhelun</translation>
     </message>
@@ -3125,7 +3319,7 @@ Median koko: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation>Tuntematon viestityyppi</translation>
     </message>
diff --git a/resources/langs/nheko_fr.ts b/resources/langs/nheko_fr.ts
index 118cd259..f57f8984 100644
--- a/resources/langs/nheko_fr.ts
+++ b/resources/langs/nheko_fr.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation>Appel en cours…</translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>Appel vidéo</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>Appel vidéo</translation>
     </message>
@@ -96,12 +96,12 @@
     <message>
         <location line="+12"/>
         <source>Unknown microphone: %1</source>
-        <translation>Microphone inconnu : %1</translation>
+        <translation>Microphone inconnu&#xa0;: %1</translation>
     </message>
     <message>
         <location line="+8"/>
         <source>Unknown camera: %1</source>
-        <translation>Caméra inconnue : %1</translation>
+        <translation>Caméra inconnue&#xa0;: %1</translation>
     </message>
     <message>
         <location line="+13"/>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation>Tout l&apos;écran</translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>Échec lors de l&apos;invitation de %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>Utilisateur %1 invité(e)</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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>La migration du cache vers la version actuelle a échoué. Cela peut arriver pour différentes raisons. Signalez le problème et essayez d&apos;utiliser une ancienne version en attendant. Vous pouvez également supprimer le cache manuellement.</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation>Confirmez la participation</translation>
     </message>
@@ -151,25 +151,25 @@
         <translation>Voulez-vous vraiment rejoindre %1 ?</translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>Salon %1 créé.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>Confirmer l&apos;invitation</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
-        <translation>Voulez-vous vraiment inviter %1 (%2) ?</translation>
+        <translation>Voulez-vous vraiment inviter %1 (%2)&#x202f;?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
-        <translation>Échec de l&apos;invitation de %1 dans %2 : %3</translation>
+        <translation>Échec de l&apos;invitation de %1 dans %2&#xa0;: %3</translation>
     </message>
     <message>
         <location line="+15"/>
@@ -179,10 +179,10 @@
     <message>
         <location line="+1"/>
         <source>Do you really want to kick %1 (%2)?</source>
-        <translation>Voulez-vous vraiment expulser %1 (%2) ?</translation>
+        <translation>Voulez-vous vraiment expulser %1 (%2)&#x202f;?</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>L&apos;utilisateur %1 a été expulsé.</translation>
     </message>
@@ -194,10 +194,10 @@
     <message>
         <location line="+1"/>
         <source>Do you really want to ban %1 (%2)?</source>
-        <translation>Voulez-vous vraiment bannir %1 (%2) ?</translation>
+        <translation>Voulez-vous vraiment bannir %1 (%2)&#x202f;?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>Échec du bannissement de %1 de %2 : %3</translation>
     </message>
@@ -214,12 +214,12 @@
     <message>
         <location line="+1"/>
         <source>Do you really want to unban %1 (%2)?</source>
-        <translation>Voulez-vous vraiment annuler le bannissement de %1 (%2) ?</translation>
+        <translation>Voulez-vous vraiment annuler le bannissement de %1 (%2)&#x202f;?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
-        <translation>Échec de l&apos;annulation du bannissement de %1 dans %2 : %3</translation>
+        <translation>Échec de l&apos;annulation du bannissement de %1 dans %2&#xa0;: %3</translation>
     </message>
     <message>
         <location line="+5"/>
@@ -227,14 +227,14 @@
         <translation>%1 n&apos;est plus banni(e)</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation>Voulez-vous vraiment commencer une discussion privée avec %1 ?</translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
-        <translation>Échec de la migration du cache !</translation>
+        <translation>Échec de la migration du cache&#x202f;!</translation>
     </message>
     <message>
         <location line="+13"/>
@@ -259,45 +259,45 @@
         <translation>Échec de la restauration des données sauvegardées. Veuillez vous reconnecter.</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
-        <translation>Échec de la configuration des clés de chiffrement. Réponse du serveur : %1 %2. Veuillez réessayer plus tard.</translation>
+        <translation>Échec de la configuration des clés de chiffrement. Réponse du serveur&#xa0;: %1 %2. Veuillez réessayer plus tard.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
-        <translation>Veuillez re-tenter vous reconnecter : %1</translation>
+        <translation>Veuillez re-tenter vous reconnecter&#xa0;: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
-        <translation>Impossible de rejoindre le salon : %1</translation>
+        <translation>Impossible de rejoindre le salon&#xa0;: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>Vous avez rejoint le salon</translation>
     </message>
     <message>
         <location line="+6"/>
         <source>Failed to remove invite: %1</source>
-        <translation>Impossible de supprimer l&apos;invitation : %1</translation>
+        <translation>Impossible de supprimer l&apos;invitation&#x202f;: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
-        <translation>Échec de la création du salon : %1</translation>
+        <translation>Échec de la création du salon&#xa0;: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
-        <translation>Impossible de quitter le salon : %1</translation>
+        <translation>Impossible de quitter le salon&#xa0;: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
-        <translation>Échec de l&apos;expulsion de %1 de %2  : %3</translation>
+        <translation>Échec de l&apos;expulsion de %1 de %2&#x202f;&#x202f;: %3</translation>
     </message>
 </context>
 <context>
@@ -354,22 +354,22 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation>Déchiffrer les secrets</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Enter your recovery key or passphrase to decrypt your secrets:</source>
-        <translation>Entrez votre clé de récupération ou phrase de passe pour déchiffrer vos secrets :</translation>
+        <translation>Entrez votre clé de récupération ou phrase de passe pour déchiffrer vos secrets&#xa0;:</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
-        <translation>Entrez votre clé de récupération ou votre phrase de passe nommée %1 pour déchiffrer vos secrets :</translation>
+        <translation>Entrez votre clé de récupération ou votre phrase de passe nommée %1 pour déchiffrer vos secrets&#xa0;:</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation>Échec du déchiffrement</translation>
     </message>
@@ -389,17 +389,17 @@
     <message>
         <location line="+10"/>
         <source>Please verify the following digits. You should see the same numbers on both sides. If they differ, please press &apos;They do not match!&apos; to abort verification!</source>
-        <translation>Veuillez vérifier les chiffres suivants. Vous devriez voir les mêmes chiffres des deux côtés. Si ceux-ci diffèrent, veuillez choisir « Ils sont différents ! » pour annuler la vérification !</translation>
+        <translation>Veuillez vérifier les chiffres suivants. Vous devriez voir les mêmes chiffres des deux côtés. Si ceux-ci diffèrent, veuillez choisir «&#x202f;Ils sont différents&#x202f;!&#x202f;» pour annuler la vérification&#x202f;!</translation>
     </message>
     <message>
         <location line="+31"/>
         <source>They do not match!</source>
-        <translation>Ils sont différents !</translation>
+        <translation>Ils sont différents&#x202f;!</translation>
     </message>
     <message>
         <location line="+13"/>
         <source>They match!</source>
-        <translation>Ils sont identiques !</translation>
+        <translation>Ils sont identiques&#x202f;!</translation>
     </message>
 </context>
 <context>
@@ -483,17 +483,17 @@
     <message>
         <location line="+10"/>
         <source>Please verify the following emoji. You should see the same emoji on both sides. If they differ, please press &apos;They do not match!&apos; to abort verification!</source>
-        <translation>Veuillez vérifier les émoji suivants. Vous devriez voir les mêmes émoji des deux côtés. S&apos;ils diffèrent, veuillez choisir « Ils sont différents ! » pour annuler la vérification !</translation>
+        <translation>Veuillez vérifier les émoji suivants. Vous devriez voir les mêmes émoji des deux côtés. S&apos;ils diffèrent, veuillez choisir « Ils sont différents&#x202f;!&#x202f;» pour annuler la vérification&#x202f;!</translation>
     </message>
     <message>
         <location line="+376"/>
         <source>They do not match!</source>
-        <translation>Ils sont différents !</translation>
+        <translation>Ils sont différents&#x202f;!</translation>
     </message>
     <message>
         <location line="+13"/>
         <source>They match!</source>
-        <translation>Ils sont identiques !</translation>
+        <translation>Ils sont identiques&#x202f;!</translation>
     </message>
 </context>
 <context>
@@ -544,7 +544,7 @@
     <message>
         <location filename="../qml/EncryptionIndicator.qml" line="+34"/>
         <source>This message is not encrypted!</source>
-        <translation>Ce message n&apos;est pas chiffré !</translation>
+        <translation>Ce message n&apos;est pas chiffré&#x202f;!</translation>
     </message>
     <message>
         <location line="+4"/>
@@ -577,21 +577,30 @@
     <message>
         <location line="+4"/>
         <source>Key mismatch detected!</source>
-        <translation>Clés non correspondantes détectées !</translation>
+        <translation>Clés non correspondantes détectées&#x202f;!</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation>Délai dépassé pour la vérification de l&apos;appareil.</translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation>Le correspondant a annulé la vérification.</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation>Fermer</translation>
     </message>
@@ -612,7 +621,7 @@
         <translation>Modification du paquet d&apos;images</translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation>Ajouter des images</translation>
     </message>
@@ -622,7 +631,7 @@
         <translation>Autocollants (*.png *.webp *.gif *.jpg *.jpeg)</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation>Clef d&apos;état</translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation>Utiliser en tant qu&apos;émoji</translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation>Utiliser en tant qu&apos;autocollant</translation>
     </message>
@@ -697,7 +706,7 @@
         <translation>Nouveau paquet de salle</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation>Paquet privé</translation>
     </message>
@@ -712,7 +721,7 @@
         <translation>Paquet activé partout</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation>Activer partout</translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation>Sélectionnez un fichier</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation>Tous les types de fichiers (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation>Échec de l&apos;envoi du média. Veuillez réessayer.</translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation>Inviter des utilisateurs dans %1</translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished">Identifiant ou alias du salon</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">Quitter le salon</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished">Êtes-vous sûr·e de vouloir quitter ?</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -802,9 +837,9 @@
 You can also put your homeserver address there, if your server doesn&apos;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>Votre nom de connexion. Un mxid doit commencer par un « @ » suivi de l&apos;identifiant. L&apos;identifiant doit être suivi du nom de serveur, séparé de celui-ci par « : ».
+        <translation>Votre nom de connexion. Un mxid doit commencer par un «&#x202f;@&#x202f;» suivi de l&apos;identifiant. L&apos;identifiant doit être suivi du nom de serveur, séparé de celui-ci par «&#x202f;:&#x202f;».
 Vous pouvez également spécifier l&apos;adresse de votre serveur ici, si votre serveur ne supporte pas l&apos;identification .well-known.
-Exemple : @utilisateur :monserveur.example.com
+Exemple&#x202f;: @utilisateur&#x202f;:monserveur.example.com
 Si Nheko n&apos;arrive pas à trouver votre serveur, il vous proposera de l&apos;indiquer manuellement.</translation>
     </message>
     <message>
@@ -842,7 +877,7 @@ Si Nheko n&apos;arrive pas à trouver votre serveur, il vous proposera de l&apos
         <source>The address that can be used to contact you homeservers client API.
 Example: https://server.my:8787</source>
         <translation>L&apos;adresse qui peut être utilisée pour joindre l&apos;API client de votre serveur.
-Exemple : https ://monserveur.example.com:8787</translation>
+Exemple&#xa0;: https&#x202f;://monserveur.example.com:8787</translation>
     </message>
     <message>
         <location line="+19"/>
@@ -850,25 +885,25 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>CONNEXION</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
-        <translation>Vous avez entré un identifiant Matrix invalide  exemple correct : @moi:monserveur.example.com)</translation>
+        <translation>Vous avez entré un identifiant Matrix invalide  exemple correct&#x202f;: @moi:monserveur.example.com)</translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Échec de la découverte automatique. Réponse mal formée reçue.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Échec de la découverte automatique. Erreur inconnue lors de la demande de .well-known.</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Les endpoints requis n&apos;ont pas été trouvés. Ce n&apos;est peut-être pas un serveur Matrix.</translation>
     </message>
@@ -878,27 +913,45 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Réponse mal formée reçue. Vérifiez que le nom de domaine du serveur est valide.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>Une erreur inconnue est survenue. Vérifiez que le nom de domaine du serveur est valide.</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation>CONNEXION SSO</translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>Mot de passe vide</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation>Échec de la connexion SSO</translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+174"/>
@@ -914,7 +967,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
     <message>
         <location line="+22"/>
         <source>room name changed to: %1</source>
-        <translation>nom du salon changé en : %1</translation>
+        <translation>nom du salon changé en&#xa0;: %1</translation>
     </message>
     <message>
         <location line="+0"/>
@@ -924,7 +977,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
     <message>
         <location line="+12"/>
         <source>topic changed to: %1</source>
-        <translation>sujet changé en : %1</translation>
+        <translation>sujet changé en&#xa0;: %1</translation>
     </message>
     <message>
         <location line="+0"/>
@@ -939,7 +992,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
     <message>
         <location line="+12"/>
         <source>%1 created and configured room: %2</source>
-        <translation>%1 a créé et configuré le salon : %2</translation>
+        <translation>%1 a créé et configuré le salon&#xa0;: %2</translation>
     </message>
     <message>
         <location line="+15"/>
@@ -1023,7 +1076,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation>Modifier</translation>
     </message>
@@ -1043,7 +1096,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Options</translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation>&amp;Copier</translation>
@@ -1133,9 +1186,14 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Demande de vérification reçue</translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
-        <translation>Pour permettre aux autres utilisateurs de vérifier quels appareils de votre compte sont réellement les vôtres, vous pouvez les vérifier. Cela permet également à la sauvegarde des clés de fonctionner automatiquement. Vérifier %1 maintenant ?</translation>
+        <translation>Pour permettre aux autres utilisateurs de vérifier quels appareils de votre compte sont réellement les vôtres, vous pouvez les vérifier. Cela permet également à la sauvegarde des clés de fonctionner automatiquement. Vérifier %1 maintenant&#x202f;?</translation>
     </message>
     <message>
         <location line="+2"/>
@@ -1182,38 +1240,26 @@ Exemple : https ://monserveur.example.com:8787</translation>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
-        <translation>Vous allez notifier tout le salon</translation>
+        <source>You are about to notify the whole room</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation>%1 a envoyé un message chiffré</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation>* %1 %2</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation>%1 a répondu : %2</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation>%1 : %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1235,7 +1281,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
     <message>
         <location filename="../qml/voip/PlaceCall.qml" line="+48"/>
         <source>Place a call to %1?</source>
-        <translation>Appeler %1 ?</translation>
+        <translation>Appeler %1&#x202f;?</translation>
     </message>
     <message>
         <location line="+16"/>
@@ -1243,7 +1289,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Pas de microphone trouvé.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation>Vocal</translation>
     </message>
@@ -1268,13 +1314,13 @@ Exemple : https ://monserveur.example.com:8787</translation>
     <message>
         <location filename="../qml/delegates/Placeholder.qml" line="+11"/>
         <source>unimplemented event: </source>
-        <translation>Évènement non implémenté : </translation>
+        <translation>Évènement non implémenté&#xa0;: </translation>
     </message>
 </context>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation>Créer un profil unique, vous permettant de vous connecter simultanément à plusieurs comptes et de lancer plusieurs instances de nheko.</translation>
     </message>
@@ -1292,7 +1338,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation>Accusés de lecture</translation>
     </message>
@@ -1300,7 +1346,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation>Hier, %1</translation>
     </message>
@@ -1308,18 +1354,18 @@ Exemple : https ://monserveur.example.com:8787</translation>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>Nom d&apos;utilisateur</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
         <translation>Le nom d&apos;utilisateur ne doit pas être vide, et ne peut contenir que les caractères a-z, 0-9, ., _, =, -, et /.</translation>
     </message>
     <message>
-        <location line="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>Mot de passe</translation>
     </message>
@@ -1349,37 +1395,22 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>S&apos;ENREGISTRER</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation>Aucune méthode d&apos;inscription supportée !</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation>Jeton d&apos;enregistrement</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation>Veuillez entrer un jeton d&apos;enregistrement valide.</translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Échec de la découverte automatique. Réponse mal formée reçue.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Échec de la découverte automatique. Erreur inconnue lors de la demande de .well-known.</translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Les endpoints requis n&apos;ont pas été trouvés. Ce n&apos;est peut-être pas un serveur Matrix.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation>Réponse mal formée reçue. Vérifiez que le nom de domaine du serveur est valide.</translation>
     </message>
@@ -1389,7 +1420,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Une erreur inconnue est survenue. Vérifiez que le nom de domaine du serveur est valide.</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>Le mot de passe n&apos;est pas assez long (8 caractères minimum)</translation>
     </message>
@@ -1420,20 +1451,25 @@ Exemple : https ://monserveur.example.com:8787</translation>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation>Explorer les salons publics</translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation>Rechercher des salons publics</translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation>pas de version enregistrée</translation>
     </message>
@@ -1451,16 +1487,6 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Entrez l&apos;étiquette que vous voulez utiliser :</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation>Quitter le salon</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation>Êtes-vous sûr de vouloir quitter ce salon ?</translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation>Quitter le salon</translation>
@@ -1468,7 +1494,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
     <message>
         <location line="+5"/>
         <source>Tag room as:</source>
-        <translation>Étiqueter le salon comme :</translation>
+        <translation>Étiqueter le salon comme&#xa0;:</translation>
     </message>
     <message>
         <location line="+14"/>
@@ -1491,7 +1517,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Créer une nouvelle étiquette…</translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation>Message de statut</translation>
     </message>
@@ -1516,7 +1542,30 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Déconnexion</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished">Fermer</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation>Commencer une nouvelle discussion</translation>
     </message>
@@ -1544,12 +1593,12 @@ Exemple : https ://monserveur.example.com:8787</translation>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation>Membres de %1</translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation>
@@ -1586,12 +1635,12 @@ Exemple : https ://monserveur.example.com:8787</translation>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation>Configuration du salon</translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation>%1 membre(s)</translation>
     </message>
@@ -1697,12 +1746,12 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Version du salon</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
-        <translation>Échec de l&apos;activation du chiffrement : %1</translation>
+        <translation>Échec de l&apos;activation du chiffrement&#xa0;: %1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation>Sélectionner un avatar</translation>
     </message>
@@ -1719,49 +1768,77 @@ Exemple : https ://monserveur.example.com:8787</translation>
     <message>
         <location line="+5"/>
         <source>Error while reading file: %1</source>
-        <translation>Erreur lors de la lecture du fichier : %1</translation>
+        <translation>Erreur lors de la lecture du fichier&#xa0;: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
-        <translation>Échec de l&apos;envoi de l&apos;image : %s</translation>
+        <translation>Échec de l&apos;envoi de l&apos;image&#xa0;: %s</translation>
     </message>
 </context>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation>Invitation en attente.</translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation>Prévisualisation du salon</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation>Aucune prévisualisation disponible</translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
         <source>Share desktop with %1?</source>
-        <translation>Partager le bureau avec %1  ?</translation>
+        <translation>Partager le bureau avec %1&#x202f;&#x202f;?</translation>
     </message>
     <message>
         <location line="+11"/>
         <source>Window:</source>
-        <translation>Fenêtre :</translation>
+        <translation>Fenêtre&#x202f;:</translation>
     </message>
     <message>
         <location line="+20"/>
         <source>Frame rate:</source>
-        <translation>Fréquence d&apos;images :</translation>
+        <translation>Fréquence d&apos;images&#x202f;:</translation>
     </message>
     <message>
         <location line="+19"/>
@@ -1803,20 +1880,98 @@ Exemple : https ://monserveur.example.com:8787</translation>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation>Échec de la connexion au stockage des secrets</translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
-        <translation>Nheko n&apos;a pas pu se connecter au stockage des secrets pour y stocker les secrets de chiffrement. Plusieurs causes sont possibles. Vérifiez si votre service D-Bus est en cours d&apos;exécution et si vous avez configuré un service comme KWallet, Gnome Secrets, ou un équivalent pour votre plate-forme. En cas de difficulté, n&apos;hésitez pas à ouvrir un ticket ici (en anglais) : https://github.com/Nheko-Reborn/nheko/issues</translation>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation>Échec de la mise à jour du paquet d&apos;images : %1</translation>
@@ -1832,7 +1987,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Échec de l&apos;ouverture de l&apos;image : %1</translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation>Échec de l&apos;envoi de l&apos;image : %1</translation>
     </message>
@@ -1878,7 +2033,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
     <message>
         <location line="+12"/>
         <source>Verification successful! Both sides verified their devices!</source>
-        <translation>Vérification réussie !  Les deux côtés ont vérifié leur appareil !</translation>
+        <translation>Vérification réussie&#x202f;!  Les deux côtés ont vérifié leur appareil&#x202f;!</translation>
     </message>
     <message>
         <location line="+12"/>
@@ -1889,18 +2044,18 @@ Exemple : https ://monserveur.example.com:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
-        <translation>Échec de la suppression du message : %1</translation>
+        <translation>Échec de la suppression du message&#xa0;: %1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
-        <translation>Échec du chiffrement de l&apos;évènement, envoi abandonné !</translation>
+        <translation>Échec du chiffrement de l&apos;évènement, envoi abandonné&#x202f;!</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation>Enregistrer l&apos;image</translation>
     </message>
@@ -1920,7 +2075,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Enregistrer le fichier</translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation>
@@ -1929,7 +2084,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation>%1 a ouvert le salon au public.</translation>
     </message>
@@ -1969,12 +2124,12 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>%1 a rendu l&apos;historique du salon visible aux membre à partir de cet instant.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation>%1 a rendu l&apos;historique visible aux membres à partir de leur invitation.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation>%1 a rendu l&apos;historique du salon visible aux membres à partir de l&apos;instant où ils le rejoignent.</translation>
     </message>
@@ -1984,12 +2139,12 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>%1 a changé les permissions du salon.</translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation>%1 a été invité(e).</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation>%1 a changé son avatar.</translation>
     </message>
@@ -2004,12 +2159,12 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>%1 a rejoint le salon.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation>%1 a rejoint via une autorisation de la part du serveur de %2.</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 a rejeté son invitation.</translation>
     </message>
@@ -2039,27 +2194,27 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>%1 a été banni.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation>Raison : %1</translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation>%1 a arrêté de toquer.</translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation>Vous avez rejoint ce salon.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation>%1 a changé son avatar et changé son surnom en %2.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation>%1 a changé son surnom en %2.</translation>
     </message>
@@ -2072,7 +2227,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <location line="+2"/>
         <source>%1 left after having already left!</source>
         <comment>This is a leave event after the user already left and shouldn&apos;t happen apart from state resets</comment>
-        <translation>%1 a quitté le salon après l&apos;avoir déjà quitté !</translation>
+        <translation>%1 a quitté le salon après l&apos;avoir déjà quitté&#x202f;!</translation>
     </message>
     <message>
         <location line="+10"/>
@@ -2096,7 +2251,12 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Aucun salon ouvert</translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished">Aucune prévisualisation disponible</translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation>%1 membre(s)</translation>
     </message>
@@ -2122,27 +2282,19 @@ Exemple : https ://monserveur.example.com:8787</translation>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation>Aucune discussion privée chiffrée trouvée avec cet utilisateur. Créez-en une et réessayez.</translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation>Revenir à la liste des salons</translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation>Pas de salon sélectionné</translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation>Ce salon n&apos;est pas chiffré !</translation>
     </message>
@@ -2153,8 +2305,8 @@ Exemple : https ://monserveur.example.com:8787</translation>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
-        <translation>Ce salon contient des appareils vérifiés et des appareils qui n&apos;ont jamais changé leur clef maîtresse.</translation>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+2"/>
@@ -2201,9 +2353,34 @@ Exemple : https ://monserveur.example.com:8787</translation>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished">Veuillez entrer un jeton d&apos;enregistrement valide.</translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation>Profil général de l&apos;utilisateur</translation>
     </message>
@@ -2213,7 +2390,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Profil utilisateur spécifique au salon</translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation>Changer l&apos;image de profil partout.</translation>
     </message>
@@ -2223,7 +2400,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Changer l&apos;image de profil. Ne s&apos;appliquera qu&apos;à ce salon.</translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation>Changer de surnom partout.</translation>
     </message>
@@ -2233,7 +2410,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Changer de surnom. Ne s&apos;appliquera qu&apos;à ce salon.</translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation>Salon : %1</translation>
     </message>
@@ -2243,18 +2420,18 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Ceci est un profil spécifique à un salon. Le surnom et l&apos;image de profil peuvent être différents de leurs versions globales.</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation>Ouvrir le profil global de cet utilisateur.</translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation>Vérifier</translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation>Démarrer une discussion privée.</translation>
     </message>
@@ -2269,12 +2446,42 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Bannir l&apos;utilisateur.</translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation>Dé-vérifier</translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation>Sélectionnez un avatar</translation>
     </message>
@@ -2291,14 +2498,14 @@ Exemple : https ://monserveur.example.com:8787</translation>
     <message>
         <location line="+5"/>
         <source>Error while reading file: %1</source>
-        <translation>Erreur lors de la lecture du fichier  : %1</translation>
+        <translation>Erreur lors de la lecture du fichier&#xa0;&#xa0;: %1</translation>
     </message>
 </context>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation>Défaut</translation>
     </message>
@@ -2306,7 +2513,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>Réduire dans la barre des tâches</translation>
     </message>
@@ -2316,22 +2523,22 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>Démarrer dans la barre des tâches</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>Barre latérale des groupes</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation>Avatars circulaires</translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
-        <translation>profil : %1</translation>
+        <translation>profil&#x202f;: %1</translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation>Défaut</translation>
     </message>
@@ -2356,7 +2563,7 @@ Exemple : https ://monserveur.example.com:8787</translation>
         <translation>TÉLÉCHARGER</translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation>Conserver l&apos;application en arrière-plan après avoir fermé la fenêtre du client.</translation>
     </message>
@@ -2373,6 +2580,16 @@ OFF - square, ON - Circle.</source>
 OFF – carré, ON – cercle.</translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation>Affiche une colonne contenant les groupes et étiquettes à côté de la liste des salons.</translation>
@@ -2402,7 +2619,7 @@ be blurred.</source>
 sera floutée.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation>Attente pour l&apos;activation de la protection anti-indiscrétion (en secondes, 0 à 3600)</translation>
     </message>
@@ -2464,7 +2681,7 @@ Si activé, les salons qui ont des notifications actives (le petit cercle avec u
 Les salons que vous avez rendu silencieux seront toujours triés par date du dernier message, puisqu&apos;ils sont considérés comme moins importants.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>Accusés de lecture</translation>
     </message>
@@ -2476,7 +2693,7 @@ Status is displayed next to timestamps.</source>
 Le statut est montré près de la date des messages.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation>Composer les messages au format Markdown</translation>
     </message>
@@ -2565,7 +2782,7 @@ Cela met l&apos;application en évidence dans la barre des tâches.</translation
         <translation>Télécharge les clefs de chiffrement de message depuis et envoie vers la sauvegarde chiffrée en ligne de clefs.</translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation>Activer la sauvegarde de clefs en ligne</translation>
     </message>
@@ -2575,7 +2792,7 @@ Cela met l&apos;application en évidence dans la barre des tâches.</translation
         <translation>Les auteurs de Nheko ne recommandent pas d&apos;activer la sauvegarde en ligne de clefs jusqu&apos;à ce que la sauvegarde symétrique en ligne de clefs soit disponible. Activer quand même ?</translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation>EN CACHE</translation>
     </message>
@@ -2585,7 +2802,7 @@ Cela met l&apos;application en évidence dans la barre des tâches.</translation
         <translation>PAS DANS LE CACHE</translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation>Facteur d&apos;échelle</translation>
     </message>
@@ -2660,7 +2877,7 @@ Cela met l&apos;application en évidence dans la barre des tâches.</translation
         <translation>Empreinte de l&apos;appareil</translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation>Clés de session</translation>
     </message>
@@ -2680,17 +2897,17 @@ Cela met l&apos;application en évidence dans la barre des tâches.</translation
         <translation>CHIFFREMENT</translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>GÉNÉRAL</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation>INTERFACE</translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation>Joue les images comme les GIFs ou WEBPs uniquement quand la souris est au-dessus.</translation>
     </message>
@@ -2730,7 +2947,7 @@ Cela met l&apos;application en évidence dans la barre des tâches.</translation
         <translation>La clé utilisée pour vérifier d&apos;autres utilisateurs. Si celle-ci est dans le cache, vérifier un utilisateur vérifiera tous ses appareils.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation>Clé d&apos;auto-vérification</translation>
     </message>
@@ -2760,14 +2977,14 @@ Cela met l&apos;application en évidence dans la barre des tâches.</translation
         <translation>Tous les types de fichiers (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation>Ouvrir le fichier de sessions</translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2775,26 +2992,26 @@ Cela met l&apos;application en évidence dans la barre des tâches.</translation
         <translation>Erreur</translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation>Mot de passe du fichier</translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
-        <translation>Entrez la phrase de passe pour déchiffrer le fichier :</translation>
+        <translation>Entrez la phrase de passe pour déchiffrer le fichier&#xa0;:</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation>Le mot de passe ne peut être vide</translation>
     </message>
     <message>
         <location line="-8"/>
         <source>Enter passphrase to encrypt your session keys:</source>
-        <translation>Entrez une phrase de passe pour chiffrer vos clés de session :</translation>
+        <translation>Entrez une phrase de passe pour chiffrer vos clés de session&#xa0;:</translation>
     </message>
     <message>
         <location line="+15"/>
@@ -2803,6 +3020,14 @@ Cela met l&apos;application en évidence dans la barre des tâches.</translation
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished">Aucune discussion privée chiffrée trouvée avec cet utilisateur. Créez-en une et réessayez.</translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2856,7 +3081,7 @@ Cela met l&apos;application en évidence dans la barre des tâches.</translation
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation>Hier</translation>
     </message>
@@ -2928,37 +3153,6 @@ Cela met l&apos;application en évidence dans la barre des tâches.</translation
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation>Rejoindre</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>Annuler</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>Identifiant ou alias du salon</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation>Annuler</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>Êtes-vous sûr·e de vouloir quitter ?</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3024,47 +3218,47 @@ Taille du média : %2
         <translation>%1 a envoyé un message audio</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation>Vous avez envoyé une image</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation>%1 a envoyé une image</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation>Vous avez envoyé un fichier</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation>%1 a envoyé un fichier</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation>Vous avez envoyé une vidéo</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation>%1 a envoyé une vidéo</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation>Vous avez envoyé un autocollant</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation>%1 a envoyé un autocollant</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation>Vous avez envoyé une notification</translation>
     </message>
@@ -3076,12 +3270,12 @@ Taille du média : %2
     <message>
         <location line="+5"/>
         <source>You: %1</source>
-        <translation>Vous : %1</translation>
+        <translation>Vous&#xa0;: %1</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
-        <translation>%1 : %2</translation>
+        <translation>%1&#xa0;: %2</translation>
     </message>
     <message>
         <location line="+7"/>
@@ -3099,27 +3293,27 @@ Taille du média : %2
         <translation>Vous avez appelé</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation>%1 a appelé</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation>Vous avez répondu à un appel</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation>%1 a répondu à un appel</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation>Vous avez terminé un appel</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation>%1 a terminé un appel</translation>
     </message>
@@ -3127,7 +3321,7 @@ Taille du média : %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation>Type du message inconnu</translation>
     </message>
diff --git a/resources/langs/nheko_hu.ts b/resources/langs/nheko_hu.ts
index a0cd1ab5..ffef514b 100644
--- a/resources/langs/nheko_hu.ts
+++ b/resources/langs/nheko_hu.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation>Hívás...</translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>Videóhívás</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>Videóhívás</translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation>Az egész képernyő</translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>Nem sikerült meghívni a felhasználót: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>A felhasználó meg lett hívva: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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>A gyorsítótár átvitele a jelenlegi verzióhoz nem sikerült. Ennek több oka is lehet. Kérlek, írj egy hibajelentést és egyelőre próbálj meg egy régebbi verziót használni! Alternatív megoldásként megprobálhatod eltávolítani a gyorsítótárat kézzel.</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation>Csatlakozás megerősítése</translation>
     </message>
@@ -151,23 +151,23 @@
         <translation>Biztosan csatlakozni akarsz a(z) %1 szobához?</translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>A %1 nevű szoba létre lett hozva.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>Meghívás megerősítése</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Biztos, hogy meg akarod hívni a következő felhasználót: %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation>Nem sikerült %1 meghívása a(z) %2 szobába: %3</translation>
     </message>
@@ -182,7 +182,7 @@
         <translation>Biztosan ki akarod rúgni %1 (%2) felhasználót?</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>Kirúgott felhasználó: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation>Biztosan ki akarod tiltani %1 (%2) felhasználót?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>Nem sikerült kitiltani %1 felhasználót a %2 szobából: %3</translation>
     </message>
@@ -217,7 +217,7 @@
         <translation>Biztosan fel akarod oldani %1 (%2) felhasználó kitiltását?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation>Nem sikerült feloldani %1 felhasználó kitiltását a %2 szobából: %3</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Kitiltás feloldva a felhasználónak: %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation>Biztosan privát csevegést akarsz indítani %1 felhasználóval?</translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation>Gyorsítótár migráció nem sikerült!</translation>
     </message>
@@ -259,23 +259,23 @@
         <translation>Nem sikerült visszaállítani a mentési adatot. Kérlek, jelentkezz be ismét!</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>Nem sikerült beállítani a titkosítási kulcsokat. Válasz a szervertől: %1 %2. Kérlek, próbáld újra később!</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>Kérlek, próbálj meg bejelentkezni újra: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>Nem sikerült csatlakozni a szobához: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>Csatlakoztál a szobához</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation>Nem sikerült eltávolítani a meghívót: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>Nem sikerült létrehozni a szobát: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>Nem sikerült elhagyni a szobát: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation>Nem sikerült kirúgni %1 felhasználót %2 szobából: %3</translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation>Titkos tároló feloldása</translation>
     </message>
@@ -364,12 +364,12 @@
         <translation>Add meg a helyreállítási kulcsodat vagy a jelmondatodat a titkos tároló feloldásához:</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation>Add meg a %1 nevű helyreállítási kulcsodat vagy a jelmondatodat a titkos tároló feloldásához:</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation>Titkosítás feloldása nem sikerült</translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation>Időtúllépés az eszközhitelesítés alatt.</translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation>A másik fél megszakította a hitelesítést.</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation>Bezárás</translation>
     </message>
@@ -612,7 +621,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation type="unfinished"></translation>
     </message>
@@ -622,7 +631,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation type="unfinished"></translation>
     </message>
@@ -697,7 +706,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation type="unfinished"></translation>
     </message>
@@ -712,7 +721,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation type="unfinished"></translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation>Fájl kiválasztása</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation>Minden fájl (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation>Nem sikerült feltölteni a médiafájlt. Kérlek, próbáld újra!</translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished">Szoba azonosítója vagy álneve</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">Szoba elhagyása</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished">Biztosan távozni akarsz?</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -850,25 +885,25 @@ Példa: https://szerver.em:8787</translation>
         <translation>BEJELENTKEZÉS</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation>Érvénytelen Matrixazonosítót adtál meg. Példa: @janos:matrix.org</translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Az automatikus felderítés nem sikerült. Helytelen válasz érkezett.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Az automatikus felderítés nem sikerült. Ismeretlen hiba a .well-known lekérése közben.</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Nem találhatók szükséges végpontok. Lehet, hogy nem egy Matrixszerver.</translation>
     </message>
@@ -878,27 +913,45 @@ Példa: https://szerver.em:8787</translation>
         <translation>Helytelen válasz érkezett. Ellenőrizd, hogy a homeszervered domainje helyes.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>Egy ismeretlen hiba történt. Ellenőrizd, hogy a homeszervered domainje helyes.</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation>SSO BEJELENTKEZÉS</translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>Üres jelszó</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation>SSO bejelentkezés nem sikerült</translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+192"/>
@@ -1023,7 +1076,7 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation>Szerkesztés</translation>
     </message>
@@ -1043,7 +1096,7 @@ Példa: https://szerver.em:8787</translation>
         <translation>Műveletek</translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation type="unfinished"></translation>
@@ -1133,7 +1186,12 @@ Példa: https://szerver.em:8787</translation>
         <translation>Hitelesítési kérés érkezett</translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation>Hogy mások láthassák, melyik eszköz tartozik valóban hozzád, hitelesíteni tudod őket. Ez arra is lehetőséget ad, hogy automatikus biztonsági másolat készüljön a kulcsokról. Hitelesíted a %1 nevű eszközt most?</translation>
     </message>
@@ -1182,7 +1240,7 @@ Példa: https://szerver.em:8787</translation>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
+        <source>You are about to notify the whole room</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1190,30 +1248,18 @@ Példa: https://szerver.em:8787</translation>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation>%1 küldött egy titkosított üzenetet</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation>* %1 %2</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation>%1 válasza: %2</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation>%1: %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1243,7 +1289,7 @@ Példa: https://szerver.em:8787</translation>
         <translation>Nem található mikrofon.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation>Hang</translation>
     </message>
@@ -1274,7 +1320,7 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation>Egy egyedi profil létrehozása, amellyel be tudsz jelentkezni egyszerre több fiókon keresztül és a Nheko több példányát is tudod futtatni.</translation>
     </message>
@@ -1292,7 +1338,7 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation type="unfinished">Olvasási jegyek</translation>
     </message>
@@ -1300,7 +1346,7 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1308,18 +1354,18 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>Felhasználónév</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
         <translation>A felhasználónév nem lehet üres és csak a következő karaktereket tartalmazhatja: a-z, 0-9, ., _, =, - és /.</translation>
     </message>
     <message>
-        <location line="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>Jelszó</translation>
     </message>
@@ -1349,37 +1395,22 @@ Példa: https://szerver.em:8787</translation>
         <translation>REGISZTRÁCIÓ</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation>Nem támogatott regisztrációs folyamat!</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished">Az automatikus felderítés nem sikerült. Helytelen válasz érkezett.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished">Az automatikus felderítés nem sikerült. Ismeretlen hiba a .well-known lekérése közben.</translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished">Nem találhatók szükséges végpontok. Lehet, hogy nem egy Matrixszerver.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished">Helytelen válasz érkezett. Ellenőrizd, hogy a homeszervered domainje helyes.</translation>
     </message>
@@ -1389,7 +1420,7 @@ Példa: https://szerver.em:8787</translation>
         <translation type="unfinished">Egy ismeretlen hiba történt. Ellenőrizd, hogy a homeszervered domainje helyes.</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>A jelszó nem elég hosszú (legalább 8 karakter)</translation>
     </message>
@@ -1420,20 +1451,25 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation>nincs tárolva verzió</translation>
     </message>
@@ -1451,16 +1487,6 @@ Példa: https://szerver.em:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation type="unfinished">Szoba elhagyása</translation>
@@ -1491,7 +1517,7 @@ Példa: https://szerver.em:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1516,7 +1542,30 @@ Példa: https://szerver.em:8787</translation>
         <translation type="unfinished">Kijelentkezés</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished">Bezárás</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation type="unfinished">Új csevegés indítása</translation>
     </message>
@@ -1544,12 +1593,12 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation type="unfinished">
@@ -1585,12 +1634,12 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation>Szobabeállítások</translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation>%1 tag</translation>
     </message>
@@ -1696,12 +1745,12 @@ Példa: https://szerver.em:8787</translation>
         <translation>Szoba verziója</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Nem sikerült a titkosítás aktiválása: %1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation>Profilkép kiválasztása</translation>
     </message>
@@ -1721,8 +1770,8 @@ Példa: https://szerver.em:8787</translation>
         <translation>Hiba a fájl olvasása közben: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation>Nem sikerült a kép feltöltése: %s</translation>
     </message>
@@ -1730,22 +1779,50 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1802,20 +1879,98 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
@@ -1831,7 +1986,7 @@ Példa: https://szerver.em:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1888,18 +2043,18 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation>Az üzenet visszavonása nem sikerült: %1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation>Nem sikerült titkosítani az eseményt, küldés megszakítva!</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation>Kép mentése</translation>
     </message>
@@ -1919,7 +2074,7 @@ Példa: https://szerver.em:8787</translation>
         <translation>Fájl mentése</translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation>
@@ -1927,7 +2082,7 @@ Példa: https://szerver.em:8787</translation>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation>%1 nyilvánosan elérhetővé tette a szobát.</translation>
     </message>
@@ -1967,12 +2122,12 @@ Példa: https://szerver.em:8787</translation>
         <translation>%1 beállította, hogy a szoba előzményei ezentúl csak a tagok számára legyenek láthatóak.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation>%1 beállította, hogy a szoba előzményei láthatóak legyenek a tagok számára a meghívásuktól kezdve.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation>%1 beállította, hogy a szoba előzményei láthatóak legyenek a tagok számára a csatlakozásuktól kezdve.</translation>
     </message>
@@ -1982,12 +2137,12 @@ Példa: https://szerver.em:8787</translation>
         <translation>%1 megváltoztatta a szoba engedélyeit.</translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation>%1 meg lett hívva.</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation>%1 megváltoztatta a profilképét.</translation>
     </message>
@@ -2002,12 +2157,12 @@ Példa: https://szerver.em:8787</translation>
         <translation>%1 csatlakozott.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 elutasította a meghívását.</translation>
     </message>
@@ -2037,27 +2192,27 @@ Példa: https://szerver.em:8787</translation>
         <translation>%1 ki lett tiltva.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation>%1 visszavonta a kopogását.</translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation>Csatlakoztál ehhez a szobához.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2094,7 +2249,12 @@ Példa: https://szerver.em:8787</translation>
         <translation>Nincs nyitott szoba</translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation type="unfinished">%1 tag</translation>
     </message>
@@ -2120,27 +2280,19 @@ Példa: https://szerver.em:8787</translation>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation>Nem található titkosított privát csevegés ezzel a felhasználóval. Hozz létre egy titkosított privát csevegést vele, és próbáld újra!</translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation>Vissza a szobák listájára</translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation>Nincs kiválasztva szoba</translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2151,7 +2303,7 @@ Példa: https://szerver.em:8787</translation>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -2199,9 +2351,34 @@ Példa: https://szerver.em:8787</translation>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation>Globális felhasználói profil</translation>
     </message>
@@ -2211,7 +2388,7 @@ Példa: https://szerver.em:8787</translation>
         <translation>Szobai felhasználói profil</translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2221,7 +2398,7 @@ Példa: https://szerver.em:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2231,7 +2408,7 @@ Példa: https://szerver.em:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2241,18 +2418,18 @@ Példa: https://szerver.em:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation>Hitelesítés</translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2267,12 +2444,42 @@ Példa: https://szerver.em:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation>Hitelesítés visszavonása</translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation>Profilkép kiválasztása</translation>
     </message>
@@ -2295,8 +2502,8 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation>Alapértelmezett</translation>
     </message>
@@ -2304,7 +2511,7 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>Kicsinyítés a tálcára</translation>
     </message>
@@ -2314,22 +2521,22 @@ Példa: https://szerver.em:8787</translation>
         <translation>Indítás a tálcán</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>Csoport oldalsávja</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation>Kerekített profilképek</translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation>profil: %1</translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation>Alapértelmezett</translation>
     </message>
@@ -2354,7 +2561,7 @@ Példa: https://szerver.em:8787</translation>
         <translation>LETÖLTÉS</translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation>Az alkalmazás azután is a háttérben fut, miután be lett zárva a főablak.</translation>
     </message>
@@ -2371,6 +2578,16 @@ OFF - square, ON - Circle.</source>
 KI - szögletes, BE - kerek.</translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation>Csoportok és címkék megjelenítése a szobák listája mellett egy oszlopban.</translation>
@@ -2400,7 +2617,7 @@ be blurred.</source>
 az idővonal homályosítva lesz.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation>Idővonal kitakarása ennyi idő után (másodpercben, 0 és 3600 között)</translation>
     </message>
@@ -2461,7 +2678,7 @@ Ha ki van kapcsolva, a szobák sorrendje csak a bennük lévő utolsó üzenet d
 Ha be van kapcsolva, azok a szobák kerülnek felülre, amelyekhez aktív értesítés tartozik (amelyet a számot tartalmazó kis kör jelez). A némított szobák továbbra is dátum alapján lesznek rendezve, mivel nem valószínű, hogy ezeket annyira fontosnak tartod, mint a többi szobát.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>Olvasási jegyek</translation>
     </message>
@@ -2473,7 +2690,7 @@ Status is displayed next to timestamps.</source>
 Ez az állapot az üzenetek ideje mellett jelenik meg.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation>Üzenetek küldése Markdownként</translation>
     </message>
@@ -2562,7 +2779,7 @@ Ettől általában animálttá válik az alkalmazásablakok listáján szereplő
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2572,7 +2789,7 @@ Ettől általában animálttá válik az alkalmazásablakok listáján szereplő
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation>GYORSÍTÓTÁRAZVA</translation>
     </message>
@@ -2582,7 +2799,7 @@ Ettől általában animálttá válik az alkalmazásablakok listáján szereplő
         <translation>NINCS GYORSÍTÓTÁRAZVA</translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation>Nagyítási tényező</translation>
     </message>
@@ -2657,7 +2874,7 @@ Ettől általában animálttá válik az alkalmazásablakok listáján szereplő
         <translation>Eszközujjlenyomat</translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation>Munkamenetkulcsok</translation>
     </message>
@@ -2677,17 +2894,17 @@ Ettől általában animálttá válik az alkalmazásablakok listáján szereplő
         <translation>TITKOSÍTÁS</translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>ÁLTALÁNOS</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation>FELÜLET</translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2727,7 +2944,7 @@ Ettől általában animálttá válik az alkalmazásablakok listáján szereplő
         <translation>A mások hitelesítésére használt kulcs. Ha gyorsítótárazva van, egy felhasználó hitelesítésekor hitelesítve lesz az összes eszköze.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation>Önaláírókulcs</translation>
     </message>
@@ -2757,14 +2974,14 @@ Ettől általában animálttá válik az alkalmazásablakok listáján szereplő
         <translation>Minden fájl (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation>Munkameneti fájl megnyitása</translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2772,19 +2989,19 @@ Ettől általában animálttá válik az alkalmazásablakok listáján szereplő
         <translation>Hiba</translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation>Fájljelszó</translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation>Írd be a jelmondatot a fájl titkosításának feloldásához:</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation>A jelszó nem lehet üres</translation>
     </message>
@@ -2800,6 +3017,14 @@ Ettől általában animálttá válik az alkalmazásablakok listáján szereplő
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished">Nem található titkosított privát csevegés ezzel a felhasználóval. Hozz létre egy titkosított privát csevegést vele, és próbáld újra!</translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2853,7 +3078,7 @@ Ettől általában animálttá válik az alkalmazásablakok listáján szereplő
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation>Tegnap</translation>
     </message>
@@ -2925,37 +3150,6 @@ Ettől általában animálttá válik az alkalmazásablakok listáján szereplő
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation>Csatlakozás</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>Mégse</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>Szoba azonosítója vagy álneve</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation>Mégse</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>Biztosan távozni akarsz?</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3021,47 +3215,47 @@ Média mérete: %2
         <translation>%1 küldött egy hangfájlt</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation>Küldtél egy képet</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation>%1 küldött egy képet</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation>Küldtél egy fájlt</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation>%1 küldtél egy fájlt</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation>Küldtél egy videót</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation>%1 küldött egy videót</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation>Küldtél egy matricát</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation>%1 küldött egy matricát</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation>Küldtél egy értesítést</translation>
     </message>
@@ -3076,7 +3270,7 @@ Média mérete: %2
         <translation>Te: %1</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation>%1: %2</translation>
     </message>
@@ -3096,27 +3290,27 @@ Média mérete: %2
         <translation>Hívást kezdeményeztél</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation>%1 hívást kezdeményezett</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation>Fogadtál egy hívást</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation>%1 hívást fogadott</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation>Befejeztél egy hívást</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation>%1 befejezett egy hívást</translation>
     </message>
@@ -3124,7 +3318,7 @@ Média mérete: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation>Ismeretlen üzenettípus</translation>
     </message>
diff --git a/resources/langs/nheko_id.ts b/resources/langs/nheko_id.ts
index 4b78df09..accb1eab 100644
--- a/resources/langs/nheko_id.ts
+++ b/resources/langs/nheko_id.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation>Memanggil...</translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>Panggilan Video</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>Panggilan Video</translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation>Semua layar</translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>Gagal mengundang pengguna: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>Pengguna yang diundang: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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>Migrasi cache ke versi saat ini gagal. Ini dapat memiliki alasan yang berbeda. Silakan buka masalah dan coba gunakan versi yang lebih lama untuk sementara. Alternatifnya Anda dapat mencoba menghapus cache secara manual.</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation>Konfirmasi untuk bergabung</translation>
     </message>
@@ -151,23 +151,23 @@
         <translation>Apakah Anda ingin bergabung %1?</translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>Ruangan %1 telah dibuat.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>Konfirmasi undangan</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Apakah Anda ingin menundang %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation>Gagal mengundang %1 ke %2: %3</translation>
     </message>
@@ -182,7 +182,7 @@
         <translation>Apakah Anda ingin mengeluarkan %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>Pengguna yang dikeluarkan: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation>Apakah Anda ingin mencekal %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>Gagal mencekal %1 di %2: %3</translation>
     </message>
@@ -217,7 +217,7 @@
         <translation>Apakah Anda ingin menghilangkan cekalan %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation>Gagal menghilangkan pencekalan %1 di %2: %3</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Menghilangkan cekalan pengguna: %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation>Apakah Anda ingin memulai chat privat dengan %1?</translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation>Migrasi cache gagal!</translation>
     </message>
@@ -259,23 +259,23 @@
         <translation>Gagal memulihkan data simpanan. Mohon masuk lagi.</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>Gagal menyiapkan kunci enkripsi. Respons server: %1 %2. Silakan coba lagi nanti.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>Mohon mencoba masuk lagi: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>Gagal bergabung ruangan: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>Anda bergabung ruangan ini</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation>Gagal menghapus undangan: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>Pembuatan ruangan gagal: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>Gagal meninggalkan ruangan: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation>Gagal mengeluarkan %1 dari %2: %3</translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation>Dekripsi rahasia</translation>
     </message>
@@ -364,12 +364,12 @@
         <translation>Masukkan kunci pemulihan Anda atau frasa sandi untuk mendekripsikan rahasia Anda:</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation>Masukkan kunci pemulihan Anda atau frasa sandi yang bernama %1 untuk mendekripsikan rahasia Anda:</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation>Gagal mendekripsi</translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation>Waktu verifikasi perangkat habis.</translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation>Pengguna yang lain membatalkan proses verifikasi ini.</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation>Tutup</translation>
     </message>
@@ -612,7 +621,7 @@
         <translation>Mengedit paket gambar</translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation>Tambahkan gambar</translation>
     </message>
@@ -622,7 +631,7 @@
         <translation>Stiker (*.png *.webp *.gif *.jpg *.jpeg)</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation>Kunci keadaan</translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation>Gunakan sebagai Emoji</translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation>Gunakan sebagai Stiker</translation>
     </message>
@@ -697,7 +706,7 @@
         <translation>Paket ruangan baru</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation>Paket privat</translation>
     </message>
@@ -712,7 +721,7 @@
         <translation>Paket yang diaktifkan secara global</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation>Aktifkan secara global</translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation>Pilih sebuah file</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation>Semua File (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation>Gagal untuk mengunggah media. Silakan coba lagi.</translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation>Undang pengguna ke %1</translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished">ID ruangan atau alias</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">Tinggalkan ruangan</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished">Apakah Anda yakin untuk meninggalkan ruangan?</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -850,25 +885,25 @@ Misalnya: https://server.my:8787</translation>
         <translation>MASUK</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation>Anda telah memasukkan ID Matrix yang tidak valid  mis. @pengguna:matrix.org</translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Penemuan otomatis gagal. Menerima respons cacat.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Penemuan otomatis gagal. Kesalahan yang tidak diketahu saat meminta .well-known.</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Titik akhir yang dibutuhkan tidak dapat ditemukan. Kemungkinan bukan server Matrix.</translation>
     </message>
@@ -878,27 +913,45 @@ Misalnya: https://server.my:8787</translation>
         <translation>Menerima respons cacat. Pastikan domain homeservernya valid.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>Terjadi kesalahan yang tidak diketahui. Pastikan domain homeservernya valid.</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation>LOGIN SSO</translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>Kata sandi kosong</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation>Login SSO gagal</translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+192"/>
@@ -1023,7 +1076,7 @@ Misalnya: https://server.my:8787</translation>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation>Edit</translation>
     </message>
@@ -1043,7 +1096,7 @@ Misalnya: https://server.my:8787</translation>
         <translation>Opsi</translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation>&amp;Salin</translation>
@@ -1133,7 +1186,12 @@ Misalnya: https://server.my:8787</translation>
         <translation>Menerima Permintaan Verifikasi</translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation>Untuk mengizinkan pengguna yang lain untuk melihat, perangkat apa saja yang sebenarnya milik Anda, verifiksi mereka. Ini juga dapat membuat kunci cadangan bekerja secara otomatis. Verifikasi %1 sekarang?</translation>
     </message>
@@ -1182,38 +1240,26 @@ Misalnya: https://server.my:8787</translation>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
-        <translation>Anda akan memberitahukan seluruh ruangan</translation>
+        <source>You are about to notify the whole room</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation>%1 mengirim pesan terenkripsi</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation>* %1 %2</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation>%1 membalas: %2</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation>%1: %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1243,7 +1289,7 @@ Misalnya: https://server.my:8787</translation>
         <translation>Tidak ada mikrofon yang ditemukan.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation>Suara</translation>
     </message>
@@ -1274,7 +1320,7 @@ Misalnya: https://server.my:8787</translation>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation>Membuat profil yang unik, yang mengizinkan Anda untuk masuk ke beberapa akun pada waktu bersamaan dan mulai beberapa instansi nheko.</translation>
     </message>
@@ -1292,7 +1338,7 @@ Misalnya: https://server.my:8787</translation>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation>Laporan dibaca</translation>
     </message>
@@ -1300,7 +1346,7 @@ Misalnya: https://server.my:8787</translation>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation>Kemarin, %1</translation>
     </message>
@@ -1308,18 +1354,18 @@ Misalnya: https://server.my:8787</translation>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>Nama pengguna</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
         <translation>Nama pengguna tidak boleh kosong, dan hanya mengandung karakter a-z, 0-9, ., _, =, -, dan /.</translation>
     </message>
     <message>
-        <location line="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>Kata sandi</translation>
     </message>
@@ -1349,37 +1395,22 @@ Misalnya: https://server.my:8787</translation>
         <translation>DAFTAR</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation>Tidak ada aliran pendaftaran yang didukung!</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation>Token pendaftaran</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation>Mohon masukkan token pendaftaran yang valid.</translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Penemuan otomatis gagal. Menerima respons cacat.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Penemuan otomatis gagal. Terjadi kesalahan yang tidak diketahui saat meminta .well-known.</translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Titik akhir yang dibutuhkan tidak dapat ditemukan. Kemungkinan bukan server Matrix.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation>Menerima respons cacat. Pastikan domain homeservernya valid.</translation>
     </message>
@@ -1389,7 +1420,7 @@ Misalnya: https://server.my:8787</translation>
         <translation>Terjadi kesalahan yang tidak diketahui. Pastikan domain homeservernya valid.</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>Kata sandi kurang panjang (min. 8 karakter)</translation>
     </message>
@@ -1420,20 +1451,25 @@ Misalnya: https://server.my:8787</translation>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation>Temukan Ruangan Publik</translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation>Cari ruangan publik</translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation>tidak ada versi yang disimpan</translation>
     </message>
@@ -1451,16 +1487,6 @@ Misalnya: https://server.my:8787</translation>
         <translation>Masukkan tanda yang Anda ingin gunakan:</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation>Tinggalkan ruangan</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation>Apakah Anda yakin untuk meninggalkan ruangan ini?</translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation>Tinggalkan ruangan</translation>
@@ -1491,7 +1517,7 @@ Misalnya: https://server.my:8787</translation>
         <translation>Membuat tanda baru…</translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation>Pesan Status</translation>
     </message>
@@ -1516,7 +1542,30 @@ Misalnya: https://server.my:8787</translation>
         <translation>Keluar</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished">Tutup</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation>Mulai chat baru</translation>
     </message>
@@ -1544,12 +1593,12 @@ Misalnya: https://server.my:8787</translation>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation>Anggota dari %1</translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation>
@@ -1585,12 +1634,12 @@ Misalnya: https://server.my:8787</translation>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation>Pengaturan Ruangan</translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation>%1 anggota</translation>
     </message>
@@ -1696,12 +1745,12 @@ Misalnya: https://server.my:8787</translation>
         <translation>Versi Ruangan</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Gagal mengaktifkan enkripsi: %1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation>Pilih sebuah avatar</translation>
     </message>
@@ -1721,8 +1770,8 @@ Misalnya: https://server.my:8787</translation>
         <translation>Terjadi kesalahan saat membaca file: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation>Gagal mengunggah gambar: %s</translation>
     </message>
@@ -1730,22 +1779,50 @@ Misalnya: https://server.my:8787</translation>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation>Undangan tertunda.</translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation>Menampilkan ruangan ini</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation>Tidak ada tampilan yang tersedia</translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1802,20 +1879,98 @@ Misalnya: https://server.my:8787</translation>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation>Gagal menghubungkan ke penyimpanan rahasia</translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
-        <translation>Nheko tidak dapat terhubung ke penyimpanan aman untuk menyimpan rahasia enkripsi. Ini dapat memiliki beberapa alasan. Periksa apakah layanan D-Bus Anda berjalan dan Anda telah mengonfigurasi layanan seperti KWallet, Gnome Secrets atau yang setara untuk platform Anda. Jika Anda mengalami masalah, silakan membuka masalah di sini: https://github.com/Nheko-Reborn/nheko/issues</translation>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation>Gagal memperbarui paket gambar: %1</translation>
@@ -1831,7 +1986,7 @@ Misalnya: https://server.my:8787</translation>
         <translation>Gagal membuka gambar: %1</translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation>Gagal mengunggah gambar: %1</translation>
     </message>
@@ -1888,18 +2043,18 @@ Misalnya: https://server.my:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation>Reaksi pesan gagal: %1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation>Gagal mendekripsikan peristiwa, pengiriman dihentikan!</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation>Simpan gambar</translation>
     </message>
@@ -1919,7 +2074,7 @@ Misalnya: https://server.my:8787</translation>
         <translation>Simpan file</translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation>
@@ -1927,7 +2082,7 @@ Misalnya: https://server.my:8787</translation>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation>%1 membuka ruangan ke publik.</translation>
     </message>
@@ -1967,12 +2122,12 @@ Misalnya: https://server.my:8787</translation>
         <translation>%1 membuat sejarah ruangan bisa dilihat oleh anggota dari titik sekarang.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation>%1 membuat sejarah ruangan bisa dilihat oleh anggota yang telah diundang.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation>%1 membuat sejarah ruangan bisa dilihat oleh anggota yang telah bergabung ke ruangan ini.</translation>
     </message>
@@ -1982,12 +2137,12 @@ Misalnya: https://server.my:8787</translation>
         <translation>%1 telah mengubah izin ruangan.</translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation>%1 diundang.</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation>%1 mengubah avatarnya.</translation>
     </message>
@@ -2002,12 +2157,12 @@ Misalnya: https://server.my:8787</translation>
         <translation>%1 bergabung.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation>%1 bergabung via otorisasi dari servernya %2.</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 menolak undangannya.</translation>
     </message>
@@ -2037,27 +2192,27 @@ Misalnya: https://server.my:8787</translation>
         <translation>%1 telah dicekal.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation>Alasan: %1</translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation>%1 menolak ketukannya.</translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation>Anda bergabung ruangan ini.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation>%1 mengubah avatarnya dan ubah nama tampilannya ke %2.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation>%1 mengubah nama tampilannya ke %2.</translation>
     </message>
@@ -2094,7 +2249,12 @@ Misalnya: https://server.my:8787</translation>
         <translation>Tidak ada ruangan yang dibuka</translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished">Tidak ada tampilan yang tersedia</translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation>%1 anggota</translation>
     </message>
@@ -2120,27 +2280,19 @@ Misalnya: https://server.my:8787</translation>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation>Tidak ada chat privat terenkripsi ditemukan dengan pengguna ini. Buat chat privat terenkripsi dengan pengguna ini dan coba lagi.</translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation>Kembali ke daftar ruangan</translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation>Tidak ada ruangan yang dipilih</translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation>Ruangan ini tidak dienkripsi!</translation>
     </message>
@@ -2151,8 +2303,8 @@ Misalnya: https://server.my:8787</translation>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
-        <translation>Ruangan ini berisi verifikasi yang telah diverifikasi dan perangkat yang tidak pernah mengubah kunci utamanya.</translation>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+2"/>
@@ -2199,9 +2351,34 @@ Misalnya: https://server.my:8787</translation>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished">Mohon masukkan token pendaftaran yang valid.</translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation>Profil Pengguna Global</translation>
     </message>
@@ -2211,7 +2388,7 @@ Misalnya: https://server.my:8787</translation>
         <translation>Profil Pengguna di Ruangan</translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation>Ubah avatar secara global.</translation>
     </message>
@@ -2221,7 +2398,7 @@ Misalnya: https://server.my:8787</translation>
         <translation>Ubah avatar. Hanya diterapkan di ruangan ini.</translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation>Ubah nama tampilan secara global.</translation>
     </message>
@@ -2231,7 +2408,7 @@ Misalnya: https://server.my:8787</translation>
         <translation>Ubah nama tampilan. Hanya diterapkan di ruangan ini.</translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation>Ruangan: %1</translation>
     </message>
@@ -2241,18 +2418,18 @@ Misalnya: https://server.my:8787</translation>
         <translation>Ini adalah profile specifik ruangan. Nama pengguna dan avatar mungkin berbeda dari versi globalnya.</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation>Buka profil global untuk pengguna ini.</translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation>Verifikasi</translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation>Mulai chat privat.</translation>
     </message>
@@ -2267,12 +2444,42 @@ Misalnya: https://server.my:8787</translation>
         <translation>Cekal pengguna ini.</translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation>Hilangkan verifikasi</translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation>Pilih sebuah avatar</translation>
     </message>
@@ -2295,8 +2502,8 @@ Misalnya: https://server.my:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation>Default</translation>
     </message>
@@ -2304,7 +2511,7 @@ Misalnya: https://server.my:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>Perkecil ke baki</translation>
     </message>
@@ -2314,22 +2521,22 @@ Misalnya: https://server.my:8787</translation>
         <translation>Mulai di baki</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>Bilah samping grup</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation>Avatar Bundar</translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation>profil: %1</translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation>Default</translation>
     </message>
@@ -2354,7 +2561,7 @@ Misalnya: https://server.my:8787</translation>
         <translation>UNDUH</translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation>Membiarkan aplikasi berjalan di latar belakang setelah menutup jendela klien.</translation>
     </message>
@@ -2371,6 +2578,16 @@ OFF - square, ON - Circle.</source>
 MATI - persegi, NYALA - Lingkaran.</translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation>Menampilkan kolom yang berisi grup dan tanda di sebelah daftar ruangan.</translation>
@@ -2400,7 +2617,7 @@ be blurred.</source>
 akan diburamkan.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation>Waktu kehabisan layar privasi (dalam detik [0 - 3600])</translation>
     </message>
@@ -2460,7 +2677,7 @@ Jika ini dimatikan, daftar ruangan hanya diurutkan dari waktu pesan terakhir di
 Jika ini dinyalakan, ruangan yang mempunyai notifikasi aktif (lingkaran kecil dengan nomor didalam) akan diurutkan di atas. Ruangan, yang dibisukan, masih diurutkan dari waktu, karena Anda tidak pertimangkan mereka sebagai penting dengan ruangan yang lain.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>Laporan dibaca</translation>
     </message>
@@ -2472,7 +2689,7 @@ Status is displayed next to timestamps.</source>
 Status akan ditampilkan disebelah waktu menerima pesan.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation>Kirim pesan sebagai Markdown</translation>
     </message>
@@ -2561,7 +2778,7 @@ Ini biasanya menyebabkan ikon aplikasi di bilah tugas untuk beranimasi.</transla
         <translation>Unduh kunci enkripsi pesan dari dan unggah ke cadangan kunci online terenkripsi.</translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation>Aktifkan cadangan kunci online</translation>
     </message>
@@ -2571,7 +2788,7 @@ Ini biasanya menyebabkan ikon aplikasi di bilah tugas untuk beranimasi.</transla
         <translation>Pengembang Nheko merekomendasikan untuk tidak mengaktifkan pencadangan kunci online hingga pencadangan kunci online simetris tersedia. Tetap mengaktifkan?</translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation>DICACHE</translation>
     </message>
@@ -2581,7 +2798,7 @@ Ini biasanya menyebabkan ikon aplikasi di bilah tugas untuk beranimasi.</transla
         <translation>TIDAK DICACHE</translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation>Faktor skala</translation>
     </message>
@@ -2656,7 +2873,7 @@ Ini biasanya menyebabkan ikon aplikasi di bilah tugas untuk beranimasi.</transla
         <translation>Sidik Jari Perangkat</translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation>Kunci Perangkat</translation>
     </message>
@@ -2676,17 +2893,17 @@ Ini biasanya menyebabkan ikon aplikasi di bilah tugas untuk beranimasi.</transla
         <translation>ENKRIPSI</translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>UMUM</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation>ANTARMUKA</translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation>Memainkan media seperti GIF atau WEBP ketika kursor di atas medianya.</translation>
     </message>
@@ -2726,7 +2943,7 @@ Ini biasanya menyebabkan ikon aplikasi di bilah tugas untuk beranimasi.</transla
         <translation>Kunci untuk memverifikasi pengguna lain. Jika dicache, memverifikasi sebuah pengguna akan memverifikasi semua perangkat mereka.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation>Kunci penandatanganan diri</translation>
     </message>
@@ -2756,14 +2973,14 @@ Ini biasanya menyebabkan ikon aplikasi di bilah tugas untuk beranimasi.</transla
         <translation>Semua File (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation>Buka File Sesi</translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2771,19 +2988,19 @@ Ini biasanya menyebabkan ikon aplikasi di bilah tugas untuk beranimasi.</transla
         <translation>Kesalahan</translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation>Kata Sandi File</translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation>Masukkan kata sandi untuk mendekripsi filenya:</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation>Kata sandi tidak boleh kosong</translation>
     </message>
@@ -2799,6 +3016,14 @@ Ini biasanya menyebabkan ikon aplikasi di bilah tugas untuk beranimasi.</transla
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished">Tidak ada chat privat terenkripsi ditemukan dengan pengguna ini. Buat chat privat terenkripsi dengan pengguna ini dan coba lagi.</translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2852,7 +3077,7 @@ Ini biasanya menyebabkan ikon aplikasi di bilah tugas untuk beranimasi.</transla
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation>Kemarin</translation>
     </message>
@@ -2924,37 +3149,6 @@ Ini biasanya menyebabkan ikon aplikasi di bilah tugas untuk beranimasi.</transla
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation>Bergabung</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>Batalkan</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>ID ruangan atau alias</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation>Batalkan</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>Apakah Anda yakin untuk meninggalkan ruangan?</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3020,47 +3214,47 @@ Ukuran media: %2
         <translation>%1 mengirim klip audio</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation>Anda mengirim sebuah pesan</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation>%1 mengirim sebuah gambar</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation>Anda mengirim sebuah file</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation>%1 mengirim sebuah file</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation>Anda mengirim sebuah video</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation>%1 mengirim sebuah video</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation>Anda mengirim sebuah stiker</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation>%1 mengirim sebuah stiker</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation>Anda mengirim sebuah notifikasi</translation>
     </message>
@@ -3075,7 +3269,7 @@ Ukuran media: %2
         <translation>Anda: %1</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation>%1: %2</translation>
     </message>
@@ -3095,27 +3289,27 @@ Ukuran media: %2
         <translation>Anda melakukan panggilan</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation>%1 melakukan panggilan</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation>Anda menjawab panggilan</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation>%1 menjawab panggilan</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation>Anda mengakhiri panggilan</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation>%1 mengakhiri panggilan</translation>
     </message>
@@ -3123,7 +3317,7 @@ Ukuran media: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation>Tipe Pesan Tidak Dikenal</translation>
     </message>
diff --git a/resources/langs/nheko_it.ts b/resources/langs/nheko_it.ts
index da8e2dc4..17e466c8 100644
--- a/resources/langs/nheko_it.ts
+++ b/resources/langs/nheko_it.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation>Chiamata in corso...</translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>Chiamata video</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>Chiamata Video</translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation>Schermo completo</translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>Impossibile invitare l&apos;utente: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>Invitato utente: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <source>Migrating the cache to the current version failed. This can have different reasons. Please open an issue and try to use an older version in the mean time. Alternatively you can try deleting the cache manually.</source>
         <translation>Migrazione della cache alla versione corrente fallita. Questo può avere diverse cause. Per favore apri una issue e nel frattempo prova ad usare una versione più vecchia. In alternativa puoi provare a cancellare la cache manualmente.</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation>Conferma collegamento</translation>
     </message>
@@ -151,23 +151,23 @@
         <translation>Vuoi davvero collegarti a %1?</translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>Stanza %1 creata.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>Conferma Invito</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Vuoi davvero inviare %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation>Impossibile invitare %1 a %2: %3</translation>
     </message>
@@ -182,7 +182,7 @@
         <translation>Vuoi davvero allontanare %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>Scacciato utente: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation>Vuoi veramente bannare %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>Impossibile bannare %1 in %2: %3</translation>
     </message>
@@ -217,7 +217,7 @@
         <translation>Vuoi veramente reintegrare %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation>Impossibile rimuovere il ban di %1 in %2: %3</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Rimosso il ban dall&apos;utente: %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation>Sei sicuro di voler avviare una chat privata con %1?</translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation>Migrazione della cache fallita!</translation>
     </message>
@@ -259,23 +259,23 @@
         <translation>Impossibile ripristinare i dati salvati. Per favore accedi nuovamente.</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>Impossibile configurare le chiavi crittografiche. Risposta del server: %1 %2. Per favore riprova in seguito.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>Per favore prova ad accedere nuovamente: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>Impossibile accedere alla stanza: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>Sei entrato nella stanza</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation>Impossibile rimuovere l&apos;invito: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>Creazione della stanza fallita: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>Impossibile lasciare la stanza: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation>Fallita l&apos;espulsione di %1 da %2: %3</translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation>Decifra i segreti</translation>
     </message>
@@ -364,12 +364,12 @@
         <translation>Inserisci la chiave di recupero o la parola chiave per decriptare i tuoi segreti:</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation>Inserisci la tua chiave di recupero o la parola chiave chiamata %1 per decifrare i tuoi segreti:</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation>Decrittazione fallita</translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation>Tempo di verifica del dispositivo scaduto.</translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation>L&apos;altra parte ha annullato la verifica.</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation>Chiudi</translation>
     </message>
@@ -612,7 +621,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation type="unfinished"></translation>
     </message>
@@ -622,7 +631,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation type="unfinished"></translation>
     </message>
@@ -697,7 +706,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation type="unfinished"></translation>
     </message>
@@ -712,7 +721,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation type="unfinished"></translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation type="unfinished">Seleziona un file</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation type="unfinished">Tutti i File (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation type="unfinished">Impossibile inviare il file multimediale. Per favore riprova.</translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished">ID della stanza o alias</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">Lascia la stanza</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished">Sei sicuro di voler uscire?</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -850,25 +885,25 @@ Esempio: https://server.mio:8787</translation>
         <translation>ACCEDI</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation>Hai inserito un ID Matrix non valido, es @joe:matrix.org</translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Ricerca automatica fallita. Ricevuta risposta malformata.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Ricerca automatica fallita. Errore ignoto durante la richiesta di .well-known.</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Gli endpoint richiesti non sono stati trovati. Forse non è un server Matrix.</translation>
     </message>
@@ -878,27 +913,45 @@ Esempio: https://server.mio:8787</translation>
         <translation>Ricevuta risposta malformata. Assicurati che il dominio dell&apos;homeserver sia valido.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>Avvenuto un errore sconosciuto. Assicurati che il dominio dell&apos;homeserver sia valido.</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation>ACCESSO SSO</translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>Password vuota</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation>Accesso SSO fallito</translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+174"/>
@@ -1023,7 +1076,7 @@ Esempio: https://server.mio:8787</translation>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation>Modifica</translation>
     </message>
@@ -1043,7 +1096,7 @@ Esempio: https://server.mio:8787</translation>
         <translation type="unfinished">Opzioni</translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation type="unfinished"></translation>
@@ -1133,7 +1186,12 @@ Esempio: https://server.mio:8787</translation>
         <translation>Richiesta di verifica ricevuta</translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation>Per permettere agli altri utenti di vedere che dispositivi ti appartengono, puoi verificarli. Questo inoltre permette alle chiavi di recupero di funzionare automaticamente.
 Verificare %1 adesso?</translation>
@@ -1183,7 +1241,7 @@ Verificare %1 adesso?</translation>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
+        <source>You are about to notify the whole room</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1191,30 +1249,18 @@ Verificare %1 adesso?</translation>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation type="unfinished">%1 ha inviato un messaggio criptato</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation>* %1 %2</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation>Risposta di %1: %2</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation type="unfinished">%1: %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1244,7 +1290,7 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished">Nessun microfono trovato.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1275,7 +1321,7 @@ Verificare %1 adesso?</translation>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1293,7 +1339,7 @@ Verificare %1 adesso?</translation>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation type="unfinished">Ricevute di lettura</translation>
     </message>
@@ -1301,7 +1347,7 @@ Verificare %1 adesso?</translation>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1309,18 +1355,18 @@ Verificare %1 adesso?</translation>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>Nome utente</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
         <translation>Il nome utente non deve essere vuoto e deve contenere solo i caratteri a-z, 0-9, ., _, =, -, e /.</translation>
     </message>
     <message>
-        <location line="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>Password</translation>
     </message>
@@ -1350,37 +1396,22 @@ Verificare %1 adesso?</translation>
         <translation>REGISTRATI</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation>Non ci sono processi di registrazione supportati!</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished">Ricerca automatica fallita. Ricevuta risposta malformata.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished">Ricerca automatica fallita. Errore ignoto durante la richiesta di .well-known.</translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished">Gli endpoint richiesti non sono stati trovati. Forse non è un server Matrix.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished">Ricevuta risposta malformata. Assicurati che il dominio dell&apos;homeserver sia valido.</translation>
     </message>
@@ -1390,7 +1421,7 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished">Avvenuto un errore sconosciuto. Assicurati che il dominio dell&apos;homeserver sia valido.</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>La password non è abbastanza lunga (minimo 8 caratteri)</translation>
     </message>
@@ -1421,20 +1452,25 @@ Verificare %1 adesso?</translation>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation>nessuna versione memorizzata</translation>
     </message>
@@ -1452,16 +1488,6 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation type="unfinished">Lascia la stanza</translation>
@@ -1492,7 +1518,7 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1517,7 +1543,30 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished">Disconnettiti</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished">Chiudi</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation type="unfinished">Inizia una nuova discussione</translation>
     </message>
@@ -1545,12 +1594,12 @@ Verificare %1 adesso?</translation>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation type="unfinished">
@@ -1587,12 +1636,12 @@ Verificare %1 adesso?</translation>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1698,12 +1747,12 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished">Impossibile abilitare la crittografia: %1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation type="unfinished">Scegli un avatar</translation>
     </message>
@@ -1723,8 +1772,8 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished">Errore durante la lettura del file: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation type="unfinished">Impossibile fare l&apos;upload dell&apos;immagine: %s</translation>
     </message>
@@ -1732,22 +1781,50 @@ Verificare %1 adesso?</translation>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1804,20 +1881,98 @@ Verificare %1 adesso?</translation>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
@@ -1833,7 +1988,7 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1890,18 +2045,18 @@ Verificare %1 adesso?</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation>Oscuramento del messaggio fallito: %1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation>Salva immagine</translation>
     </message>
@@ -1921,7 +2076,7 @@ Verificare %1 adesso?</translation>
         <translation>Salva file</translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation>
@@ -1930,7 +2085,7 @@ Verificare %1 adesso?</translation>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation>%1 ha aperto la stanza al pubblico.</translation>
     </message>
@@ -1970,12 +2125,12 @@ Verificare %1 adesso?</translation>
         <translation>%1 ha reso la cronologia della stanza visibile ai membri da questo momento in poi.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation>%1 ha reso la cronologia della stanza visibile ai membri dal momento in cui sono stati invitati.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation>%1 ha reso la cronologia della stanza visibile ai membri dal momento in cui sono entrati nella stanza.</translation>
     </message>
@@ -1985,12 +2140,12 @@ Verificare %1 adesso?</translation>
         <translation>%1 ha cambiato i permessi della stanza.</translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation>%1 è stato invitato.</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation>%1 ha cambiato il suo avatar.</translation>
     </message>
@@ -2005,12 +2160,12 @@ Verificare %1 adesso?</translation>
         <translation>%1 è entrato.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 ha rifiutato il suo invito.</translation>
     </message>
@@ -2040,27 +2195,27 @@ Verificare %1 adesso?</translation>
         <translation>%1 è stato bannato.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation>%1 ha oscurato la sua bussata.</translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation>Sei entrato in questa stanza.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2097,7 +2252,12 @@ Verificare %1 adesso?</translation>
         <translation>Nessuna stanza aperta</translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2123,27 +2283,19 @@ Verificare %1 adesso?</translation>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2154,7 +2306,7 @@ Verificare %1 adesso?</translation>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -2202,9 +2354,34 @@ Verificare %1 adesso?</translation>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2214,7 +2391,7 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2224,7 +2401,7 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2234,7 +2411,7 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2244,18 +2421,18 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2270,12 +2447,42 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation type="unfinished">Scegli un avatar</translation>
     </message>
@@ -2298,8 +2505,8 @@ Verificare %1 adesso?</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2307,7 +2514,7 @@ Verificare %1 adesso?</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>Minimizza nella tray</translation>
     </message>
@@ -2317,22 +2524,22 @@ Verificare %1 adesso?</translation>
         <translation>Avvia nella tray</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>Barra laterale dei gruppi</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation>Avatar Circolari</translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2357,7 +2564,7 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2373,6 +2580,16 @@ OFF - square, ON - Circle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation type="unfinished"></translation>
@@ -2400,7 +2617,7 @@ be blurred.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2455,7 +2672,7 @@ If this is on, rooms which have active notifications (the small circle with a nu
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>Ricevute di lettura</translation>
     </message>
@@ -2466,7 +2683,7 @@ Status is displayed next to timestamps.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation>Invia messaggi come Markdown</translation>
     </message>
@@ -2553,7 +2770,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2563,7 +2780,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2573,7 +2790,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation>Fattore di scala</translation>
     </message>
@@ -2648,7 +2865,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Impronta digitale del dispositivo</translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation>Chiavi di Sessione</translation>
     </message>
@@ -2668,17 +2885,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>CRITTOGRAFIA</translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>GENERALE</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation>INTERFACCIA</translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2718,7 +2935,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2748,14 +2965,14 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished">Tutti i File (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation>Apri File delle Sessioni</translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2763,19 +2980,19 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Errore</translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation>Password del File</translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation>Inserisci la passphrase per decriptare il file:</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation>La password non può essere vuota</translation>
     </message>
@@ -2791,6 +3008,14 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2844,7 +3069,7 @@ This usually causes the application icon in the task bar to animate in some fash
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation>Ieri</translation>
     </message>
@@ -2916,37 +3141,6 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation>Entra</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>Annulla</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>ID della stanza o alias</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation>Annulla</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>Sei sicuro di voler uscire?</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3012,47 +3206,47 @@ Peso media: %2
         <translation>%1 ha inviato una clip audio</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation>Hai inviato un&apos;immagine</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation>%1 ha inviato un&apos;immagine</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation>Hai inviato un file</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation>%1 ha inviato un file</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation>Hai inviato un video</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation>%1 ha inviato un video</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation>Hai inviato uno sticker</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation>%1 ha inviato uno sticker</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation>Hai inviato una notifica</translation>
     </message>
@@ -3067,7 +3261,7 @@ Peso media: %2
         <translation>Tu: %1</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation>%1: %2</translation>
     </message>
@@ -3087,27 +3281,27 @@ Peso media: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3115,7 +3309,7 @@ Peso media: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation>Tipo di Messaggio sconosciuto</translation>
     </message>
diff --git a/resources/langs/nheko_ja.ts b/resources/langs/nheko_ja.ts
index 24817395..7ae33c58 100644
--- a/resources/langs/nheko_ja.ts
+++ b/resources/langs/nheko_ja.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>ユーザーを招待できませんでした: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>招待されたユーザー: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -151,23 +151,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation>%2に%1を招待できませんでした: %3</translation>
     </message>
@@ -182,7 +182,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>一時的に追放されたユーザー: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>%2で%1を永久追放できませんでした: %3</translation>
     </message>
@@ -217,7 +217,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation>%2で%1の永久追放を解除できませんでした: %3</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>永久追放を解除されたユーザー: %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -259,23 +259,23 @@
         <translation>セーブデータを復元できませんでした。もう一度ログインして下さい。</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>暗号化鍵を設定できませんでした。サーバーの応答: %1 %2. 後でやり直して下さい。</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>もう一度ログインしてみて下さい: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>部屋に参加できませんでした: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>部屋に参加しました</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation>招待を削除できませんでした: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>部屋を作成できませんでした: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>部屋から出られませんでした: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -364,12 +364,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation type="unfinished">閉じる</translation>
     </message>
@@ -612,7 +621,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation type="unfinished"></translation>
     </message>
@@ -622,7 +631,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation type="unfinished"></translation>
     </message>
@@ -697,7 +706,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation type="unfinished"></translation>
     </message>
@@ -712,7 +721,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation type="unfinished"></translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation type="unfinished">ファイルを選択</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation type="unfinished">全てのファイル (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation type="unfinished">メディアをアップロードできませんでした。やり直して下さい。</translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished">部屋のID又は別名</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">部屋を出る</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished">本当に退出しますか?</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -846,25 +881,25 @@ Example: https://server.my:8787</source>
         <translation>ログイン</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>自動検出できませんでした。不正な形式の応答を受信しました。</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>自動検出できませんでした。.well-known要求時の不明なエラー。</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>必要な端点が見つかりません。Matrixサーバーではないかもしれません。</translation>
     </message>
@@ -874,27 +909,45 @@ Example: https://server.my:8787</source>
         <translation>不正な形式の応答を受信しました。ホームサーバーのドメイン名が有効であるかを確認して下さい。</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>不明なエラーが発生しました。ホームサーバーのドメイン名が有効であるかを確認して下さい。</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>パスワードが入力されていません</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+174"/>
@@ -1019,7 +1072,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1039,7 +1092,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished">オプション</translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation type="unfinished"></translation>
@@ -1129,7 +1182,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1178,7 +1236,7 @@ Example: https://server.my:8787</source>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
+        <source>You are about to notify the whole room</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1186,30 +1244,18 @@ Example: https://server.my:8787</source>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation type="unfinished">%1が暗号化されたメッセージを送信しました</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation type="unfinished">%1: %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1239,7 +1285,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1270,7 +1316,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1288,7 +1334,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation type="unfinished">開封確認</translation>
     </message>
@@ -1296,7 +1342,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1304,18 +1350,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>ユーザー名</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <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="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>パスワード</translation>
     </message>
@@ -1345,37 +1391,22 @@ Example: https://server.my:8787</source>
         <translation>登録</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished">自動検出できませんでした。不正な形式の応答を受信しました。</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished">自動検出できませんでした。.well-known要求時の不明なエラー。</translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished">必要な端点が見つかりません。Matrixサーバーではないかもしれません。</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished">不正な形式の応答を受信しました。ホームサーバーのドメイン名が有効であるかを確認して下さい。</translation>
     </message>
@@ -1385,7 +1416,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished">不明なエラーが発生しました。ホームサーバーのドメイン名が有効であるかを確認して下さい。</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>パスワード長が不足しています (最小8文字)</translation>
     </message>
@@ -1416,20 +1447,25 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation>バージョンが保存されていません</translation>
     </message>
@@ -1447,16 +1483,6 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation type="unfinished">部屋を出る</translation>
@@ -1487,7 +1513,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1512,7 +1538,30 @@ Example: https://server.my:8787</source>
         <translation type="unfinished">ログアウト</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished">閉じる</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation type="unfinished">新しいチャットを開始</translation>
     </message>
@@ -1540,12 +1589,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation type="unfinished">
@@ -1581,12 +1630,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1692,12 +1741,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished">暗号化を有効にできませんでした: %1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation type="unfinished">アバターを選択</translation>
     </message>
@@ -1717,8 +1766,8 @@ Example: https://server.my:8787</source>
         <translation type="unfinished">ファイルの読み込み時にエラーが発生しました: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation type="unfinished">画像をアップロードできませんでした: %s</translation>
     </message>
@@ -1726,22 +1775,50 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1798,20 +1875,98 @@ Example: https://server.my:8787</source>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
@@ -1827,7 +1982,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1884,18 +2039,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation>メッセージを編集できませんでした: %1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation>画像を保存</translation>
     </message>
@@ -1915,7 +2070,7 @@ Example: https://server.my:8787</source>
         <translation>ファイルを保存</translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation>
@@ -1923,7 +2078,7 @@ Example: https://server.my:8787</source>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1963,12 +2118,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1978,12 +2133,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation>%1が招待されました。</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation>%1がアバターを変更しました。</translation>
     </message>
@@ -1998,12 +2153,12 @@ Example: https://server.my:8787</source>
         <translation>%1が参加しました。</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation>%1が招待を拒否しました。</translation>
     </message>
@@ -2033,27 +2188,27 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation>%1がノックを編集しました。</translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2090,7 +2245,12 @@ Example: https://server.my:8787</source>
         <translation>部屋が開いていません</translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2116,27 +2276,19 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2147,7 +2299,7 @@ Example: https://server.my:8787</source>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -2195,9 +2347,34 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2207,7 +2384,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2217,7 +2394,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2227,7 +2404,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2237,18 +2414,18 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2263,12 +2440,42 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation type="unfinished">アバターを選択</translation>
     </message>
@@ -2291,8 +2498,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2300,7 +2507,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>トレイへ最小化</translation>
     </message>
@@ -2310,22 +2517,22 @@ Example: https://server.my:8787</source>
         <translation>トレイで起動</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>グループサイドバー</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation>円形アバター</translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2350,7 +2557,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2366,6 +2573,16 @@ OFF - square, ON - Circle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation type="unfinished"></translation>
@@ -2393,7 +2610,7 @@ be blurred.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2448,7 +2665,7 @@ If this is on, rooms which have active notifications (the small circle with a nu
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>開封確認</translation>
     </message>
@@ -2459,7 +2676,7 @@ Status is displayed next to timestamps.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation>メッセージをMarkdownとして送信</translation>
     </message>
@@ -2546,7 +2763,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2556,7 +2773,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2566,7 +2783,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation>尺度係数</translation>
     </message>
@@ -2641,7 +2858,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>デバイスの指紋</translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation>セッション鍵</translation>
     </message>
@@ -2661,17 +2878,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>暗号化</translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>全般</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2711,7 +2928,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2741,14 +2958,14 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished">全てのファイル (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation>セッションファイルを開く</translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2756,19 +2973,19 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>エラー</translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation>ファイルのパスワード</translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation>ファイルを復号するためのパスフレーズを入力して下さい:</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation>パスワードを空にはできません</translation>
     </message>
@@ -2784,6 +3001,14 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2837,7 +3062,7 @@ This usually causes the application icon in the task bar to animate in some fash
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation>昨日</translation>
     </message>
@@ -2909,37 +3134,6 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation>参加</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>キャンセル</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>部屋のID又は別名</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation>キャンセル</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>本当に退出しますか?</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3005,47 +3199,47 @@ Media size: %2
         <translation>%1が音声データを送信しました</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation>画像を送信しました</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation>%1が画像を送信しました</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation>ファイルを送信しました</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation>%1がファイルを送信しました</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation>動画を送信しました</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation>%1が動画を送信しました</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation>ステッカーを送信しました</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation>%1がステッカーを送信しました</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation>通知を送信しました</translation>
     </message>
@@ -3060,7 +3254,7 @@ Media size: %2
         <translation>あなた: %1</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation>%1: %2</translation>
     </message>
@@ -3080,27 +3274,27 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3108,7 +3302,7 @@ Media size: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation>不明なメッセージ型です</translation>
     </message>
diff --git a/resources/langs/nheko_ml.ts b/resources/langs/nheko_ml.ts
index ba69189e..d8e25ff2 100644
--- a/resources/langs/nheko_ml.ts
+++ b/resources/langs/nheko_ml.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation>വിളിക്കുന്നു...</translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>വീഡിയോ കോൾ</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>വീഡിയോ കോൾ</translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation>മുഴുവൻ സ്ക്രീൻ</translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>ഉപയോക്താവിനെ ക്ഷണിക്കുന്നതിൽ പരാജയപ്പെട്ടു: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>ക്ഷണിച്ച ഉപയോക്താവ്:% 1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation>ചേരുന്നത് ഉറപ്പാക്കുക</translation>
     </message>
@@ -151,23 +151,23 @@
         <translation>നിങ്ങൾക്ക് %1 -ൽ ചേരാൻ ആഗ്രഹം ഉണ്ടോ?</translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>%1 മുറി സൃഷ്ടിച്ചു</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>ക്ഷണം ഉറപ്പാക്കു</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -182,7 +182,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>ഉപയോക്താവിനെ പുറത്താക്കി: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -217,7 +217,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -259,23 +259,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>ദയവായി വീണ്ടും ലോഗിൻ ചെയ്യാൻ നോക്കുക: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>മുറിയിൽ ചേരുന്നതിൽ പരാജയം: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>നിങ്ങൾ മുറിയിൽ ചേർന്നു</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>മുറി സൃഷ്ടിക്കുന്നത് പരാജയപ്പെട്ടു: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -364,12 +364,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation>അടയ്‌ക്കുക</translation>
     </message>
@@ -612,7 +621,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation>ചിത്രങ്ങൾ ചേർക്കുക</translation>
     </message>
@@ -622,7 +631,7 @@
         <translation>സ്റ്റിക്കറുകൾ(*.png *.webp *.gif *.jpg *.jpeg)</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation>ഇമോജി ആയി ഉപയോഗിക്കുക</translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation>സ്റ്റിക്കറായി ഉപയോഗിക്കുക</translation>
     </message>
@@ -697,7 +706,7 @@
         <translation>പുതിയ മുറി പാക്ക്</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation type="unfinished"></translation>
     </message>
@@ -712,7 +721,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation type="unfinished"></translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation>ഒരു ഫയൽ തിരഞ്ഞെടുക്കുക</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation>എല്ലാ ഫയലുകളും (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation>%1 - ലേക്ക് ഉപയോക്താക്കളെ ക്ഷണിക്കുക</translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -846,25 +881,25 @@ Example: https://server.my:8787</source>
         <translation>പ്രവേശിക്കുക</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -874,27 +909,45 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation>എസ് എസ് ഓ ലോഗിൻ</translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+192"/>
@@ -1019,7 +1072,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation>തിരുത്തുക</translation>
     </message>
@@ -1039,7 +1092,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation type="unfinished"></translation>
@@ -1129,7 +1182,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1178,7 +1236,7 @@ Example: https://server.my:8787</source>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
+        <source>You are about to notify the whole room</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1186,30 +1244,18 @@ Example: https://server.my:8787</source>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation>* %1 %2</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation>%1: %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1239,7 +1285,7 @@ Example: https://server.my:8787</source>
         <translation>മൈക്രോഫോണൊന്നും കണ്ടെത്തിയില്ല.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1270,7 +1316,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1288,7 +1334,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1296,7 +1342,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1304,18 +1350,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <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="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation type="unfinished">പാസ്‍വേഡ്</translation>
     </message>
@@ -1345,37 +1391,22 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1385,7 +1416,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1416,20 +1447,25 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1447,16 +1483,6 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation type="unfinished"></translation>
@@ -1487,7 +1513,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1512,7 +1538,30 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished">അടയ്‌ക്കുക</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1540,12 +1589,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation type="unfinished">
@@ -1582,12 +1631,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1693,12 +1742,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1718,8 +1767,8 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1727,22 +1776,50 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1799,20 +1876,98 @@ Example: https://server.my:8787</source>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
@@ -1828,7 +1983,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1885,18 +2040,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1916,7 +2071,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation type="unfinished">
@@ -1925,7 +2080,7 @@ Example: https://server.my:8787</source>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1965,12 +2120,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1980,12 +2135,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2000,12 +2155,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2035,27 +2190,27 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation type="unfinished">നിങ്ങൾ ഈ മുറിയിൽ ചേർന്നു.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2092,7 +2247,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2118,27 +2278,19 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2149,7 +2301,7 @@ Example: https://server.my:8787</source>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -2197,9 +2349,34 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2209,7 +2386,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2219,7 +2396,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2229,7 +2406,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2239,18 +2416,18 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2265,12 +2442,42 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2293,8 +2500,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2302,7 +2509,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2312,22 +2519,22 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2352,7 +2559,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2368,6 +2575,16 @@ OFF - square, ON - Circle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation type="unfinished"></translation>
@@ -2395,7 +2612,7 @@ be blurred.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2450,7 +2667,7 @@ If this is on, rooms which have active notifications (the small circle with a nu
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2461,7 +2678,7 @@ Status is displayed next to timestamps.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2548,7 +2765,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2558,7 +2775,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2568,7 +2785,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2643,7 +2860,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2663,17 +2880,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2713,7 +2930,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2743,14 +2960,14 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished">എല്ലാ ഫയലുകളും (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2758,19 +2975,19 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2786,6 +3003,14 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2839,7 +3064,7 @@ This usually causes the application icon in the task bar to animate in some fash
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2911,37 +3136,6 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation type="unfinished">റദ്ദാക്കു</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation type="unfinished">റദ്ദാക്കു</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3005,47 +3199,47 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3060,7 +3254,7 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation type="unfinished">%1: %2</translation>
     </message>
@@ -3080,27 +3274,27 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation>നിങ്ങൾ ഒരു കോൾ അവസാനിപ്പിച്ചു</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation>%1 ഒരു കോൾ അവസാനിപ്പിച്ചു</translation>
     </message>
@@ -3108,7 +3302,7 @@ Media size: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_nl.ts b/resources/langs/nheko_nl.ts
index 8a0f9319..1ff88a61 100644
--- a/resources/langs/nheko_nl.ts
+++ b/resources/langs/nheko_nl.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation>Bellen...</translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>Video oproep</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>Video oproep</translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation>Gehele scherm</translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>Gebruiker uitnodigen mislukt: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>Gebruiker uitgenodigd: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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>Het migreren can de cache naar de huidige versie is mislukt. Dit kan verscheidene redenen hebben. Maak a.u.b een issue aan en probeer in de tussentijd een oudere versie. Je kan ook proberen de cache handmatig te verwijderen.</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation>Bevestig deelname</translation>
     </message>
@@ -151,23 +151,23 @@
         <translation>Weet je zeker dat je %1 wil binnen gaan?</translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>Kamer %1 gemaakt.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>Bevestig uitnodiging</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Weet je zeker dat je %1 (%2) wil uitnodigen?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation>Uitnodigen van %1 naar %2 mislukt: %3</translation>
     </message>
@@ -182,7 +182,7 @@
         <translation>Weet je zeker dat je %1 (%2) uit de kamer wil verwijderen?</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>Uit kamer verwijderde gebruiker: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation>Weet je zeker dat je gebruiker %1 (%2) wil verbannen?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>Verbannen van %1 uit %2 mislukt: %3</translation>
     </message>
@@ -217,7 +217,7 @@
         <translation>Weet je zeker dat je %1 (%2) opnieuw wil toelaten?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation>Opnieuw toelaten van %1 in %2 mislukt: %3</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Toegelaten gebruiker: %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation>Weet je zeker dat je een privé chat wil beginnen met %1?</translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation>Migreren van de cache is mislukt!</translation>
     </message>
@@ -259,23 +259,23 @@
         <translation>Opgeslagen gegevens herstellen mislukt. Log a.u.b. opnieuw in.</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>Instellen van de versleuteling is mislukt. Bericht van server: %1 %2. Probeer het a.u.b. later nog eens.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>Probeer a.u.b. opnieuw in te loggen: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>Kamer binnengaan mislukt: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>Je bent de kamer binnengegaan.</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation>Uitnodiging verwijderen mislukt: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>Kamer aanmaken mislukt: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>Kamer verlaten mislukt: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation>Kon %1 niet verwijderen uit %2: %3</translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation>Ontsleutel geheimen</translation>
     </message>
@@ -364,12 +364,12 @@
         <translation>Voer je herstelsleutel of wachtwoordzin in om je geheimen te ontsleutelen:</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation>Voer je herstelsleutel of wachtwoordzin in met de naam %1 om je geheimen te ontsleutelen:</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation>Ontsleutelen mislukt</translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation>Apparaatverificatie is verlopen.</translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation>De andere kant heeft de verificatie geannuleerd.</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation>Sluiten</translation>
     </message>
@@ -612,7 +621,7 @@
         <translation>Afbeeldingspakket aanpassen</translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation>Afbeeldingen toevoegen</translation>
     </message>
@@ -622,7 +631,7 @@
         <translation>Stickers (*.png *.webp *.gif *.jpg *.jpeg)</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation>Staatsleutel</translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation>Gebruik als emoji</translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation>Gebruik als sticker</translation>
     </message>
@@ -697,7 +706,7 @@
         <translation>Nieuw afbeeldingspakket voor kamer</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation>Privé afbeeldingspakket</translation>
     </message>
@@ -712,7 +721,7 @@
         <translation>Globaal geactiveerd afbeeldingspakket</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation>Globaal activeren</translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation>Selecteer een bestand</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation>Alle bestanden (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation>Het is niet is gelukt om de media te versturen. Probeer het a.u.b. opnieuw.</translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation>Nodig gebruikers uit naar %1</translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished">Kamer ID of alias</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">Kamer verlaten</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished">Weet je zeker dat je de kamer wil verlaten?</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -850,25 +885,25 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>INLOGGEN</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation>Je hebt een ongeldige Matrix ID ingevuld. Correct voorbeeld: @jan:matrix.org</translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Automatische herkenning mislukt. Ongeldig antwoord ontvangen.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Automatische herkenning mislukt. Onbekende fout tijdens het opvragen van .well-known.</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>De vereiste aanspreekpunten werden niet gevonden. Mogelijk geen Matrix server.</translation>
     </message>
@@ -878,27 +913,45 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Ongeldig antwoord ontvangen. Zorg dat de thuisserver geldig is.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>Een onbekende fout trad op. Zorg dat de thuisserver geldig is.</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation>SSO INLOGGEN</translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>Leeg wachtwoord</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation>SSO inloggen mislukt</translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+174"/>
@@ -1023,7 +1076,7 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation>Bewerken</translation>
     </message>
@@ -1043,7 +1096,7 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Opties</translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation>&amp;Kopiëren</translation>
@@ -1114,6 +1167,11 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <source>Copy link to eve&amp;nt</source>
         <translation>Kopieer link naar gebeurte&amp;nis</translation>
     </message>
+    <message>
+        <location line="+43"/>
+        <source>&amp;Go to quoted message</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>NewVerificationRequest</name>
@@ -1128,7 +1186,12 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Ontvangen verificatieverzoek</translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation>Om andere gebruikers te laten weten welke apparaten echt van jou zijn, kan je ze verifiëren. Dit zorgt ook dat reservesleutels automatisch werken. Nu %1 verifiëren?</translation>
     </message>
@@ -1177,38 +1240,26 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
-        <translation>Je gaat een melding versturen naar de hele kamer</translation>
+        <source>You are about to notify the whole room</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation>%1 stuurde een versleuteld bericht</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation>* %1 %2</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation>%1 antwoordde: %2</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation>%1: %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1238,7 +1289,7 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Geen microfoon gevonden.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation>Spraak</translation>
     </message>
@@ -1269,7 +1320,7 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation>Creëer een uniek profiel, waardoor je op meerdere accounts tegelijk kan inloggen, en meerdere kopieën van Nheko tegelijk kan starten.</translation>
     </message>
@@ -1287,7 +1338,7 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation>Leesbevestigingen</translation>
     </message>
@@ -1295,7 +1346,7 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation>Gisteren, %1</translation>
     </message>
@@ -1303,18 +1354,18 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>Gebruikersnaam</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
         <translation>De gebruikersnaam mag niet leeg zijn, en mag alleen de volgende tekens bevatten: a-z, 0-9, ., _, =, -, en /.</translation>
     </message>
     <message>
-        <location line="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>Wachtwoord</translation>
     </message>
@@ -1344,37 +1395,22 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>REGISTREREN</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation>Geen ondersteunde registratiestromingen!</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation>Registratieteken</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation>Voer a.u.b een geldig registratieteken in.</translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Automatische herkenning mislukt. Onjuist gevormd antwoord ontvangen.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Automatische herkenning mislukt. Onbekende fout bij opvragen van .well-known.</translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>De vereiste aanspreekpunten konden niet worden gevonden. Mogelijk geen Matrix server.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation>Onjuist gevormd antwoord ontvangen. Zorg dat de thuisserver geldig is.</translation>
     </message>
@@ -1384,7 +1420,7 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Een onbekende fout trad op. Zorg dat de thuisserver geldig is.</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>Het wachtwoord is niet lang genoeg (minimaal 8 tekens)</translation>
     </message>
@@ -1415,20 +1451,25 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation>Verken openbare kamers</translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation>Zoek naar openbare kamers</translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation>geen versie opgeslagen</translation>
     </message>
@@ -1446,16 +1487,6 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Voer de markering in die je wil gebruiken:</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation>Verlaat kamer</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation>Weet je zeker dat je de kamer wil verlaten?</translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation>Kamer verlaten</translation>
@@ -1486,7 +1517,7 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Maak nieuwe markering...</translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation>Statusbericht</translation>
     </message>
@@ -1511,7 +1542,30 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Uitloggen</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished">Sluiten</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation>Nieuwe chat beginnen</translation>
     </message>
@@ -1539,12 +1593,12 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation>Deelnemers in %1</translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation>
@@ -1581,12 +1635,12 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation>Kamerinstellingen</translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation>%1 deelnemer(s)</translation>
     </message>
@@ -1692,12 +1746,12 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Kamerversie</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Versleuteling kon niet worden ingeschakeld: %1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation>Kies een avatar</translation>
     </message>
@@ -1717,8 +1771,8 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Fout bij lezen van bestand: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation>Uploaden van afbeelding mislukt: %1</translation>
     </message>
@@ -1726,22 +1780,50 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation>Wachtende uitnodiging.</translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation>Voorbeeld van deze kamer</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation>Geen voorbeeld beschikbaar</translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1798,20 +1880,98 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation>Verbinden met geheimopslag mislukt</translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
-        <translation>Nheko kon niet verbinden met de geheimopslag om sleutels in te bewaren. Dit kan verscheidene redenen hebben. Controleer of je D-Bus service draait en of je een service zoals KWallet, Gnome Secrets of een dergelijk equivalent voor je platform hebt ingesteld. Als je problemen ondervindt kan je ook altijd hier een issue openen: https://github.com/Nheko-Reborn/nheko/issues</translation>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation>Kon afbeeldingspakket niet updaten: %1</translation>
@@ -1827,7 +1987,7 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Kon afbeelding niet openen: %1</translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation>Kon afbeelding niet uploaden: %1</translation>
     </message>
@@ -1884,18 +2044,18 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation>Bericht intrekken mislukt: %1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation>Kon evenement niet versleutelen, versturen geannuleerd!</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation>Afbeelding opslaan</translation>
     </message>
@@ -1915,7 +2075,7 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Bestand opslaan</translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation>
@@ -1924,7 +2084,7 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation>%1 maakte de kamer openbaar.</translation>
     </message>
@@ -1964,12 +2124,12 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>%1 maakte de kamergeschiedenis deelname-vereist.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation>%1 maakte de kamergeschiedenis zichtbaar vanaf het moment van uitnodigen.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation>%1 maakte de kamergeschiedenis zichtbaar vanaf moment van deelname.</translation>
     </message>
@@ -1979,12 +2139,12 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>%1 heeft de rechten van de kamer aangepast.</translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation>%1 is uitgenodigd.</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation>%1 is van avatar veranderd.</translation>
     </message>
@@ -1999,12 +2159,12 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>%1 neemt nu deel.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation>%1 neemt deel via autorisatie van %2&apos;s server.</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 heeft de uitnodiging geweigerd.</translation>
     </message>
@@ -2034,27 +2194,27 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>%1 is verbannen.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation>Reden: %1</translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation>%1 heeft het aankloppen ingetrokken.</translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation>Je neemt nu deel aan deze kamer.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation>%1 is van avatar veranderd en heet nu %2.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation>%1 heet nu %2.</translation>
     </message>
@@ -2091,7 +2251,12 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Geen kamer open</translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished">Geen voorbeeld beschikbaar</translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation>%1 deelnemer(s)</translation>
     </message>
@@ -2117,27 +2282,19 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation>Geen versleutelde chat gevonden met deze gebruiker. Maak een versleutelde chat aan met deze gebruiker en probeer het opnieuw.</translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation>Terug naar kamerlijst</translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation>Geen kamer geselecteerd</translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation>Deze kamer is niet versleuteld!</translation>
     </message>
@@ -2148,8 +2305,8 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
-        <translation>Deze kamer bevat geverifieerde apparaten en apparaten die nooit hun hoofdsleutel hebben aangepast.</translation>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+2"/>
@@ -2196,9 +2353,34 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished">Voer a.u.b een geldig registratieteken in.</translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation>Globaal gebruikersprofiel</translation>
     </message>
@@ -2208,7 +2390,7 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Kamerspecifiek gebruikersprofiel</translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation>Verander avatar globaal.</translation>
     </message>
@@ -2218,7 +2400,7 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Verander avatar. Heeft alleen effect op deze kamer.</translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation>Verander weergavenaam globaal.</translation>
     </message>
@@ -2228,7 +2410,7 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Verander weergavenaam. Heeft alleen effect op deze kamer.</translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation>Kamer: %1</translation>
     </message>
@@ -2238,18 +2420,18 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Dit is een kamer-specifiek profiel. De weergavenaam en avatar kunnen verschillen van de globale versie.</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation>Open het globale profiel van deze gebruiker.</translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation>Verifiëren</translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation>Begin een privéchat.</translation>
     </message>
@@ -2264,12 +2446,42 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Verban de gebruiker.</translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation>On-verifiëren</translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation>Kies een avatar</translation>
     </message>
@@ -2292,8 +2504,8 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation>Standaard</translation>
     </message>
@@ -2301,7 +2513,7 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>Minimaliseren naar systeemvak</translation>
     </message>
@@ -2311,22 +2523,22 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>Geminimaliseerd opstarten</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>Zijbalk met groepen</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation>Ronde avatars</translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation>profiel: %1</translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation>Standaard</translation>
     </message>
@@ -2351,7 +2563,7 @@ Voorbeeld: https://mijnserver.nl:8787</translation>
         <translation>DOWNLOADEN</translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation>Blijf draaien in de achtergrond na het sluiten van het scherm.</translation>
     </message>
@@ -2368,6 +2580,16 @@ OFF - square, ON - Circle.</source>
 UIT - vierkant, AAN - cirkel.</translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation>Laat een kolom zien met groepen en markeringen naast de kamerlijst.</translation>
@@ -2397,7 +2619,7 @@ be blurred.</source>
 worden geblurt.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation>Privacy scherm wachttijd (in seconden [0 - 3600])</translation>
     </message>
@@ -2457,7 +2679,7 @@ Indien uitgeschakeld, staan kamers gesorteerd op de tijd van het laatst ontvange
 Indien ingeschakeld, staan kamers met actieve notificaties (het cirkeltje met een getal erin) bovenaan. Kamers die je hebt gedempt zullen nog steeds op tijd zijn gesorteerd, want die vind je blijkbaar niet zo belangrijk als de andere kamers.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>Leesbevestigingen</translation>
     </message>
@@ -2469,7 +2691,7 @@ Status is displayed next to timestamps.</source>
 De status staat naast de tijdsindicatie.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation>Verstuur berichten in Markdown</translation>
     </message>
@@ -2558,7 +2780,7 @@ Meestal zorgt dit dat het icoon in de taakbalk op een manier animeert of iets de
         <translation>Download van en upload naar de online reservesleutel.</translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation>Activeer online reservesleutelopslag</translation>
     </message>
@@ -2568,7 +2790,7 @@ Meestal zorgt dit dat het icoon in de taakbalk op een manier animeert of iets de
         <translation>De Nheko auteurs raden af om online reservesleutelopslag te gebruiken totdat symmetrische reservesleutelopslag beschikbaar is. Toch activeren?</translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation>IN CACHE</translation>
     </message>
@@ -2578,7 +2800,7 @@ Meestal zorgt dit dat het icoon in de taakbalk op een manier animeert of iets de
         <translation>NIET IN CACHE</translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation>Schaalfactor</translation>
     </message>
@@ -2653,7 +2875,7 @@ Meestal zorgt dit dat het icoon in de taakbalk op een manier animeert of iets de
         <translation>Apparaat vingerafdruk</translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation>Sessiesleutels</translation>
     </message>
@@ -2673,17 +2895,17 @@ Meestal zorgt dit dat het icoon in de taakbalk op een manier animeert of iets de
         <translation>VERSLEUTELING</translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>ALGEMEEN</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation>INTERFACE</translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation>Speelt media zoals GIFs en WebPs alleen af terwijl de muiscursor erboven hangt.</translation>
     </message>
@@ -2723,7 +2945,7 @@ Meestal zorgt dit dat het icoon in de taakbalk op een manier animeert of iets de
         <translation>De sleutel die wordt gebruikt om andere gebruikers te verifiëren. Indien gecached zal het verifiëren van een gebruiker alle apparaten van die gebruiker verifiëren.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation>Zelf ondertekenen sleutel</translation>
     </message>
@@ -2753,14 +2975,14 @@ Meestal zorgt dit dat het icoon in de taakbalk op een manier animeert of iets de
         <translation>Alle bestanden (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation>Open sessiebestand</translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2768,19 +2990,19 @@ Meestal zorgt dit dat het icoon in de taakbalk op een manier animeert of iets de
         <translation>Fout</translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation>Wachtwoord voor bestand</translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation>Voer de wachtwoordzin in om het bestand te ontsleutelen:</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation>Het wachtwoord kan niet leeg zijn</translation>
     </message>
@@ -2796,6 +3018,14 @@ Meestal zorgt dit dat het icoon in de taakbalk op een manier animeert of iets de
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished">Geen versleutelde chat gevonden met deze gebruiker. Maak een versleutelde chat aan met deze gebruiker en probeer het opnieuw.</translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2849,7 +3079,7 @@ Meestal zorgt dit dat het icoon in de taakbalk op een manier animeert of iets de
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation>Gisteren</translation>
     </message>
@@ -2921,37 +3151,6 @@ Meestal zorgt dit dat het icoon in de taakbalk op een manier animeert of iets de
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation>Deelnemen</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>Annuleren</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>Kamer ID of alias</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation>Annuleren</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>Weet je zeker dat je de kamer wil verlaten?</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3017,47 +3216,47 @@ Mediagrootte: %2
         <translation>%1 verstuurde een audio clip</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation>Je verstuurde een afbeelding</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation>%1 verstuurde een afbeelding</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation>Je verstuurde een bestand</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation>%1 verstuurde een bestand</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation>Je verstuurde een video</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation>%1 verstuurde een video</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation>Je verstuurde een sticker</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation>%1 verstuurde een sticker</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation>Je verstuurde een notificatie</translation>
     </message>
@@ -3072,7 +3271,7 @@ Mediagrootte: %2
         <translation>Jij: %1</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation>%1: %2</translation>
     </message>
@@ -3092,27 +3291,27 @@ Mediagrootte: %2
         <translation>Je hebt een oproep geplaatst</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation>%1 plaatste een oproep</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation>Je beantwoordde een oproep</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation>%1 beantwoordde een oproep</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation>Je hing op</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation>%1 hing op</translation>
     </message>
@@ -3120,12 +3319,9 @@ Mediagrootte: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation>Onbekend berichttype</translation>
     </message>
 </context>
-<context>
-    <name></name>
-</context>
 </TS>
diff --git a/resources/langs/nheko_pl.ts b/resources/langs/nheko_pl.ts
index a285359f..0f625d44 100644
--- a/resources/langs/nheko_pl.ts
+++ b/resources/langs/nheko_pl.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation></translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>Połączenie Wideo</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>Połączenie Wideo</translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation>Cały ekran</translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>Nie udało się zaprosić użytkownika: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>Zaproszono użytkownika %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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>Migracja cachu do obecnej wersji nieudana. Przyczyny mogą być różne. Proszę zgłosić błąd i w miedzyczasie używać starszej wersji. Możesz również spróbuwać usunąć cache ręcznie.</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation>Potwierdź dołączenie</translation>
     </message>
@@ -151,23 +151,23 @@
         <translation>Czy na pewno chcesz dołączyć&#xa0;do %1?</translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>Utworzono pokój %1.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>Potwierdź zaproszenie</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Czy na pewno chcesz zaprosić %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation>Zaproszenie %1 do %2 nieudane: %3</translation>
     </message>
@@ -182,7 +182,7 @@
         <translation>czy na pewno chcesz wykopać %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>Wykopano użytkownika: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation>Czy na pewno chcesz zablokować %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>Nie udało się zbanować %1 w %2: %3</translation>
     </message>
@@ -217,7 +217,7 @@
         <translation>Czy na pewno chcesz odblokować %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation>Nie udało się odbanować %1 w %2: %3</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Odblokowano użytkownika: %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation>Czy na pewno chcesz rozpocząć prywatny czat z %1?</translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation>Nie udało się przenieść pamięci podręcznej!</translation>
     </message>
@@ -259,23 +259,23 @@
         <translation>Nie udało się przywrócić zapisanych danych. Spróbuj zalogować się ponownie.</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>Nie udało się ustawić kluczy szyfrujących. Odpowiedź serwera: %1 %2. Spróbuj ponownie później.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>Spróbuj zalogować się ponownie: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>Nie udało się dołączyć do pokoju: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>Dołączyłeś do pokoju</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation>Nie udało się usunąć zaproszenia: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>Tworzenie pokoju nie powiodło się: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>Nie udało się opuścić pokoju: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation>Nie udało się wykopać %1 z %2: %3</translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation>Odszyfruj sekrety</translation>
     </message>
@@ -364,12 +364,12 @@
         <translation>Wprowadź swój klucz odzyskiwania lub frazę-klucz by odszyfrować swoje sekrety:</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation>Wprowadź swój klucz odzyskiwania lub frazę klucz nazwaną: %1 by odszyfrować swoje sekrety:</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation>Odszyfrowywanie nieudane</translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation>Przekroczono limit czasu na weryfikację urządzenia.</translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation>Druga strona anulowała weryfikację.</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation>Zamknij</translation>
     </message>
@@ -612,7 +621,7 @@
         <translation>Edytowanie paczki obrazów</translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation>Dodaj obrazy</translation>
     </message>
@@ -622,7 +631,7 @@
         <translation>Naklejki (*.png *.webp *.gif *.jpg *.jpeg)</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation>Unikalny klucz paczki</translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation>Użyj jako Emoji</translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation>Użyj jako Naklejki</translation>
     </message>
@@ -697,7 +706,7 @@
         <translation>Nowa paczka pokoju</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation>Prywatna paczka</translation>
     </message>
@@ -712,7 +721,7 @@
         <translation>Paczka włączona globalnie</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation>Włącz globalnie</translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation>Wybierz plik</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation>Wszystkie pliki (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation>Wysłanie mediów nie powiodło się. Spróbuj ponownie.</translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation>Zaproś użytkowników do %1</translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished">ID pokoju lub alias</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">Opuść pokój</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished">Czy na pewno chcesz wyjść?</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -849,25 +884,25 @@ Przykład: https://server.my:8787</translation>
         <translation>ZALOGUJ</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation>Wprowadzono nieprawidłowe Matrix ID. Przykład prawidłowego ID: @ania:matrix.org</translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Automatyczne odkrywanie zakończone niepowodzeniem. Otrzymano nieprawidłową odpowiedź.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Automatyczne odkrywanie zakończone niepowodzeniem. Napotkano nieznany błąd. .well-known.</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <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>
     </message>
@@ -877,27 +912,45 @@ Przykład: https://server.my:8787</translation>
         <translation>Otrzymano nieprawidłową odpowiedź. Upewnij się, że domena serwera domowego jest prawidłowa.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>Wystąpił nieznany błąd. Upewnij się, że domena serwera domowego jest prawidłowa.</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation>Logowanie SSO</translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>Puste hasło</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation>Logowanie SSO zakończone niepowodzeniem</translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+174"/>
@@ -1022,7 +1075,7 @@ Przykład: https://server.my:8787</translation>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation>Edytuj</translation>
     </message>
@@ -1042,7 +1095,7 @@ Przykład: https://server.my:8787</translation>
         <translation>Opcje</translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation>&amp;Kopiuj</translation>
@@ -1132,7 +1185,12 @@ Przykład: https://server.my:8787</translation>
         <translation>Otrzymano prośbę o weryfikację</translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation>Aby umośliwić innym użytkownikom identyfikację, które urządzenia faktycznie należą do Ciebie, możesz wykonać ich weryfikację. To również umożliwi automatyczny backup kluczy. Zweryfikować %1 teraz?</translation>
     </message>
@@ -1181,41 +1239,27 @@ Przykład: https://server.my:8787</translation>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
-        <translation>Będziesz pingował cały pokój</translation>
+        <source>You are about to notify the whole room</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation>%1 wysłał(a) zaszyfrowaną wiadomość</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translatorcomment>Format wiadomości emote w powiadomieniu, %1 to nadawca, %2 to wiadomość.</translatorcomment>
-        <translation>* %1 %2</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translatorcomment>Format wiadomości w powiadomieniu. %1 to nadawca, %2 to wiadomość.</translatorcomment>
         <translation>%1 odpisał(a): %2</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translatorcomment>Format normalnej wiadomości w powiadomieniu. %1 to nadawca, %2 to wiadomość.</translatorcomment>
-        <translation>%1: %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1245,7 +1289,7 @@ Przykład: https://server.my:8787</translation>
         <translation>Nie znaleziono mikrofonu.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation>Dźwięk</translation>
     </message>
@@ -1276,7 +1320,7 @@ Przykład: https://server.my:8787</translation>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation>Stwórz unikalny profil, który pozwoli Ci na zalogowanie się do kilku kont jednocześnie i uruchomienie wielu instancji Nheko.</translation>
     </message>
@@ -1294,7 +1338,7 @@ Przykład: https://server.my:8787</translation>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation>Potwierdzenia przeczytania</translation>
     </message>
@@ -1302,7 +1346,7 @@ Przykład: https://server.my:8787</translation>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation>Wczoraj, %1</translation>
     </message>
@@ -1310,18 +1354,18 @@ Przykład: https://server.my:8787</translation>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>Nazwa użytkownika</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
         <translation>Nazwa użytkownika nie może być pusta i  może  zawierać wyłącznie znaki a-z, 0-9, ., _, =, -, i /.</translation>
     </message>
     <message>
-        <location line="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>Hasło</translation>
     </message>
@@ -1351,37 +1395,22 @@ Przykład: https://server.my:8787</translation>
         <translation>ZAREJESTRUJ</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation>Nie wspierana procedura rejestracji!</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation>Token rejestracji</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation>Proszę wprowadzić prawidłowy token rejestracji.</translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Automatyczne odkrywanie zakończone niepowodzeniem. Otrzymano nieprawidłową odpowiedź.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Automatyczne odkrywanie zakończone niepowodzeniem. Napotkano nieznany błąd. .well-known.</translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Nie odnaleziono wymaganych interfejsów. To może nie być serwer Matrix.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation>Otrzymano nieprawidłową odpowiedź. Upewnij się, że domena homeserver-a jest prawidłowa.</translation>
     </message>
@@ -1391,7 +1420,7 @@ Przykład: https://server.my:8787</translation>
         <translation>Wystąpił nieznany błąd. Upewnij się, że domena homeserver-a jest prawidłowa.</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>Hasło jest zbyt krótkie (min. 8 znaków)</translation>
     </message>
@@ -1422,20 +1451,25 @@ Przykład: https://server.my:8787</translation>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation>Przeglądaj Pokoje Publiczne</translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation>Szukaj publicznych pokojów</translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation>wersja nie została zachowana</translation>
     </message>
@@ -1453,16 +1487,6 @@ Przykład: https://server.my:8787</translation>
         <translation>Wprowadź tag, którego chcesz użyć:</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation>Opuść Pokój</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation>Na pewno chcesz opuścić ten pokój?</translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation>Opuść pokój</translation>
@@ -1493,7 +1517,7 @@ Przykład: https://server.my:8787</translation>
         <translation>Utwórz nowy tag...</translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation>Wiadomość Statusowa</translation>
     </message>
@@ -1518,7 +1542,30 @@ Przykład: https://server.my:8787</translation>
         <translation>Wyloguj</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished">Zamknij</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation>Utwórz nowy czat</translation>
     </message>
@@ -1546,12 +1593,12 @@ Przykład: https://server.my:8787</translation>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation>Obecni w %1</translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation>
@@ -1589,12 +1636,12 @@ Przykład: https://server.my:8787</translation>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation>Ustawienia Pokoju</translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation>%1 użytkownik(ów)</translation>
     </message>
@@ -1701,12 +1748,12 @@ Przykład: https://server.my:8787</translation>
         <translation>Wersja Pokoju</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Nie udało się włączyć szyfrowania: %1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation>Wybierz awatar</translation>
     </message>
@@ -1726,8 +1773,8 @@ Przykład: https://server.my:8787</translation>
         <translation>Błąd czytania pliku: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation>Nie udało się wysłać obrazu: %s</translation>
     </message>
@@ -1735,22 +1782,50 @@ Przykład: https://server.my:8787</translation>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation>Oczekujące zaproszenie.</translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation>Podgląd tego pokoju</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation>Podgląd pokoju niedostępny</translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1807,20 +1882,98 @@ Przykład: https://server.my:8787</translation>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation>Błąd połączenia do menadżera sekretów</translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
-        <translation>Nheko nie udało się połączyć z menadżerem sekretów w celu zapisania sekretów służących do szyfrowania. Mogło to zostać spowodowane różnymi czynnikami. Sprawdź czy serwis D-Bus działa oraz czy został skonfigurowany i uruchomiony jeden z następujących serwisów: KWallet, Gnome Secrets lub ekwiwalent dla twojej platformy. Jeśli nadal będziesz miał(a) problem, możesz zgłosić błąd tutaj: https://github.com/Nheko-Reborn/nheko/issues</translation>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation>Nie udało się uaktualnić paczki obrazów: %1</translation>
@@ -1836,7 +1989,7 @@ Przykład: https://server.my:8787</translation>
         <translation>Nie udało się otworzyć obrazu: %1</translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation>Nie udało się wysłać obrazu: %1</translation>
     </message>
@@ -1893,18 +2046,18 @@ Przykład: https://server.my:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation>Cenzurowanie wiadomości nie powiodło się: %1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation>Szyfrowanie event-u nie powiodło się, wysyłanie anulowane!</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation>Zapisz obraz</translation>
     </message>
@@ -1924,7 +2077,7 @@ Przykład: https://server.my:8787</translation>
         <translation>Zapisz plik</translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation>
@@ -1934,7 +2087,7 @@ Przykład: https://server.my:8787</translation>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation>%1 zmienił(a) status pokoju na publiczny.</translation>
     </message>
@@ -1974,12 +2127,12 @@ Przykład: https://server.my:8787</translation>
         <translation>%1 umożliwił członkom tego pokoju na dostęp od teraz.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation>%1 umożliwił dostęp do historii tego pokoju członkom od momentu kiedy zostali zaproszeni.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation>%1 umożliwił dostęp do historii tego pokoju członkom od momentu kiedy dołączyli do pokoju.</translation>
     </message>
@@ -1989,12 +2142,12 @@ Przykład: https://server.my:8787</translation>
         <translation>%1 zmienił(a) uprawnienia pokoju.</translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation>%1 został(a) zaproszona/y.</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation>%1 zmienił(a) swój awatar.</translation>
     </message>
@@ -2009,12 +2162,12 @@ Przykład: https://server.my:8787</translation>
         <translation>%1 dołączył(a).</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation>%1 dołączyła dzięki autoryzacji serwera użytkownika %2.</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 odrzucił(a) zaproszenie.</translation>
     </message>
@@ -2044,27 +2197,27 @@ Przykład: https://server.my:8787</translation>
         <translation>Użytkownik %1 został zbanowany.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation>Powód: %1</translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation>Użytkownik %1 ocenzurował własne pukanie.</translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation>Dołączyłeś(-łaś) do tego pokoju.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation>Użytkownik %1 zmienił swojego awatara i zmienił swoją nazwę wyświetlaną na %2.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation>Użytkownik %1 zmienił swoją nazwę wyświetlaną na %2.</translation>
     </message>
@@ -2101,7 +2254,12 @@ Przykład: https://server.my:8787</translation>
         <translation>Brak otwartych pokojów</translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished">Podgląd pokoju niedostępny</translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation>%1 obeczny(ch)</translation>
     </message>
@@ -2127,27 +2285,19 @@ Przykład: https://server.my:8787</translation>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation>Nie znaleziono zaszyfrowanego prywatnego czatu z tym użytkownikiem. Utwórz nowy zaszyfrowany prywatny czat z tym użytkownikiem i spróbuj ponownie.</translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation>Wróć do listy pokoi</translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation>Nie wybrano pokoju</translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation>Ten pokój nie jest szyfrowany!</translation>
     </message>
@@ -2158,8 +2308,8 @@ Przykład: https://server.my:8787</translation>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
-        <translation>Ten pokój zawiera wyłącznie zweryfikowane urządzenie które nigdy nie zmieniły swojego klucza głównego.</translation>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+2"/>
@@ -2206,9 +2356,34 @@ Przykład: https://server.my:8787</translation>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished">Proszę wprowadzić prawidłowy token rejestracji.</translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation>Globalny Profil Użytkownika</translation>
     </message>
@@ -2218,7 +2393,7 @@ Przykład: https://server.my:8787</translation>
         <translation>Profil Użytkownika Pokoju</translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation>Zmień awatar globalnie.</translation>
     </message>
@@ -2228,7 +2403,7 @@ Przykład: https://server.my:8787</translation>
         <translation>Zmień awatar wyłącznie dla bieżącego pokoju.</translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation>Zmień nazwę wyświetlaną globalnie.</translation>
     </message>
@@ -2238,7 +2413,7 @@ Przykład: https://server.my:8787</translation>
         <translation>Zmień nazwę wyświetlaną wyłącznie dla bieżącego pokoju.</translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation>Pokój: %1</translation>
     </message>
@@ -2248,18 +2423,18 @@ Przykład: https://server.my:8787</translation>
         <translation>To profil specyficzny dla pokoju. Nazwa użytkownika oraz awatar mogą być inne niż globalna nazwa użytkownika i globalny awatar.</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation>Otwórz globalny profil tego użytkownika.</translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation>Zweryfikuj</translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation>Rozpocznij prywatny czat.</translation>
     </message>
@@ -2274,12 +2449,42 @@ Przykład: https://server.my:8787</translation>
         <translation>Zbanuj użytkownika.</translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation>Udweryfikuj</translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation>Wybierz awatar</translation>
     </message>
@@ -2302,8 +2507,8 @@ Przykład: https://server.my:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation>Domyślne</translation>
     </message>
@@ -2311,7 +2516,7 @@ Przykład: https://server.my:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>Zminimalizuj do paska zadań</translation>
     </message>
@@ -2321,22 +2526,22 @@ Przykład: https://server.my:8787</translation>
         <translation>Rozpocznij na pasku zadań</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>Pasek boczny grupy</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation>Okrągłe awatary</translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation>profil: %1</translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation>Domyślny</translation>
     </message>
@@ -2361,7 +2566,7 @@ Przykład: https://server.my:8787</translation>
         <translation>POBIERZ</translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation>Pozostaw aplikację działającą w tle po zamknięciu okna.</translation>
     </message>
@@ -2378,6 +2583,16 @@ OFF - square, ON - Circle.</source>
 OFF - kwadrat, ON - koło.</translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation>Pokazuj kolumnę zawierającą grupy i tagi obok listy pokoi.</translation>
@@ -2406,7 +2621,7 @@ be blurred.</source>
         <translation>Kiedy okno traci fokus, historia zostanie rozmyta.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation>Opóźnienie ekranu prywatności (w sekundach [0 - 3600])</translation>
     </message>
@@ -2465,7 +2680,7 @@ Gdy ta opcja jest wyłączona, pokoje będą sortowane wyłącznie po znaczniku
 Gdy ta opcja jest włączona, pokoje z aktywnymi powiadomieniami (mało kółko z numerkiem w środku) będą na początku. Pokoje, które są wyciszone, będą sortowane po znaczniku czasowym, ponieważ zdaje się, że nie uważasz ich za równie wazne co pozostałe pokoje.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>Potwierdzenia przeczytania</translation>
     </message>
@@ -2477,7 +2692,7 @@ Status is displayed next to timestamps.</source>
 Status jest wyświetlany obok znacznika czasu.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation>Wysyłaj wiadomości używając Markdown-u</translation>
     </message>
@@ -2566,7 +2781,7 @@ To zwykle sprawia, że ikona aplikacji w tacce systemowej jest animowana.</trans
         <translation>Pobierz klucze szyfrowania wiadomości i umieść w szyfrowanym backup-ie kluczy online.</translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation>Włącz backup kluczy online</translation>
     </message>
@@ -2576,7 +2791,7 @@ To zwykle sprawia, że ikona aplikacji w tacce systemowej jest animowana.</trans
         <translation>Autorzy Nheko nie zalecają włączenia backup-u kluczy online dopóki symetryczny backup kluczy online nie jest dostępny. Włączyć mimo to?</translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation>ZAPISANE W CACHE-U</translation>
     </message>
@@ -2586,7 +2801,7 @@ To zwykle sprawia, że ikona aplikacji w tacce systemowej jest animowana.</trans
         <translation>NIE ZAPISANE W CACHE-U</translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation>Współczynnik skalowania</translation>
     </message>
@@ -2661,7 +2876,7 @@ To zwykle sprawia, że ikona aplikacji w tacce systemowej jest animowana.</trans
         <translation>Odcisk palca urządzenia</translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation>Klucze sesji</translation>
     </message>
@@ -2681,17 +2896,17 @@ To zwykle sprawia, że ikona aplikacji w tacce systemowej jest animowana.</trans
         <translation>SZYFROWANIE</translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>OGÓLNE</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation>INTERFEJS</translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation>Odtwarzaj media takie jak GIF  czy WEBP tylko gdy wskazane przy użyciu myszy.</translation>
     </message>
@@ -2731,7 +2946,7 @@ To zwykle sprawia, że ikona aplikacji w tacce systemowej jest animowana.</trans
         <translation>Klucz używany do weryfikacji innych użytkowników. Gdy zapisany w cache-u, weryfikacja użytkownika dokona weryfikacji wszystkich jego urządzeń.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation>Klucz samo-podpisywania</translation>
     </message>
@@ -2761,14 +2976,14 @@ To zwykle sprawia, że ikona aplikacji w tacce systemowej jest animowana.</trans
         <translation>Wszystkie pliki (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation>Otwórz Plik Sesji</translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2776,19 +2991,19 @@ To zwykle sprawia, że ikona aplikacji w tacce systemowej jest animowana.</trans
         <translation>Błąd</translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation>Hasło Pliku</translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation>Wpisz frazę do odszyfrowania pliku:</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation>Hasło nie może być puste</translation>
     </message>
@@ -2804,6 +3019,14 @@ To zwykle sprawia, że ikona aplikacji w tacce systemowej jest animowana.</trans
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished">Nie znaleziono zaszyfrowanego prywatnego czatu z tym użytkownikiem. Utwórz nowy zaszyfrowany prywatny czat z tym użytkownikiem i spróbuj ponownie.</translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2857,7 +3080,7 @@ To zwykle sprawia, że ikona aplikacji w tacce systemowej jest animowana.</trans
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation>Wczoraj</translation>
     </message>
@@ -2929,37 +3152,6 @@ To zwykle sprawia, że ikona aplikacji w tacce systemowej jest animowana.</trans
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation>Dołącz</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>Anuluj</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>ID pokoju lub alias</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation>Anuluj</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>Czy na pewno chcesz wyjść?</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3025,47 +3217,47 @@ Rozmiar multimediów: %2
         <translation>%1 wysłał(a) klip audio</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation>Wysłałeś(aś) obraz</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation>%1 wysłał(a) obraz</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation>Wysłałeś(aś) plik</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation>%1 wysłał(a) plik</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation>Wysłałeś(aś) wideo</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation>%1 wysłał(a) wideo</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation>Wysłałeś(aś) naklejkę</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation>%1 wysłał(a) naklejkę</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation>Wysłałeś(aś) powiadomienie</translation>
     </message>
@@ -3080,7 +3272,7 @@ Rozmiar multimediów: %2
         <translation>Ty: %1</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation>%1: %2</translation>
     </message>
@@ -3100,27 +3292,27 @@ Rozmiar multimediów: %2
         <translation>Wykonujesz telefon</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation>%1 wykonuje telefon</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation>Odebrałeś(aś) połączenie</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation>%1 odebrał(a) połączenie</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation>Zakończyłeś(aś) połączenie</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation>%1 zakończył(a) połączenie</translation>
     </message>
@@ -3128,7 +3320,7 @@ Rozmiar multimediów: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation>Nieznany Typ Wiadomości</translation>
     </message>
diff --git a/resources/langs/nheko_pt_BR.ts b/resources/langs/nheko_pt_BR.ts
index 046d2254..a9851709 100644
--- a/resources/langs/nheko_pt_BR.ts
+++ b/resources/langs/nheko_pt_BR.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation>Ligando...</translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>Chamada de Vídeo</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>Chamada de Vídeo</translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation>Tela Inteira</translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>Falha ao convidar usuário: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>Usuário convidado: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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>Falha ao migrar cache para versão atual. Isso pode ter diferentes razões. Por favor reporte o problema e tente usar uma versão antiga no meio tempo. Alternativamente, você pode tentar excluir o cache manualmente.</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation>Confirmar entrada</translation>
     </message>
@@ -151,23 +151,23 @@
         <translation>Deseja realmente entrar em %1?</translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>Sala %1 criada.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>Confirmar convite</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Deseja realmente convidar %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation>Falha ao convidar %1 para %2: %3</translation>
     </message>
@@ -182,7 +182,7 @@
         <translation>Deseja realmente expulsar %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>Usuário expulso: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation>Deseja realmente banir %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>Falha ao banir %1 em %2: %3</translation>
     </message>
@@ -217,7 +217,7 @@
         <translation>Deseja realmente desbanir %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation>Falha ao desbanir %1 em %2: %3</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Usuário desbanido: %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation>Deseja realmente iniciar uma conversa privada com %1?</translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation>Migração do cache falhou!</translation>
     </message>
@@ -259,23 +259,23 @@
         <translation>Falha ao restaurar dados salvos. Por favor faça login novamente.</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>Falha ao configurar chaves de criptografia. Resposta do servidor: %1 %2. Por favor tente novamente mais tarde.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>Falha ao entrar na sala: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>Você entrou na sala</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation>Falha ao remover o convite: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>Falha ao sair da sala: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation>Falha ao expulsar %1 de %2: %3</translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -364,12 +364,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation type="unfinished"></translation>
     </message>
@@ -612,7 +621,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation type="unfinished"></translation>
     </message>
@@ -622,7 +631,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation type="unfinished"></translation>
     </message>
@@ -697,7 +706,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation type="unfinished"></translation>
     </message>
@@ -712,7 +721,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation type="unfinished"></translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation type="unfinished"></translation>
     </message>
@@ -745,7 +754,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -846,25 +881,25 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -874,27 +909,45 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+192"/>
@@ -1019,7 +1072,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1039,7 +1092,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation type="unfinished"></translation>
@@ -1129,7 +1182,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1178,7 +1236,7 @@ Example: https://server.my:8787</source>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
+        <source>You are about to notify the whole room</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1186,30 +1244,18 @@ Example: https://server.my:8787</source>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1239,7 +1285,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished">Nenhum microfone encontrado.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1270,7 +1316,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1288,7 +1334,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1296,7 +1342,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1304,18 +1350,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <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="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1345,37 +1391,22 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1385,7 +1416,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1416,20 +1447,25 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1447,16 +1483,6 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation type="unfinished"></translation>
@@ -1487,7 +1513,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1512,7 +1538,30 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1540,12 +1589,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation type="unfinished">
@@ -1582,12 +1631,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1693,12 +1742,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1718,8 +1767,8 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1727,22 +1776,50 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1799,20 +1876,98 @@ Example: https://server.my:8787</source>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
@@ -1828,7 +1983,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1885,18 +2040,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1916,7 +2071,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation type="unfinished">
@@ -1925,7 +2080,7 @@ Example: https://server.my:8787</source>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1965,12 +2120,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1980,12 +2135,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2000,12 +2155,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2035,27 +2190,27 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation type="unfinished">Você entrou nessa sala.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2092,7 +2247,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2118,27 +2278,19 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2149,7 +2301,7 @@ Example: https://server.my:8787</source>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -2197,9 +2349,34 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2209,7 +2386,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2219,7 +2396,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2229,7 +2406,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2239,18 +2416,18 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2265,12 +2442,42 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2293,8 +2500,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2302,7 +2509,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2312,22 +2519,22 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2352,7 +2559,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2368,6 +2575,16 @@ OFF - square, ON - Circle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation type="unfinished"></translation>
@@ -2395,7 +2612,7 @@ be blurred.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2450,7 +2667,7 @@ If this is on, rooms which have active notifications (the small circle with a nu
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2461,7 +2678,7 @@ Status is displayed next to timestamps.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2548,7 +2765,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2558,7 +2775,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2568,7 +2785,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2643,7 +2860,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2663,17 +2880,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2713,7 +2930,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2743,14 +2960,14 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2758,19 +2975,19 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2786,6 +3003,14 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2839,7 +3064,7 @@ This usually causes the application icon in the task bar to animate in some fash
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2911,37 +3136,6 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation type="unfinished">Cancelar</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation type="unfinished">Cancelar</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3005,47 +3199,47 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3060,7 +3254,7 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3080,27 +3274,27 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3108,7 +3302,7 @@ Media size: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_pt_PT.ts b/resources/langs/nheko_pt_PT.ts
index d30c267e..69eab896 100644
--- a/resources/langs/nheko_pt_PT.ts
+++ b/resources/langs/nheko_pt_PT.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation>A chamar...</translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>Videochamada</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>Videochamada</translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation>Ecrã inteiro</translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>Falha ao convidar utilizador: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>Utilizador convidado: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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>A migração da cache para a versão atual falhou, e existem várias razões possíveis. Por favor abra um problema (&quot;issue&quot;) e experimente usar uma versão mais antiga entretanto. Alternativamente, pode tentar apagar a cache manualmente.</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation>Confirmar entrada</translation>
     </message>
@@ -151,23 +151,23 @@
         <translation>Tem a certeza que quer entrar em %1?</translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>Sala %1 criada.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>Confirmar convite</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Tem a certeza que quer convidar %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation>Falha ao convidar %1 para %2: %3</translation>
     </message>
@@ -182,7 +182,7 @@
         <translation>Tem a certeza que quer expulsar %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>Utilizador expulso: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation>Tem a certeza que quer banir %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>Falha ao banir %1 em %2: %3</translation>
     </message>
@@ -217,7 +217,7 @@
         <translation>Tem a certeza que quer perdoar %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation>Falha ao perdoar %1 em %2: %3</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Utilizador perdoado: %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation>Tem a certeza que quer começar uma conversa privada com %1?</translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation>Falha ao migrar a cache!</translation>
     </message>
@@ -259,23 +259,23 @@
         <translation>Falha ao restaurar dados guardados. Por favor, autentique-se novamente.</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>Falha ao estabelecer chaves encriptadas. Resposta do servidor: %1 %2. Tente novamente mais tarde.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>Por favor, tente autenticar-se novamente: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>Falha ao entrar em sala: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>Entrou na sala</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation>Falha ao remover convite: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>Falha ao criar sala: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>Falha ao sair da sala: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation>Falha ao expulsar %1 de %2: %3</translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation>Desencriptar segredos</translation>
     </message>
@@ -364,12 +364,12 @@
         <translation>Insira a sua chave de recuperação ou palavra-passe para desencriptar os seus segredos:</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation>Insira a sua chave de recuperação ou palavra-passe chamada %1 para desencriptar os seus segredos:</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation>Falha ao desencriptar</translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation>A verificação do dispositivo expirou.</translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation>A outra parte cancelou a verificação.</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation>Fechar</translation>
     </message>
@@ -612,7 +621,7 @@
         <translation>A editar pacote de imagens</translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation>Adicionar imagens</translation>
     </message>
@@ -622,7 +631,7 @@
         <translation>Autocolantes (*.png *.webp *.gif *.jpg *.jpeg)</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation>Usar como emoji</translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation>Usar como autocolante</translation>
     </message>
@@ -697,7 +706,7 @@
         <translation>Criar pacote de sala</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation>Pacote privado</translation>
     </message>
@@ -712,7 +721,7 @@
         <translation>Pacote ativo globalmente</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation>Ativar globalmente</translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation>Selecionar um ficheiro</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation>Todos os ficheiros (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation>Falha ao carregar mídia. Por favor, tente novamente.</translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation>Convidar utilizadores para %1</translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">Sair da sala</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -850,25 +885,25 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>INCIAR SESSÃO</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation>Inseriu um ID Matrix inválido  p. ex. @ze:matrix.org</translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Falha na descoberta automática. Reposta mal formatada recebida.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Falha na descoberta automática. Erro desconhecido ao solicitar &quot;.well-known&quot;.</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Não foi possível encontrar os funções (&quot;endpoints&quot;) necessárias. Possivelmente não é um servidor Matrix.</translation>
     </message>
@@ -878,27 +913,45 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Resposta mal formada recebida. Certifique-se que o domínio do servidor está correto.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>Erro desconhecido. Certifique-se que o domínio do servidor é válido.</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation type="unfinished">ENTRAR COM ISU (SSO)</translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>Palavra-passe vazia</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation>Falha no ISU (SSO)</translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+192"/>
@@ -1023,7 +1076,7 @@ Exemplo: https://servidor.meu:8787</translation>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation>Editar</translation>
     </message>
@@ -1043,7 +1096,7 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Opções</translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation>&amp;Copiar</translation>
@@ -1133,7 +1186,12 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Pedido de verificação recebido</translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation>Para que outros possam ver que dispositivos pertencem realmente a si, pode verificá-los. Isso permite, também, que a cópia de segurança de chaves funcione automaticamente. Verificar %1 agora?</translation>
     </message>
@@ -1182,38 +1240,26 @@ Exemplo: https://servidor.meu:8787</translation>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
-        <translation>Irá causar uma notificação para toda a sala</translation>
+        <source>You are about to notify the whole room</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation>%1 enviou uma mensagem encriptada</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation>* %1 %2</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation>%1 respondeu: %2</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation>%1: %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1243,7 +1289,7 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Nenhum microfone encontrado.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation>Voz</translation>
     </message>
@@ -1274,7 +1320,7 @@ Exemplo: https://servidor.meu:8787</translation>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation>Crie um perfil único que lhe permite entrar em várias contas simultaneamente e iniciar várias instâncias do Nheko.</translation>
     </message>
@@ -1292,7 +1338,7 @@ Exemplo: https://servidor.meu:8787</translation>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation>Recibos de leitura</translation>
     </message>
@@ -1300,7 +1346,7 @@ Exemplo: https://servidor.meu:8787</translation>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation>Ontem, %1</translation>
     </message>
@@ -1308,18 +1354,18 @@ Exemplo: https://servidor.meu:8787</translation>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>Nome de utilizador</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
         <translation>O nome de utilizador não pode ser vazio e tem que conter apenas os caracteres a-z, 0-9, ., _, =, - e /.</translation>
     </message>
     <message>
-        <location line="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>Palavra-passe</translation>
     </message>
@@ -1349,37 +1395,22 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>REGISTAR</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation>Nenhum percurso de registo suportado!</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation>Testemunho de registo</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation>Por favor, insira um testemunho de registo válido.</translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Falha na descoberta automática. Resposta mal formada recebida.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Falha na descoberta automática. Erro desconhecido ao requisitar &quot;.well-known&quot;.</translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Não foi possível encontrar os funções (&quot;endpoints&quot;) necessárias. Possivelmente não é um servidor Matrix.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation>Resposta mal formada recebida. Certifique-se que o domínio do servidor está correto.</translation>
     </message>
@@ -1389,7 +1420,7 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Erro desconhecido. Certifique-se que o domínio do servidor é válido.</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>A palavra-passe não é longa o suficiente (mín, 8 caracteres)</translation>
     </message>
@@ -1420,20 +1451,25 @@ Exemplo: https://servidor.meu:8787</translation>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation>Explorar salas públicas</translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation>Procurar por salas públicas</translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation>nenhuma versão guardada</translation>
     </message>
@@ -1451,16 +1487,6 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Insira a etiqueta que quer usar:</translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation>Sair da sala</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation>Tem a certeza que quer sair desta sala?</translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation>Sair da sala</translation>
@@ -1491,7 +1517,7 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Criar nova etiqueta...</translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation>Mensagem de estado</translation>
     </message>
@@ -1516,7 +1542,30 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Terminar sessão</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished">Fechar</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation>Iniciar uma nova conversa</translation>
     </message>
@@ -1544,12 +1593,12 @@ Exemplo: https://servidor.meu:8787</translation>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation>Membros de %1</translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation>
@@ -1586,12 +1635,12 @@ Exemplo: https://servidor.meu:8787</translation>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation>Definições de sala</translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation>%1 membro(s)</translation>
     </message>
@@ -1697,12 +1746,12 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Versão da sala</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Falha ao ativar encriptação: %1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation>Selecionar um ícone</translation>
     </message>
@@ -1722,8 +1771,8 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Erro ao ler ficheiro: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation>Falha ao carregar imagem: %s</translation>
     </message>
@@ -1731,22 +1780,50 @@ Exemplo: https://servidor.meu:8787</translation>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation>Convite pendente.</translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation>A pré-visualizar esta sala</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation>Pré-visualização não disponível</translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1803,20 +1880,98 @@ Exemplo: https://servidor.meu:8787</translation>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation>Falha ao ligar ao armazenamento secreto</translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
-        <translation>O Nheko não foi capaz de ligar ao armazenamento seguro para guardar os segredos de encriptação. Isto pode se dever a várias razões. Confirme se o serviço &quot;D-Bus&quot; está a correr e se configurou um serviço como o &quot;KWallet&quot;, &quot;Gnome Secrets&quot; ou algo equivalente na sua plataforma. Se continuar com dificuldades, não hesite em abrir um problema aqui: https://github.com/Nheko-Reborn/nheko/issues (em Inglês)</translation>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation>Falha ao atualizar pacote de imagem: %1</translation>
@@ -1832,7 +1987,7 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Falha ao abrir imagem: %1</translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation>Falha ao carregar imagem: %1</translation>
     </message>
@@ -1889,18 +2044,18 @@ Exemplo: https://servidor.meu:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation>Falha ao eliminar mensagem: %1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation>Falha ao encriptar evento, envio abortado!</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation>Guardar imagem</translation>
     </message>
@@ -1920,7 +2075,7 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Guardar ficheiro</translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation>
@@ -1929,7 +2084,7 @@ Exemplo: https://servidor.meu:8787</translation>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation>%1 abriu a sala ao público.</translation>
     </message>
@@ -1969,12 +2124,12 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation type="unfinished">%1 tornou o histórico da sala, a partir deste momento, visível a membros</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation type="unfinished">%1 tornou o histórico visível a membros desde o seu convite.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation type="unfinished">%1 tornou o histórico da sala visível ao membros desde a sua entrada.</translation>
     </message>
@@ -1984,12 +2139,12 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>%1 alterou as permissões da sala.</translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation>%1 foi convidado.</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation>%1 alterou o seu avatar.</translation>
     </message>
@@ -2004,12 +2159,12 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>%1 entrou.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation>%1 entrou com autorização do servidor de %2.</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 recusou o seu convite.</translation>
     </message>
@@ -2039,27 +2194,27 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>%1 foi banido.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation>Razão: %1</translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation>%1 eliminou a sua &quot;batida à porta&quot;.</translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation>Entrou na sala.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation>%1 alterou o seu avatar e também o seu nome de exibição para %2.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation>%1 alterou o seu nome de exibição para %2.</translation>
     </message>
@@ -2096,7 +2251,12 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Nenhuma sala aberta</translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished">Pré-visualização não disponível</translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation>%1 membro(s)</translation>
     </message>
@@ -2122,27 +2282,19 @@ Exemplo: https://servidor.meu:8787</translation>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation>Não foi encontrada nenhuma conversa privada e encriptada com este utilizador. Crie uma e tente novamente.</translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation>Voltar à lista de salas</translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation>Nenhuma sala selecionada</translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation>Esta sala não é encriptada!</translation>
     </message>
@@ -2153,8 +2305,8 @@ Exemplo: https://servidor.meu:8787</translation>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
-        <translation>Esta sala contém dispositivos verificados e outros que nunca alteraram a sua chave-mestra.</translation>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+2"/>
@@ -2201,9 +2353,34 @@ Exemplo: https://servidor.meu:8787</translation>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished">Por favor, insira um testemunho de registo válido.</translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation>Perfil de utilizador global</translation>
     </message>
@@ -2213,7 +2390,7 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Perfil de utilizador na sala</translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation>Alterar avatar globalmente.</translation>
     </message>
@@ -2223,7 +2400,7 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Alterar avatar. Irá apenas afetar esta sala.</translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation>Alterar nome de exibição globalmente.</translation>
     </message>
@@ -2233,7 +2410,7 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Alterar nome de exibição. Irá apenas afetar esta sala.</translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation>Sala: %1</translation>
     </message>
@@ -2243,18 +2420,18 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Este é um perfil específico desta sala. O nome e avatar do utilizador poderão ser diferentes dos seus homólogos globais.</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation>Abrir o perfil global deste utilizador.</translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation>Verificar</translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation>Iniciar uma conversa privada.</translation>
     </message>
@@ -2269,12 +2446,42 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>Banir o utilizador.</translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation>Anular verificação</translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation>Selecionar um avatar</translation>
     </message>
@@ -2297,8 +2504,8 @@ Exemplo: https://servidor.meu:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation>Padrão</translation>
     </message>
@@ -2306,7 +2513,7 @@ Exemplo: https://servidor.meu:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation type="unfinished">Minimizar para bandeja</translation>
     </message>
@@ -2316,22 +2523,22 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation type="unfinished">Iniciar na bandeja</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>Barra lateral do grupo</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation>Avatares circulares</translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation>perfil: %1</translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation>Padrão</translation>
     </message>
@@ -2356,7 +2563,7 @@ Exemplo: https://servidor.meu:8787</translation>
         <translation>DESCARREGAR</translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation>Manter a aplicação a correr em segundo plano depois de fechar a janela.</translation>
     </message>
@@ -2372,6 +2579,16 @@ OFF - square, ON - Circle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation type="unfinished"></translation>
@@ -2400,7 +2617,7 @@ be blurred.</source>
 será desfocada.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation>Tempo de inatividade para ecrã de privacidade (em segundos [0 - 3600])</translation>
     </message>
@@ -2460,7 +2677,7 @@ Se desativada, a lista de salas será apenas ordenada pela data da última mensa
 Se ativada, salas com notificações ativas (pequeno círculo com um número dentro) serão ordenadas no topo. Salas silenciadas continuarão a ser ordenadas por data, visto que não são consideradas tão importantes como as outras.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>Recibos de leitura</translation>
     </message>
@@ -2472,7 +2689,7 @@ Status is displayed next to timestamps.</source>
 Estado exibido ao lado da data.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation>Enviar mensagens como Markdown</translation>
     </message>
@@ -2559,7 +2776,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2569,7 +2786,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2579,7 +2796,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2654,7 +2871,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2674,17 +2891,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2724,7 +2941,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2746,22 +2963,22 @@ This usually causes the application icon in the task bar to animate in some fash
     <message>
         <location line="+54"/>
         <source>Select a file</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Selecionar um ficheiro</translation>
     </message>
     <message>
         <location line="+0"/>
         <source>All Files (*)</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Todos os ficheiros (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2769,19 +2986,19 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2797,6 +3014,14 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished">Não foi encontrada nenhuma conversa privada e encriptada com este utilizador. Crie uma e tente novamente.</translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2839,18 +3064,18 @@ This usually causes the application icon in the task bar to animate in some fash
     <message>
         <location line="+23"/>
         <source>REGISTER</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">REGISTAR</translation>
     </message>
     <message>
         <location line="+5"/>
         <source>LOGIN</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">INCIAR SESSÃO</translation>
     </message>
 </context>
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2922,37 +3147,6 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation type="unfinished">Cancelar</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation type="unfinished">Cancelar</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3016,47 +3210,47 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3071,9 +3265,9 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">%1: %2</translation>
     </message>
     <message>
         <location line="+7"/>
@@ -3083,7 +3277,7 @@ Media size: %2
     <message>
         <location line="+3"/>
         <source>%1 sent an encrypted message</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">%1 enviou uma mensagem encriptada</translation>
     </message>
     <message>
         <location line="+5"/>
@@ -3091,27 +3285,27 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3119,7 +3313,7 @@ Media size: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_ro.ts b/resources/langs/nheko_ro.ts
index 86afca01..6d28da46 100644
--- a/resources/langs/nheko_ro.ts
+++ b/resources/langs/nheko_ro.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>Nu s-a putut invita utilizatorul: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>Utilizator invitat: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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>Nu s-a putut muta cache-ul pe versiunea curentă. Acest lucru poate avea diferite cauze. Vă rugăm să deschideți un issue și încercați să folosiți o versiune mai veche între timp. O altă opțiune ar fi să încercați să ștergeți cache-ul manual.</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -151,23 +151,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>Camera %1 a fost creată.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation>Nu s-a putut invita %1 în %2: %3</translation>
     </message>
@@ -182,7 +182,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>Utilizator eliminat: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>Nu s-a putut interzice utilizatorul %1 în %2: %3</translation>
     </message>
@@ -217,7 +217,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation>Nu s-a putut dezinterzice %1 în %2: %3</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Utilizator dezinterzis: %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation>Nu s-a putut migra cache-ul!</translation>
     </message>
@@ -259,23 +259,23 @@
         <translation>Nu s-au putut restabili datele salvate. Vă rugăm să vă reconectați.</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>Nu s-au putut stabili cheile. Răspunsul serverului: %1 %2. Vă rugăm încercați mai târziu.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>Vă rugăm să vă reconectați: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>Nu s-a putut alătura la cameră: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>V-ați alăturat camerei</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation>Nu s-a putut șterge invitația: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>Nu s-a putut crea camera: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>Nu s-a putut părăsi camera: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -364,12 +364,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation type="unfinished">Închide</translation>
     </message>
@@ -612,7 +621,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation type="unfinished"></translation>
     </message>
@@ -622,7 +631,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation type="unfinished"></translation>
     </message>
@@ -697,7 +706,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation type="unfinished"></translation>
     </message>
@@ -712,7 +721,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation type="unfinished"></translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation type="unfinished"></translation>
     </message>
@@ -745,7 +754,7 @@
         <translation type="unfinished">Toate fișierele (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished">IDul camerei sau alias</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">Părăsește camera</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished">Sigur vrei să părăsești camera?</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -850,25 +885,25 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation>CONECTARE</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Autodescoperirea a eșuat. Răspunsul primit este defectuos.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Autodescoperirea a eșuat. Eroare necunoscută la solicitarea .well-known.</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Punctele finale necesare nu au fost găsite. Posibil a nu fi un server Matrix.</translation>
     </message>
@@ -878,27 +913,45 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation>Răspuns eronat primit. Verificați ca domeniul homeserverului să fie valid.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>A apărut o eroare necunoscută. Verificați ca domeniul homeserverului să fie valid.</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation>CONECTARE SSO</translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>Parolă necompletată</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation>Conectarea SSO a eșuat</translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+174"/>
@@ -1023,7 +1076,7 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1043,7 +1096,7 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished">Opțiuni</translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation type="unfinished"></translation>
@@ -1133,7 +1186,12 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1182,7 +1240,7 @@ Exemplu: https://serverul.meu:8787</translation>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
+        <source>You are about to notify the whole room</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1190,30 +1248,18 @@ Exemplu: https://serverul.meu:8787</translation>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation type="unfinished">%1 a trimis un mesaj criptat</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation type="unfinished">%1: %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1243,7 +1289,7 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1274,7 +1320,7 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1292,7 +1338,7 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation type="unfinished">Confirmări de citire</translation>
     </message>
@@ -1300,7 +1346,7 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1308,18 +1354,18 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>Nume de utilizator</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
         <translation>Numele de utilizator nu poate fi gol, și trebuie să conțină doar caracterele a-z, 0-9, ., =, - și /.</translation>
     </message>
     <message>
-        <location line="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>Parolă</translation>
     </message>
@@ -1349,37 +1395,22 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation>ÎNREGISTRARE</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation>Fluxuri de înregistrare nesuportate!</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished">Autodescoperirea a eșuat. Răspunsul primit este defectuos.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished">Autodescoperirea a eșuat. Eroare necunoscută la solicitarea .well-known.</translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished">Punctele finale necesare nu au fost găsite. Posibil a nu fi un server Matrix.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished">Răspuns eronat primit. Verificați ca domeniul homeserverului să fie valid.</translation>
     </message>
@@ -1389,7 +1420,7 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished">A apărut o eroare necunoscută. Verificați ca domeniul homeserverului să fie valid.</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>Parola nu este destul de lungă (minim 8 caractere)</translation>
     </message>
@@ -1420,20 +1451,25 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation>nicio versiune stocată</translation>
     </message>
@@ -1451,16 +1487,6 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation type="unfinished">Părăsește camera</translation>
@@ -1491,7 +1517,7 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1516,7 +1542,30 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished">Deconectare</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished">Închide</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation type="unfinished">Începe o nouă conversație</translation>
     </message>
@@ -1544,12 +1593,12 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation type="unfinished">
@@ -1587,12 +1636,12 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1698,12 +1747,12 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished">Nu s-a putut activa criptarea: %1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation type="unfinished">Selectează un avatar</translation>
     </message>
@@ -1723,8 +1772,8 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished">Eroare întâmpinată la citirea fișierului: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation type="unfinished">Nu s-a putut încărca imaginea: %s</translation>
     </message>
@@ -1732,22 +1781,50 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1804,20 +1881,98 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
@@ -1833,7 +1988,7 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1890,18 +2045,18 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation>Redactare mesaj eșuată: %1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation>Salvați imaginea</translation>
     </message>
@@ -1921,7 +2076,7 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation>Salvați fișier</translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation>
@@ -1931,7 +2086,7 @@ Exemplu: https://serverul.meu:8787</translation>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation>%1 a deschis camera publicului.</translation>
     </message>
@@ -1971,12 +2126,12 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation>%1 a făcut istoricul camerei accesibil membrilor din acest moment.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation>%1 a setat istoricul camerei accesibil participanților din momentul invitării.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation>%1 a setat istoricul camerei accesibil membrilor din momentul alăturării.</translation>
     </message>
@@ -1986,12 +2141,12 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation>%1 a modificat permisiunile camerei.</translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation>%1 a fost invitat(ă).</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation>%1 și-a schimbat avatarul.</translation>
     </message>
@@ -2006,12 +2161,12 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation>%1 s-a alăturat.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 a respins invitația.</translation>
     </message>
@@ -2041,27 +2196,27 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation>%1 a fost interzis(ă).</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation>%1 și-a redactat ciocănitul.</translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation>Te-ai alăturat camerei.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2098,7 +2253,12 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation>Nicio cameră deschisă</translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2124,27 +2284,19 @@ Exemplu: https://serverul.meu:8787</translation>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2155,7 +2307,7 @@ Exemplu: https://serverul.meu:8787</translation>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -2203,9 +2355,34 @@ Exemplu: https://serverul.meu:8787</translation>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2215,7 +2392,7 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2225,7 +2402,7 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2235,7 +2412,7 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2245,18 +2422,18 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2271,12 +2448,42 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation type="unfinished">Selectează un avatar</translation>
     </message>
@@ -2299,8 +2506,8 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2308,7 +2515,7 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>Minimizează în bara de notificări</translation>
     </message>
@@ -2318,22 +2525,22 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation>Pornește în bara de notificări</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>Bara laterală a grupului</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation>Avatare rotunde</translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2358,7 +2565,7 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2374,6 +2581,16 @@ OFF - square, ON - Circle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation type="unfinished"></translation>
@@ -2401,7 +2618,7 @@ be blurred.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2456,7 +2673,7 @@ If this is on, rooms which have active notifications (the small circle with a nu
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>Confirmări de citire</translation>
     </message>
@@ -2467,7 +2684,7 @@ Status is displayed next to timestamps.</source>
         <translation>Vezi dacă mesajul tău a fost citit. Starea este afișată lângă timestampuri.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation>Trimite mesaje ca Markdown</translation>
     </message>
@@ -2554,7 +2771,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2564,7 +2781,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2574,7 +2791,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation>Factor de dimensiune</translation>
     </message>
@@ -2649,7 +2866,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Amprentă Dispozitiv</translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation>Chei de sesiune</translation>
     </message>
@@ -2669,17 +2886,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>CRIPTARE</translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>GENERAL</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation>INTERFAȚĂ</translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2719,7 +2936,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2749,14 +2966,14 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished">Toate fișierele (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation>Deschide fișierul de sesiuni</translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2764,19 +2981,19 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Eroare</translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation>Parolă fișier</translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation>Introduceți parola pentru a decripta fișierul:</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation>Parola nu poate fi necompletată</translation>
     </message>
@@ -2792,6 +3009,14 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2845,7 +3070,7 @@ This usually causes the application icon in the task bar to animate in some fash
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation>Ieri</translation>
     </message>
@@ -2917,37 +3142,6 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation>Alăturare</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>Anulare</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>IDul camerei sau alias</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation>Anulare</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>Sigur vrei să părăsești camera?</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3013,47 +3207,47 @@ Dimensiune media: %2
         <translation>%1 a trimis un clip audio</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation>Ai trimis o imagine</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation>%1 a trimis o imagine</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation>Ai trimis un fișier</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation>%1 a trimis un fișier</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation>Ai trimis un video</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation>%1 a trimis un video</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation>Ai trimis un sticker</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation>%1 a trimis un sticker</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation>Ai trimis o notificare</translation>
     </message>
@@ -3068,7 +3262,7 @@ Dimensiune media: %2
         <translation>Tu: %1</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation>%1: %2</translation>
     </message>
@@ -3088,27 +3282,27 @@ Dimensiune media: %2
         <translation>Ai inițiat un apel</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation>%1 a inițiat un apel</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation>Ai răspuns unui apel</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation>%1 a răspuns unui apel</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation>Ai încheiat un apel</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation>%1 a încheiat un apel</translation>
     </message>
@@ -3116,7 +3310,7 @@ Dimensiune media: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation>Tip mesaj necunoscut</translation>
     </message>
diff --git a/resources/langs/nheko_ru.ts b/resources/langs/nheko_ru.ts
index 7cfaab56..698d277f 100644
--- a/resources/langs/nheko_ru.ts
+++ b/resources/langs/nheko_ru.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation>Вызов...</translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>Видео Звонок</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>Видео Звонок</translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation>Весь экран</translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>Не удалось пригласить пользователя: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>Приглашенный пользователь: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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>Миграция кэша для текущей версии не удалась. Это может происходить по разным причинам. Пожалуйста сообщите о проблеме и попробуйте временно использовать старую версию. Так-же вы можете попробовать удалить кэш самостоятельно.</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation>Подтвердить вход</translation>
     </message>
@@ -151,23 +151,23 @@
         <translation>Вы действительно хотите присоединиться?</translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>Комната %1 создана.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>Подтвердите приглашение</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Вы точно хотите пригласить %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation>Не удалось пригласить %1 в %2: %3</translation>
     </message>
@@ -182,7 +182,7 @@
         <translation>Вы точно хотите выгнать %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>Выгнанный пользователь: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation>Вы точно хотите заблокировать %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>Не удалось заблокировать %1 в %2: %3</translation>
     </message>
@@ -217,7 +217,7 @@
         <translation>Вы точно хотите разблокировать %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation>Не удалось разблокировать %1 в %2: %3</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Разблокированный пользователь: %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation>Вы действительно хотите начать личную переписку с %1?</translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation>Миграция кэша не удалась!</translation>
     </message>
@@ -259,23 +259,23 @@
         <translation>Не удалось восстановить сохраненные данные. Пожалуйста, войдите снова.</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>Не удалось настроить ключи шифрования. Ответ сервера:%1 %2. Пожалуйста, попробуйте позже.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>Повторите попытку входа: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>Не удалось присоединиться к комнате: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>Вы присоединились к комнате</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation>Не удалось отменить приглашение: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>Не удалось создать комнату: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>Не удалось покинуть комнату: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation>Не удалось выгнать %1 из %2: %3</translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation>Расшифровать секреты</translation>
     </message>
@@ -364,12 +364,12 @@
         <translation>Введите свой ключ восстановления или пароль для расшифровки секретов: </translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation>Введите свой ключ восстановления или пароль названный %1 для расшифровки Ваших секретов:</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation>Расшифровка не удалась</translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation>Время для верификации устройста закончилось.</translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation>Другая сторона отменила верификацию.</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation>Закрыть</translation>
     </message>
@@ -612,7 +621,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation type="unfinished"></translation>
     </message>
@@ -622,7 +631,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation type="unfinished"></translation>
     </message>
@@ -697,7 +706,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation type="unfinished"></translation>
     </message>
@@ -712,7 +721,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation type="unfinished"></translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation>Выберите файл</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation>Все файлы (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation>Не удалось загрузить медиа. Пожалуйста попробуйте ещё раз</translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished">Идентификатор или псевдоним комнаты</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">Покинуть комнату</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished">Вы действительно желаете выйти?</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -850,25 +885,25 @@ Example: https://server.my:8787</source>
         <translation>ВОЙТИ</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation>Вы ввели не правильный Matrix ID, @joe:matrix.org</translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Автообноружение не удалось. Получен поврежденный ответ.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Автообноружение не удалось. Не известаня ошибка во время запроса .well-known.</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Необходимые конечные точки не найдены. Возможно, это не сервер Matrix.</translation>
     </message>
@@ -878,27 +913,45 @@ Example: https://server.my:8787</source>
         <translation>Получен неверный ответ. Убедитесь, что домен homeserver действителен.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>Произошла неизвестная ошибка. Убедитесь, что домен homeserver действителен.</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation>SSO ВХОД</translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>Пустой пароль</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation>SSO вход не удался</translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+174"/>
@@ -1023,7 +1076,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation>Редактировать</translation>
     </message>
@@ -1043,7 +1096,7 @@ Example: https://server.my:8787</source>
         <translation>Опции</translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation type="unfinished"></translation>
@@ -1133,7 +1186,12 @@ Example: https://server.my:8787</source>
         <translation>Получен Запрос Верификации</translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1182,7 +1240,7 @@ Example: https://server.my:8787</source>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
+        <source>You are about to notify the whole room</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1190,30 +1248,18 @@ Example: https://server.my:8787</source>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation>%1 отправил зашифрованное сообщение</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation type="unfinished">%1: %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1243,7 +1289,7 @@ Example: https://server.my:8787</source>
         <translation>Микрофон не найден.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation>Голос</translation>
     </message>
@@ -1274,7 +1320,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation>Создать уникальный профиль, который позволяет вести несколько аккаунтов и запускать множество сущностей nheko. </translation>
     </message>
@@ -1292,7 +1338,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation type="unfinished">Просмотр получателей</translation>
     </message>
@@ -1300,7 +1346,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1308,18 +1354,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>Имя пользователя</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
         <translation>Имя пользователя не должно быть пустым и должно содержать только символы a-z, 0-9, ., _, =, -, и /.</translation>
     </message>
     <message>
-        <location line="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>Пароль</translation>
     </message>
@@ -1349,37 +1395,22 @@ Example: https://server.my:8787</source>
         <translation>РЕГИСТРАЦИЯ</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation>Нет поддреживаемых регистрационных потоков</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished">Автообноружение не удалось. Получен поврежденный ответ.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished">Автообноружение не удалось. Не известаня ошибка во время запроса .well-known.</translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished">Необходимые конечные точки не найдены. Возможно, это не сервер Matrix.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished">Получен неверный ответ. Убедитесь, что домен homeserver действителен.</translation>
     </message>
@@ -1389,7 +1420,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished">Произошла неизвестная ошибка. Убедитесь, что домен homeserver действителен.</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>Слишком короткий пароль (минимум 8 символов)</translation>
     </message>
@@ -1420,20 +1451,25 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation>нет сохраненной версии</translation>
     </message>
@@ -1451,16 +1487,6 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation type="unfinished">Покинуть комнату</translation>
@@ -1491,7 +1517,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1516,7 +1542,30 @@ Example: https://server.my:8787</source>
         <translation type="unfinished">Выйти</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished">Закрыть</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation type="unfinished">Начать новый чат</translation>
     </message>
@@ -1544,12 +1593,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation type="unfinished">
@@ -1587,12 +1636,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation>Настройки комнаты</translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation>%1 участник(ов)</translation>
     </message>
@@ -1698,12 +1747,12 @@ Example: https://server.my:8787</source>
         <translation>Версия Комнаты</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Не удалось включить шифрование: %1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation>Выберите аватар</translation>
     </message>
@@ -1723,8 +1772,8 @@ Example: https://server.my:8787</source>
         <translation>Ошибка во время прочтения файла: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation>Не удалось загрузить изображение: %s</translation>
     </message>
@@ -1732,22 +1781,50 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1804,20 +1881,98 @@ Example: https://server.my:8787</source>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
@@ -1833,7 +1988,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1890,18 +2045,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation>Ошибка редактирования сообщения: %1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation>Не удалось зашифровать сообщение, отправка отменена!</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation>Сохранить изображение</translation>
     </message>
@@ -1921,7 +2076,7 @@ Example: https://server.my:8787</source>
         <translation>Сохранить файл</translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation>
@@ -1931,7 +2086,7 @@ Example: https://server.my:8787</source>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation>%1 сделал комнату публичной.</translation>
     </message>
@@ -1971,12 +2126,12 @@ Example: https://server.my:8787</source>
         <translation>%1 сделал историю сообщений видимо для участников с этого момента.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation>%1 сделал историю сообщений видимой для участников, с момента их приглашения.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation>%1 сделал историю сообщений видимой для участников, с момента того, как они присоединились к комнате.</translation>
     </message>
@@ -1986,12 +2141,12 @@ Example: https://server.my:8787</source>
         <translation>%1 поменял разрешения для комнаты.</translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation>%1 был приглашен.</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation>%1 поменял свой аватар.</translation>
     </message>
@@ -2006,12 +2161,12 @@ Example: https://server.my:8787</source>
         <translation>%1 присоединился.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 отклонил приглашение.</translation>
     </message>
@@ -2041,27 +2196,27 @@ Example: https://server.my:8787</source>
         <translation>%1 был заблокирован.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation>%1 отредактировал его &quot;стук&quot;.</translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation>Вы присоединились к этой комнате.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2098,7 +2253,12 @@ Example: https://server.my:8787</source>
         <translation>Комната не выбрана</translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation type="unfinished">%1 участник(ов)</translation>
     </message>
@@ -2124,27 +2284,19 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation>Не найдено личного чата с этим пользователем. Создайте зашифрованный личный чат с этим пользователем и попытайтесь еще раз.</translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation>Вернуться к списку комнат</translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation>Комнаты не выбраны</translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2155,7 +2307,7 @@ Example: https://server.my:8787</source>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -2203,9 +2355,34 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation>Глобальный Пользовательский Профиль</translation>
     </message>
@@ -2215,7 +2392,7 @@ Example: https://server.my:8787</source>
         <translation>Поользовательский Профиль в Комнате</translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2225,7 +2402,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2235,7 +2412,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2245,18 +2422,18 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation>Верифицировать</translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2271,12 +2448,42 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation>Отменить Верификацию</translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation>Выберите аватар</translation>
     </message>
@@ -2299,8 +2506,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation>По умолчанию</translation>
     </message>
@@ -2308,7 +2515,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>Сворачивать в системную панель</translation>
     </message>
@@ -2318,22 +2525,22 @@ Example: https://server.my:8787</source>
         <translation>Запускать в системной панели</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>Боковая панель групп</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation>Округлый Аватар</translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation>профиль: %1</translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation>По умолчанию</translation>
     </message>
@@ -2358,7 +2565,7 @@ Example: https://server.my:8787</source>
         <translation>СКАЧАТЬ</translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation>Держать приложение запущенным в фоне, после закрытия окна.</translation>
     </message>
@@ -2374,6 +2581,16 @@ OFF - square, ON - Circle.</source>
         <translation>Поменять отображение пользовательского аватара в чатах. ВЫКЛ - квадратный, ВКЛ - округлый.</translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation>Отображать колонку содержащую группы и тэги рядом со списком комнаты.</translation>
@@ -2401,7 +2618,7 @@ be blurred.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2458,7 +2675,7 @@ If this is on, rooms which have active notifications (the small circle with a nu
 Если это включено, комнаты в которых включены уведомления (маленькие кружки с числами) буду отсортированы на верху. Комнаты, которые вы заглушили, будут отсортированы по времени, пока вы не сделаете их важнее чем другие комнаты.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>Просмотр получателей</translation>
     </message>
@@ -2470,7 +2687,7 @@ Status is displayed next to timestamps.</source>
 Стату отображается за временем сообщения.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation>Посылать сообщение в формате Markdown</translation>
     </message>
@@ -2559,7 +2776,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2569,7 +2786,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation>Закешировано</translation>
     </message>
@@ -2579,7 +2796,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>НЕ ЗАКЕШИРОВАНО</translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation>Масштаб</translation>
     </message>
@@ -2654,7 +2871,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Отпечаток устройства</translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation>Ключи сеанса</translation>
     </message>
@@ -2674,17 +2891,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>ШИФРОВАНИЕ</translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>ГЛАВНОЕ</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation>ИНТЕРФЕЙС</translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2724,7 +2941,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2754,14 +2971,14 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Все файлы (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation>Открыть файл сеансов</translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2769,20 +2986,20 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Ошибка</translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translatorcomment>Или введите пароль?</translatorcomment>
         <translation>Пароль файла</translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation>Введите парольную фразу для расшифрования файла:</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation>Пароль не может быть пустым</translation>
     </message>
@@ -2798,6 +3015,14 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished">Не найдено личного чата с этим пользователем. Создайте зашифрованный личный чат с этим пользователем и попытайтесь еще раз.</translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2851,7 +3076,7 @@ This usually causes the application icon in the task bar to animate in some fash
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation>Вчера</translation>
     </message>
@@ -2923,37 +3148,6 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation>Присоединиться</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>Отмена</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>Идентификатор или псевдоним комнаты</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation>Отмена</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>Вы действительно желаете выйти?</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3019,47 +3213,47 @@ Media size: %2
         <translation>%1 отправил аудио запись</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation>Вы отправили картинку</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation>%1 отправил картинку</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation>Вы отправили файл</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation>%1 отправил файл</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation>Вы отправили видео</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation>%1 отправил видео</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation>Вы отправили стикер</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation>%1 отправил стикер</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation>Вы отправили оповещение</translation>
     </message>
@@ -3074,7 +3268,7 @@ Media size: %2
         <translation>Вы: %1</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation>%1: %2</translation>
     </message>
@@ -3094,27 +3288,27 @@ Media size: %2
         <translation>Вы начали звонок</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation>%1 начал звонок</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation>Вы ответили на звонок</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation>%1 ответил на звонок</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation>Вы закончили разговор</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation>%1 Закончил разговор</translation>
     </message>
@@ -3122,7 +3316,7 @@ Media size: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation>Неизвестный Тип Сообщения</translation>
     </message>
diff --git a/resources/langs/nheko_si.ts b/resources/langs/nheko_si.ts
index 645bfede..579ca1cf 100644
--- a/resources/langs/nheko_si.ts
+++ b/resources/langs/nheko_si.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -151,23 +151,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -182,7 +182,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -197,7 +197,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -217,7 +217,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -259,23 +259,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation type="unfinished"></translation>
     </message>
@@ -285,17 +285,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -364,12 +364,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation type="unfinished"></translation>
     </message>
@@ -612,7 +621,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation type="unfinished"></translation>
     </message>
@@ -622,7 +631,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation type="unfinished"></translation>
     </message>
@@ -697,7 +706,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation type="unfinished"></translation>
     </message>
@@ -712,7 +721,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation type="unfinished"></translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation type="unfinished"></translation>
     </message>
@@ -745,7 +754,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -846,25 +881,25 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -874,27 +909,45 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+174"/>
@@ -1019,7 +1072,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1039,7 +1092,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation type="unfinished"></translation>
@@ -1129,7 +1182,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1178,7 +1236,7 @@ Example: https://server.my:8787</source>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
+        <source>You are about to notify the whole room</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1186,30 +1244,18 @@ Example: https://server.my:8787</source>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1239,7 +1285,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1270,7 +1316,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1288,7 +1334,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1296,7 +1342,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1304,18 +1350,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <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="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1345,37 +1391,22 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1385,7 +1416,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1416,20 +1447,25 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1447,16 +1483,6 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation type="unfinished"></translation>
@@ -1487,7 +1513,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1512,7 +1538,30 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1540,12 +1589,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation type="unfinished">
@@ -1582,12 +1631,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1693,12 +1742,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1718,8 +1767,8 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1727,22 +1776,50 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1799,20 +1876,98 @@ Example: https://server.my:8787</source>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
@@ -1828,7 +1983,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1885,18 +2040,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1916,7 +2071,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation type="unfinished">
@@ -1925,7 +2080,7 @@ Example: https://server.my:8787</source>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1965,12 +2120,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1980,12 +2135,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2000,12 +2155,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2035,27 +2190,27 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2092,7 +2247,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2118,27 +2278,19 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2149,7 +2301,7 @@ Example: https://server.my:8787</source>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -2197,9 +2349,34 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2209,7 +2386,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2219,7 +2396,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2229,7 +2406,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2239,18 +2416,18 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2265,12 +2442,42 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2293,8 +2500,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2302,7 +2509,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2312,22 +2519,22 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2352,7 +2559,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2368,6 +2575,16 @@ OFF - square, ON - Circle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation type="unfinished"></translation>
@@ -2395,7 +2612,7 @@ be blurred.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2450,7 +2667,7 @@ If this is on, rooms which have active notifications (the small circle with a nu
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2461,7 +2678,7 @@ Status is displayed next to timestamps.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2548,7 +2765,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2558,7 +2775,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2568,7 +2785,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2643,7 +2860,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2663,17 +2880,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2713,7 +2930,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2743,14 +2960,14 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2758,19 +2975,19 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2786,6 +3003,14 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2839,7 +3064,7 @@ This usually causes the application icon in the task bar to animate in some fash
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2911,37 +3136,6 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3005,47 +3199,47 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3060,7 +3254,7 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3080,27 +3274,27 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3108,7 +3302,7 @@ Media size: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_sv.ts b/resources/langs/nheko_sv.ts
index 80863b80..e19136db 100644
--- a/resources/langs/nheko_sv.ts
+++ b/resources/langs/nheko_sv.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation>Ringer upp...</translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation>Videosamtal</translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation>Videosamtal</translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>Kunde inte bjuda in användare: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>Bjöd in användare: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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>Kunde inte migrera cachen till den nuvarande versionen. Detta kan bero på flera anledningar, vänligen rapportera problemet och prova en äldre version under tiden. Du kan också försöka att manuellt radera cachen.</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -151,23 +151,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>Rum %1 skapat.</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation>Bekräfta inbjudan</translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Är du säker på att du vill bjuda in %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation>Kunde inte bjuda in %1 till %2: %3</translation>
     </message>
@@ -182,7 +182,7 @@
         <translation>Är du säker på att du vill sparka ut %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>Sparkade ut användare: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation>Är du säker på att du vill bannlysa %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation>Kunde inte bannlysa %1 i %2: %3</translation>
     </message>
@@ -217,7 +217,7 @@
         <translation>Är du säker på att du vill häva bannlysningen av %1 (%2)?</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation>Kunde inte häva bannlysningen av %1 i %2: %3</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Hävde bannlysningen av användare: %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation>Cache-migration misslyckades!</translation>
     </message>
@@ -259,23 +259,23 @@
         <translation>Kunde inte återställa sparad data. Vänligen logga in på nytt.</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>Kunde inte sätta upp krypteringsnycklar. Svar från servern: %1 %2. Vänligen försök igen senare.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>Vänligen försök logga in på nytt: %1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>Kunde inte gå med i rum: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>Du gick med i rummet</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation>Kunde inte ta bort inbjudan: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>Kunde inte skapa rum: %1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>Kunde inte lämna rum: %1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation>Dekryptera hemliga nycklar</translation>
     </message>
@@ -364,12 +364,12 @@
         <translation>Ange din återställningsnyckel eller lösenfras för att dekryptera dina hemliga nycklar:</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation>Ange din återställningsnyckel eller lösenfras vid namn %1 för att dekryptera dina hemliga nycklar:</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation>Dekryptering misslyckades</translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation>Enhetsverifikation tog för lång tid.</translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation>Motparten avbröt verifikationen.</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation>Stäng</translation>
     </message>
@@ -612,7 +621,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation type="unfinished"></translation>
     </message>
@@ -622,7 +631,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation type="unfinished"></translation>
     </message>
@@ -697,7 +706,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation type="unfinished"></translation>
     </message>
@@ -712,7 +721,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation type="unfinished"></translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation>Välj en fil</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation>Alla Filer (*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation>Kunde inte ladda upp media. Vänligen försök igen.</translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished">Rum-ID eller alias</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">Lämna rum</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished">Är du säker på att du vill lämna?</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -850,25 +885,25 @@ Exempel: https://server.my:8787</translation>
         <translation>INLOGGNING</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation>Autouppslag misslyckades. Mottog felkonstruerat svar.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation>Autouppslag misslyckades. Okänt fel uppstod vid begäran av .well-known.</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>Kunde inte hitta de nödvändiga ändpunkterna. Möjligtvis inte en Matrix-server.</translation>
     </message>
@@ -878,27 +913,45 @@ Exempel: https://server.my:8787</translation>
         <translation>Mottog felkonstruerat svar. Se till att hemserver-domänen är giltig.</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>Ett okänt fel uppstod. Se till att hemserver-domänen är giltig.</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation>SSO INLOGGNING</translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>Tomt lösenord</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation>SSO-inloggning misslyckades</translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+192"/>
@@ -1023,7 +1076,7 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1043,7 +1096,7 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished">Alternativ</translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation type="unfinished"></translation>
@@ -1133,7 +1186,12 @@ Exempel: https://server.my:8787</translation>
         <translation>Mottog Verifikationsförfrågan</translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation>Du kan verifiera dina enheter för att låta andra användare se vilka av dem som faktiskt tillhör dig. Detta gör även att nyckelbackup fungerar automatiskt. Verifiera %1 nu?</translation>
     </message>
@@ -1182,7 +1240,7 @@ Exempel: https://server.my:8787</translation>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
+        <source>You are about to notify the whole room</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1190,30 +1248,18 @@ Exempel: https://server.my:8787</translation>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation type="unfinished">%1 skickade ett krypterat meddelande</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation type="unfinished">%1: %2</translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1243,7 +1289,7 @@ Exempel: https://server.my:8787</translation>
         <translation>Ingen mikrofon kunde hittas.</translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation>Röst</translation>
     </message>
@@ -1274,7 +1320,7 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation>Skapa en unik profil, vilket tillåter dig att logga in på flera konton samtidigt och starta flera instanser av Nheko.</translation>
     </message>
@@ -1292,7 +1338,7 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation type="unfinished">Läskvitton</translation>
     </message>
@@ -1300,7 +1346,7 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1308,18 +1354,18 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>Användarnamn</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <source>The username must not be empty, and must contain only the characters a-z, 0-9, ., _, =, -, and /.</source>
         <translation>Användarnamnet kan inte vara tomt, och måste enbart innehålla tecknen a-z, 0-9, ., _, =, -, och /.</translation>
     </message>
     <message>
-        <location line="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>Lösenord</translation>
     </message>
@@ -1349,37 +1395,22 @@ Exempel: https://server.my:8787</translation>
         <translation>REGISTRERA</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation>Inga stödda registreringsflöden!</translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished">Autouppslag misslyckades. Mottog felkonstruerat svar.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished">Autouppslag misslyckades. Okänt fel uppstod vid begäran av .well-known.</translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished">Kunde inte hitta de nödvändiga ändpunkterna. Möjligtvis inte en Matrix-server.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished">Mottog felkonstruerat svar. Se till att hemserver-domänen är giltig.</translation>
     </message>
@@ -1389,7 +1420,7 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished">Ett okänt fel uppstod. Se till att hemserver-domänen är giltig.</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>Lösenordet är inte långt nog (minst 8 tecken)</translation>
     </message>
@@ -1420,20 +1451,25 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation>ingen version lagrad</translation>
     </message>
@@ -1451,16 +1487,6 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation type="unfinished">Lämna rum</translation>
@@ -1491,7 +1517,7 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1516,7 +1542,30 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished">Logga ut</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished">Stäng</translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation type="unfinished">Starta en ny chatt</translation>
     </message>
@@ -1544,12 +1593,12 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation type="unfinished">
@@ -1586,12 +1635,12 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1697,12 +1746,12 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished">Kunde inte aktivera kryptering: %1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation type="unfinished">Välj en avatar</translation>
     </message>
@@ -1722,8 +1771,8 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished">Kunde inte läsa filen: %1</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation type="unfinished">Kunde inte ladda upp bilden: %s</translation>
     </message>
@@ -1731,22 +1780,50 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1803,20 +1880,98 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
@@ -1832,7 +1987,7 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1889,18 +2044,18 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation>Kunde inte maskera meddelande: %1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation>Kunde inte kryptera event, sändning avbruten!</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation>Spara bild</translation>
     </message>
@@ -1920,7 +2075,7 @@ Exempel: https://server.my:8787</translation>
         <translation>Spara fil</translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation>
@@ -1929,7 +2084,7 @@ Exempel: https://server.my:8787</translation>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation>%1 öppnade rummet till allmänheten.</translation>
     </message>
@@ -1969,12 +2124,12 @@ Exempel: https://server.my:8787</translation>
         <translation>%1 gjorde rummets historik läslig för medlemmar från och med nu.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation>%1 gjorde rummets historik läslig för medlemmar sedan de blev inbjudna.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation>%1 gjorde rummets historik läslig för medlemmar sedan de gick med i rummet.</translation>
     </message>
@@ -1984,12 +2139,12 @@ Exempel: https://server.my:8787</translation>
         <translation>%1 har ändrat rummets behörigheter.</translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation>%1 blev inbjuden.</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation>%1 ändrade sin avatar.</translation>
     </message>
@@ -2004,12 +2159,12 @@ Exempel: https://server.my:8787</translation>
         <translation>%1 gick med.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 avvisade sin inbjudan.</translation>
     </message>
@@ -2039,27 +2194,27 @@ Exempel: https://server.my:8787</translation>
         <translation>%1 blev bannlyst.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation>%1 maskerade sin knackning.</translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation>Du gick med i detta rum.</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2096,7 +2251,12 @@ Exempel: https://server.my:8787</translation>
         <translation>Inget rum öppet</translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2122,27 +2282,19 @@ Exempel: https://server.my:8787</translation>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation>Ingen krypterad privat chatt med denna användare kunde hittas. Skapa en krypterad privat chatt med användaren och försök igen.</translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation>Tillbaka till rumlista</translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation>Inget rum markerat</translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2153,7 +2305,7 @@ Exempel: https://server.my:8787</translation>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -2201,9 +2353,34 @@ Exempel: https://server.my:8787</translation>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2213,7 +2390,7 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2223,7 +2400,7 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2233,7 +2410,7 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2243,18 +2420,18 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation>Bekräfta</translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2269,12 +2446,42 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation>Välj en avatar</translation>
     </message>
@@ -2297,8 +2504,8 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2306,7 +2513,7 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>Minimera till systemtråg</translation>
     </message>
@@ -2316,22 +2523,22 @@ Exempel: https://server.my:8787</translation>
         <translation>Starta i systemtråg</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>Gruppens sidofält</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation>Cirkulära avatarer</translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation>profil: %1</translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2356,7 +2563,7 @@ Exempel: https://server.my:8787</translation>
         <translation>LADDA NED</translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation>Håll applikationen igång i bakgrunden efter att ha stängt klienten.</translation>
     </message>
@@ -2373,6 +2580,16 @@ OFF - square, ON - Circle.</source>
 AV - Kvadrat, PÅ - Cirkel.</translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation>Visa en kolumn innehållande grupper och taggar bredvid listan över rum.</translation>
@@ -2401,7 +2618,7 @@ be blurred.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2459,7 +2676,7 @@ Om denna inställning är av kommer listan över rum endast sorteras efter när
 Om denna inställning är på kommer rum med aktiva notifikationer (den lilla cirkeln med ett nummer i) sorteras högst upp. Rum som du stängt av notifikationer för kommer fortfarande sorteras efter när det sista meddelandet skickades, eftersom du inte verkar tycka att de är lika viktiga som andra rum.</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>Läskvitton</translation>
     </message>
@@ -2471,7 +2688,7 @@ Status is displayed next to timestamps.</source>
 Status visas bredvid tidsstämpel.</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation>Skicka meddelanden som Markdown</translation>
     </message>
@@ -2560,7 +2777,7 @@ Detta gör vanligtvis att ikonen i aktivitetsfältet animeras på något sätt.<
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2570,7 +2787,7 @@ Detta gör vanligtvis att ikonen i aktivitetsfältet animeras på något sätt.<
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation>SPARAD</translation>
     </message>
@@ -2580,7 +2797,7 @@ Detta gör vanligtvis att ikonen i aktivitetsfältet animeras på något sätt.<
         <translation>EJ SPARAD</translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation>Storleksfaktor</translation>
     </message>
@@ -2655,7 +2872,7 @@ Detta gör vanligtvis att ikonen i aktivitetsfältet animeras på något sätt.<
         <translation>Enhetsfingeravtryck</translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation>Sessionsnycklar</translation>
     </message>
@@ -2675,17 +2892,17 @@ Detta gör vanligtvis att ikonen i aktivitetsfältet animeras på något sätt.<
         <translation>KRYPTERING</translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>ALLMÄNT</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation>GRÄNSSNITT</translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2725,7 +2942,7 @@ Detta gör vanligtvis att ikonen i aktivitetsfältet animeras på något sätt.<
         <translation>Nyckeln för att verifiera andra användare. Om den är sparad lokalt, kommer alla enheter tillhörande en användare verifieras när användaren verifieras.</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation>Självsigneringsnyckel</translation>
     </message>
@@ -2755,14 +2972,14 @@ Detta gör vanligtvis att ikonen i aktivitetsfältet animeras på något sätt.<
         <translation>Alla Filer (*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation>Öppna sessionsfil</translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2770,19 +2987,19 @@ Detta gör vanligtvis att ikonen i aktivitetsfältet animeras på något sätt.<
         <translation>Fel</translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation>Fillösenord</translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation>Ange lösenfrasen för att dekryptera filen:</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation>Lösenordet kan inte vara tomt</translation>
     </message>
@@ -2798,6 +3015,14 @@ Detta gör vanligtvis att ikonen i aktivitetsfältet animeras på något sätt.<
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished">Ingen krypterad privat chatt med denna användare kunde hittas. Skapa en krypterad privat chatt med användaren och försök igen.</translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2851,7 +3076,7 @@ Detta gör vanligtvis att ikonen i aktivitetsfältet animeras på något sätt.<
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation>Igår</translation>
     </message>
@@ -2923,37 +3148,6 @@ Detta gör vanligtvis att ikonen i aktivitetsfältet animeras på något sätt.<
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation>Gå med</translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>Avbryt</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>Rum-ID eller alias</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation>Avbryt</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>Är du säker på att du vill lämna?</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3019,47 +3213,47 @@ Mediastorlek: %2
         <translation>%1 skickade ett ljudklipp</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation>Du skickade en bild</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation>%1 skickade en bild</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation>Du skickade en fil</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation>%1 skickade en fil</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation>Du skickade en video</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation>%1 skickade en video</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation>Du skickade en sticker</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation>%1 skickade en sticker</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation>Du skickade en notis</translation>
     </message>
@@ -3074,7 +3268,7 @@ Mediastorlek: %2
         <translation>Du: %1</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation>%1: %2</translation>
     </message>
@@ -3094,27 +3288,27 @@ Mediastorlek: %2
         <translation>Du ringde upp</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation>%1 ringde upp</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation>Du besvarade ett samtal</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation>%1 besvarade ett samtal</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation>Du lade på</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation>%1 lade på</translation>
     </message>
@@ -3122,7 +3316,7 @@ Mediastorlek: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation>Okänd meddelandetyp</translation>
     </message>
diff --git a/resources/langs/nheko_zh_CN.ts b/resources/langs/nheko_zh_CN.ts
index 167c4a06..36cfb0a0 100644
--- a/resources/langs/nheko_zh_CN.ts
+++ b/resources/langs/nheko_zh_CN.ts
@@ -4,7 +4,7 @@
 <context>
     <name>ActiveCallBar</name>
     <message>
-        <location filename="../qml/voip/ActiveCallBar.qml" line="+106"/>
+        <location filename="../qml/voip/ActiveCallBar.qml" line="+107"/>
         <source>Calling...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -56,7 +56,7 @@
 <context>
     <name>CallInvite</name>
     <message>
-        <location filename="../qml/voip/CallInvite.qml" line="+71"/>
+        <location filename="../qml/voip/CallInvite.qml" line="+72"/>
         <source>Video Call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -74,7 +74,7 @@
 <context>
     <name>CallInviteBar</name>
     <message>
-        <location filename="../qml/voip/CallInviteBar.qml" line="+64"/>
+        <location filename="../qml/voip/CallInviteBar.qml" line="+65"/>
         <source>Video Call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -117,7 +117,7 @@
 <context>
     <name>CallManager</name>
     <message>
-        <location filename="../../src/CallManager.cpp" line="+521"/>
+        <location filename="../../src/voip/CallManager.cpp" line="+513"/>
         <source>Entire screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -125,23 +125,23 @@
 <context>
     <name>ChatPage</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+128"/>
+        <location filename="../../src/ChatPage.cpp" line="+126"/>
         <source>Failed to invite user: %1</source>
         <translation>邀请用户失败: %1</translation>
     </message>
     <message>
         <location line="+4"/>
-        <location line="+683"/>
+        <location line="+662"/>
         <source>Invited user: %1</source>
         <translation>邀请已发送: %1</translation>
     </message>
     <message>
-        <location line="-461"/>
+        <location line="-448"/>
         <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>无法迁移缓存到目前版本,可能有多种原因引发此类问题。您可以新建一个议题并继续使用之前版本,或者您可以尝试手动删除缓存。</translation>
     </message>
     <message>
-        <location line="+364"/>
+        <location line="+355"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -151,23 +151,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+44"/>
+        <location line="+42"/>
         <source>Room %1 created.</source>
         <translation>房间“%1”已创建</translation>
     </message>
     <message>
-        <location line="+35"/>
-        <location line="+403"/>
+        <location line="+34"/>
+        <location line="+445"/>
         <source>Confirm invite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-402"/>
+        <location line="-444"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to invite %1 to %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -182,7 +182,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
+        <location line="+15"/>
         <source>Kicked user: %1</source>
         <translation>踢出用户: %1</translation>
     </message>
@@ -197,7 +197,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to ban %1 in %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -217,7 +217,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+10"/>
         <source>Failed to unban %1 in %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>解禁用户: %1</translation>
     </message>
     <message>
-        <location line="+306"/>
+        <location line="+352"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-849"/>
+        <location line="-879"/>
         <source>Cache migration failed!</source>
         <translation>缓存迁移失败!</translation>
     </message>
@@ -259,23 +259,23 @@
         <translation>恢复保存的数据失败。请重新登录。</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+93"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>设置密钥失败。服务器返回信息: %1 %2。请稍后再试。</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+117"/>
+        <location line="+32"/>
+        <location line="+115"/>
         <source>Please try to login again: %1</source>
         <translation>请尝试再次登录:%1</translation>
     </message>
     <message>
-        <location line="+51"/>
+        <location line="+49"/>
         <source>Failed to join room: %1</source>
         <translation>无法加入房间: %1</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You joined the room</source>
         <translation>您已加入房间</translation>
     </message>
@@ -285,17 +285,17 @@
         <translation>无法移除邀请: %1</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+20"/>
         <source>Room creation failed: %1</source>
         <translation>创建聊天室失败:%1</translation>
     </message>
     <message>
-        <location line="+19"/>
+        <location line="+18"/>
         <source>Failed to leave room: %1</source>
         <translation>离开聊天室失败:%1</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+58"/>
         <source>Failed to kick %1 from %2: %3</source>
         <translation type="unfinished"></translation>
     </message>
@@ -354,7 +354,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+299"/>
+        <location filename="../../src/ChatPage.cpp" line="+288"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -364,12 +364,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Enter your recovery key or passphrase called %1 to decrypt your secrets:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>Decryption failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -581,17 +581,26 @@
     </message>
     <message>
         <location line="+2"/>
-        <location line="+4"/>
         <source>Device verification timed out.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-2"/>
+        <location line="+2"/>
         <source>Other party canceled the verification.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+2"/>
+        <source>Verification messages received out of order!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Unknown verification error.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Close</source>
         <translation type="unfinished"></translation>
     </message>
@@ -612,7 +621,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+62"/>
+        <location line="+63"/>
         <source>Add images</source>
         <translation type="unfinished"></translation>
     </message>
@@ -622,7 +631,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>State key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -638,13 +647,13 @@
     </message>
     <message>
         <location line="+10"/>
-        <location line="+65"/>
+        <location line="+66"/>
         <source>Use as Emoji</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-55"/>
-        <location line="+65"/>
+        <location line="-56"/>
+        <location line="+66"/>
         <source>Use as Sticker</source>
         <translation type="unfinished"></translation>
     </message>
@@ -697,7 +706,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Private pack</source>
         <translation type="unfinished"></translation>
     </message>
@@ -712,7 +721,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+66"/>
         <source>Enable globally</source>
         <translation type="unfinished"></translation>
     </message>
@@ -735,7 +744,7 @@
 <context>
     <name>InputBar</name>
     <message>
-        <location filename="../../src/timeline/InputBar.cpp" line="+267"/>
+        <location filename="../../src/timeline/InputBar.cpp" line="+268"/>
         <source>Select a file</source>
         <translation type="unfinished">选择一个文件</translation>
     </message>
@@ -745,7 +754,7 @@
         <translation type="unfinished">所有文件(*)</translation>
     </message>
     <message>
-        <location line="+449"/>
+        <location line="+474"/>
         <source>Failed to upload media. Please try again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -753,7 +762,7 @@
 <context>
     <name>InviteDialog</name>
     <message>
-        <location filename="../qml/InviteDialog.qml" line="+32"/>
+        <location filename="../qml/dialogs/InviteDialog.qml" line="+33"/>
         <source>Invite users to %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -785,6 +794,32 @@
     </message>
 </context>
 <context>
+    <name>JoinRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/JoinRoomDialog.qml" line="+14"/>
+        <source>Join room</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Room ID or alias</source>
+        <translation type="unfinished">聊天室 ID 或别名</translation>
+    </message>
+</context>
+<context>
+    <name>LeaveRoomDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LeaveRoomDialog.qml" line="+15"/>
+        <source>Leave room</source>
+        <translation type="unfinished">离开聊天室</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Are you sure you want to leave?</source>
+        <translation type="unfinished">你确定要离开吗?</translation>
+    </message>
+</context>
+<context>
     <name>LoginPage</name>
     <message>
         <location filename="../../src/LoginPage.cpp" line="+81"/>
@@ -846,25 +881,25 @@ Example: https://server.my:8787</source>
         <translation>登录</translation>
     </message>
     <message>
-        <location line="+84"/>
+        <location line="+83"/>
         <location line="+11"/>
-        <location line="+157"/>
+        <location line="+151"/>
         <location line="+11"/>
         <source>You have entered an invalid Matrix ID  e.g @joe:matrix.org</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-131"/>
+        <location line="-126"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+22"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation>没找到要求的终端。可能不是一个 Matrix 服务器。</translation>
     </message>
@@ -874,27 +909,45 @@ Example: https://server.my:8787</source>
         <translation>收到形式错误的响应。请确认服务器域名合法。</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>An unknown error occured. Make sure the homeserver domain is valid.</source>
         <translation>发生了一个未知错误。请确认服务器域名合法。</translation>
     </message>
     <message>
-        <location line="-168"/>
+        <location line="-164"/>
         <source>SSO LOGIN</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+264"/>
+        <location line="+257"/>
         <source>Empty password</source>
         <translation>空密码</translation>
     </message>
     <message>
-        <location line="+57"/>
+        <location line="+55"/>
         <source>SSO login failed</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>LogoutDialog</name>
+    <message>
+        <location filename="../qml/dialogs/LogoutDialog.qml" line="+13"/>
+        <source>Log out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>A call is in progress. Log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+0"/>
+        <source>Are you sure you want to log out?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>MessageDelegate</name>
     <message>
         <location filename="../qml/delegates/MessageDelegate.qml" line="+174"/>
@@ -1019,7 +1072,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageView</name>
     <message>
-        <location filename="../qml/MessageView.qml" line="+86"/>
+        <location filename="../qml/MessageView.qml" line="+88"/>
         <source>Edit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1039,7 +1092,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+421"/>
+        <location line="+420"/>
         <location line="+118"/>
         <source>&amp;Copy</source>
         <translation type="unfinished"></translation>
@@ -1129,7 +1182,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+15"/>
+        <location line="+16"/>
+        <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify an unverified device now? (Please make sure you have one of those devices available.)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>To allow other users to see, which of your devices actually belong to you, you can verify them. This also allows key backup to work automatically. Verify %1 now?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1178,7 +1236,7 @@ Example: https://server.my:8787</source>
     <name>NotificationWarning</name>
     <message>
         <location filename="../qml/NotificationWarning.qml" line="+32"/>
-        <source>You will be pinging the whole room</source>
+        <source>You are about to notify the whole room</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1186,30 +1244,18 @@ Example: https://server.my:8787</source>
     <name>NotificationsManager</name>
     <message>
         <location filename="../../src/notifications/Manager.cpp" line="+22"/>
-        <location filename="../../src/notifications/ManagerMac.cpp" line="+44"/>
-        <location filename="../../src/notifications/ManagerWin.cpp" line="+78"/>
+        <location filename="../../src/notifications/ManagerMac.cpp" line="+45"/>
+        <location filename="../../src/notifications/ManagerWin.cpp" line="+74"/>
         <source>%1 sent an encrypted message</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>* %1 %2</source>
-        <comment>Format an emote message in a notification, %1 is the sender, %2 the message</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>%1 replied: %2</source>
         <comment>Format a reply in a notification. %1 is the sender, %2 the message</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <source>%1: %2</source>
-        <comment>Format a normal message in a notification. %1 is the sender, %2 the message</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../../src/notifications/ManagerMac.cpp" line="-1"/>
         <location filename="../../src/notifications/ManagerWin.cpp" line="-1"/>
         <source>%1 replied with an encrypted message</source>
@@ -1239,7 +1285,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+22"/>
+        <location line="+23"/>
         <source>Voice</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1270,7 +1316,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>QCoreApplication</name>
     <message>
-        <location filename="../../src/main.cpp" line="+199"/>
+        <location filename="../../src/main.cpp" line="+191"/>
         <source>Create a unique profile, which allows you to log into several accounts at the same time and start multiple instances of nheko.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1288,7 +1334,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceipts</name>
     <message>
-        <location filename="../qml/ReadReceipts.qml" line="+40"/>
+        <location filename="../qml/dialogs/ReadReceipts.qml" line="+41"/>
         <source>Read receipts</source>
         <translation type="unfinished">阅读回执</translation>
     </message>
@@ -1296,7 +1342,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>ReadReceiptsModel</name>
     <message>
-        <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
+        <location filename="../../src/ReadReceiptsModel.cpp" line="+110"/>
         <source>Yesterday, %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1304,18 +1350,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>RegisterPage</name>
     <message>
-        <location filename="../../src/RegisterPage.cpp" line="+80"/>
+        <location filename="../../src/RegisterPage.cpp" line="+81"/>
         <source>Username</source>
         <translation>用户名</translation>
     </message>
     <message>
         <location line="+2"/>
-        <location line="+150"/>
+        <location line="+147"/>
         <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="-146"/>
+        <location line="-143"/>
         <source>Password</source>
         <translation>密码</translation>
     </message>
@@ -1345,37 +1391,22 @@ Example: https://server.my:8787</source>
         <translation>注册</translation>
     </message>
     <message>
-        <location line="+322"/>
-        <source>No supported registration flows!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+32"/>
-        <source>Registration token</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Please enter a valid registration token.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-175"/>
+        <location line="+169"/>
         <source>Autodiscovery failed. Received malformed response.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+5"/>
         <source>Autodiscovery failed. Unknown error when requesting .well-known.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+26"/>
+        <location line="+24"/>
         <source>The required endpoints were not found. Possibly not a Matrix server.</source>
         <translation type="unfinished">没找到要求的终端。可能不是一个 Matrix 服务器。</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Received malformed response. Make sure the homeserver domain is valid.</source>
         <translation type="unfinished">收到形式错误的响应。请确认服务器域名合法。</translation>
     </message>
@@ -1385,7 +1416,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished">发生了一个未知错误。请确认服务器域名合法。</translation>
     </message>
     <message>
-        <location line="-119"/>
+        <location line="-107"/>
         <source>Password is not long enough (min 8 chars)</source>
         <translation>密码不够长(至少8个字符)</translation>
     </message>
@@ -1416,20 +1447,25 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomDirectory</name>
     <message>
-        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <location filename="../qml/dialogs/RoomDirectory.qml" line="+25"/>
         <source>Explore Public Rooms</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+166"/>
+        <location line="+168"/>
         <source>Search for public rooms</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+11"/>
+        <source>Choose custom homeserver</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4542"/>
+        <location filename="../../src/Cache.cpp" line="+4491"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1447,16 +1483,6 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
-        <source>Leave Room</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Are you sure you want to leave this room?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location line="+7"/>
         <source>Leave room</source>
         <translation type="unfinished">离开聊天室</translation>
@@ -1487,7 +1513,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+280"/>
+        <location line="+278"/>
         <source>Status Message</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1512,7 +1538,30 @@ Example: https://server.my:8787</source>
         <translation type="unfinished">登出</translation>
     </message>
     <message>
-        <location line="+46"/>
+        <location line="+40"/>
+        <source>Encryption not set up</source>
+        <extracomment>Cross-signing setup has not run yet.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unverified login</source>
+        <extracomment>The user just signed in with this device and hasn&apos;t verified their master key.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Please verify your other devices</source>
+        <extracomment>There are unverified devices signed in to this account.</extracomment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+20"/>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+65"/>
         <source>Start a new chat</source>
         <translation type="unfinished">开始新的聊天</translation>
     </message>
@@ -1540,12 +1589,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomMembers</name>
     <message>
-        <location filename="../qml/RoomMembers.qml" line="+18"/>
+        <location filename="../qml/dialogs/RoomMembers.qml" line="+19"/>
         <source>Members of %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+32"/>
+        <location line="+33"/>
         <source>%n people in %1</source>
         <comment>Summary above list of members</comment>
         <translation type="unfinished">
@@ -1581,12 +1630,12 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomSettings</name>
     <message>
-        <location filename="../qml/RoomSettings.qml" line="+25"/>
+        <location filename="../qml/dialogs/RoomSettings.qml" line="+26"/>
         <source>Room Settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+80"/>
+        <location line="+81"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1692,12 +1741,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+254"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished">启用加密失败:%1</translation>
     </message>
     <message>
-        <location line="+252"/>
+        <location line="+249"/>
         <source>Select an avatar</source>
         <translation type="unfinished">选择一个头像</translation>
     </message>
@@ -1717,8 +1766,8 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+20"/>
+        <location line="+32"/>
+        <location line="+19"/>
         <source>Failed to upload image: %s</source>
         <translation type="unfinished">上传图像失败:%s</translation>
     </message>
@@ -1726,22 +1775,50 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomlistModel</name>
     <message>
-        <location filename="../../src/timeline/RoomlistModel.cpp" line="+143"/>
+        <location filename="../../src/timeline/RoomlistModel.cpp" line="+147"/>
         <source>Pending invite.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+30"/>
+        <location line="+35"/>
         <source>Previewing this room</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+38"/>
         <source>No preview available</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>Root</name>
+    <message>
+        <location filename="../qml/Root.qml" line="+255"/>
+        <source>Please enter your login password to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid email address to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter a valid phone number to continue:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Please enter the token, which has been sent to you:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Wait for the confirmation link to arrive, then continue.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ScreenShare</name>
     <message>
         <location filename="../qml/voip/ScreenShare.qml" line="+30"/>
@@ -1798,20 +1875,98 @@ Example: https://server.my:8787</source>
 <context>
     <name>SecretStorage</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="-3776"/>
+        <location filename="../../src/Cache.cpp" line="-3725"/>
         <source>Failed to connect to secret storage</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Secrets or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <source>Nheko could not connect to the secure storage to save encryption secrets to. This can have multiple reasons. Check if your D-Bus service is running and you have configured a service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If you are having trouble, feel free to open an issue here: https://github.com/Nheko-Reborn/nheko/issues</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationCheck</name>
+    <message>
+        <location filename="../qml/SelfVerificationCheck.qml" line="+39"/>
+        <source>This is your recovery key. You will need it to restore access to your encrypted messages and verification keys. Keep this safe. Don&apos;t share it with anyone and don&apos;t lose it! Do not pass go! Do not collect $200!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+33"/>
+        <source>Encryption setup successfully</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Failed to setup encryption: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Setup Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>Hello and welcome to Matrix!
+It seems like you are new. Before you can securely encrypt your messages, we need to setup a few small things. You can either press accept immediately or adjust a few basic options. We also try to explain a few of the basics. You can skip those parts, but they might prove to be helpful!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+124"/>
+        <source>Activate Encryption</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>It seems like you have encryption already configured for this account. To be able to access your encrypted messages and make this device appear as trusted, you can either verify an existing device or (if you have one) enter your recovery passphrase. Please select one of the options below.
+If you choose verify, you need to have the other device available. If you choose &quot;enter passphrase&quot;, you will need your recovery key or passphrase. If you click cancel, you can choose to verify yourself at a later point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>verify</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>enter passphrase</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SelfVerificationStatus</name>
+    <message>
+        <location filename="../../src/encryption/SelfVerificationStatus.cpp" line="+40"/>
+        <source>Failed to create keys for cross-signing!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+16"/>
+        <source>Failed to create keys for online key backup!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+29"/>
+        <source>Failed to create keys secure server side secret storage!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Encryption Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Encryption setup failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SingleImagePackModel</name>
     <message>
-        <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
+        <location filename="../../src/SingleImagePackModel.cpp" line="+255"/>
         <location line="+25"/>
         <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
@@ -1827,7 +1982,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+29"/>
         <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1884,18 +2039,18 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1120"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1104"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished">删除消息失败:%1</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+71"/>
         <location line="+5"/>
         <source>Failed to encrypt event, sending aborted!</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+169"/>
         <source>Save image</source>
         <translation type="unfinished">保存图像</translation>
     </message>
@@ -1915,7 +2070,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message numerus="yes">
-        <location line="+239"/>
+        <location line="+251"/>
         <source>%1 and %2 are typing.</source>
         <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
         <translation type="unfinished">
@@ -1923,7 +2078,7 @@ Example: https://server.my:8787</source>
         </translation>
     </message>
     <message>
-        <location line="+68"/>
+        <location line="+66"/>
         <source>%1 opened the room to the public.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1963,12 +2118,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they were invited.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 set the room history visible to members since they joined the room.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1978,12 +2133,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+78"/>
+        <location line="+76"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+18"/>
         <source>%1 changed their avatar.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1998,12 +2153,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>%1 joined via authorisation from %2&apos;s server.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+11"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2033,27 +2188,27 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+8"/>
         <source>Reason: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-20"/>
+        <location line="-19"/>
         <source>%1 redacted their knock.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-958"/>
+        <location line="-951"/>
         <source>You joined this room.</source>
         <translation type="unfinished">您已加入此房间</translation>
     </message>
     <message>
-        <location line="+918"/>
+        <location line="+912"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>%1 has changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2090,7 +2245,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+142"/>
+        <location line="+137"/>
+        <source>No preview available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2116,27 +2276,19 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
-    <name>TimelineViewManager</name>
-    <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+548"/>
-        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
     <name>TopBar</name>
     <message>
-        <location filename="../qml/TopBar.qml" line="+56"/>
+        <location filename="../qml/TopBar.qml" line="+59"/>
         <source>Back to room list</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-41"/>
+        <location line="-44"/>
         <source>No room selected</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+91"/>
+        <location line="+96"/>
         <source>This room is not encrypted!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2147,7 +2299,7 @@ Example: https://server.my:8787</source>
     </message>
     <message>
         <location line="+2"/>
-        <source>This rooms contain verified devices and devices which have never changed their master key.</source>
+        <source>This room contains verified devices and devices which have never changed their master key.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -2195,9 +2347,34 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>UIA</name>
+    <message>
+        <location filename="../../src/ui/UIA.cpp" line="+59"/>
+        <source>No available registration flows!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <location line="+24"/>
+        <location line="+17"/>
+        <source>Registration aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-27"/>
+        <source>Please enter a valid registration token.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+165"/>
+        <source>Invalid token</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>UserProfile</name>
     <message>
-        <location filename="../qml/UserProfile.qml" line="+27"/>
+        <location filename="../qml/dialogs/UserProfile.qml" line="+28"/>
         <source>Global User Profile</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2207,7 +2384,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+38"/>
+        <location line="+49"/>
         <source>Change avatar globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2217,7 +2394,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+79"/>
+        <location line="+80"/>
         <source>Change display name globally.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2227,7 +2404,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2237,18 +2414,18 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+13"/>
         <source>Open the global profile for this user.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
-        <location line="+109"/>
+        <location line="+9"/>
+        <location line="+197"/>
         <source>Verify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-72"/>
+        <location line="-160"/>
         <source>Start a private chat.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2263,12 +2440,42 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+55"/>
+        <location line="+9"/>
+        <source>Refresh device list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+54"/>
+        <source>Sign out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
+        <source>Change device name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+22"/>
+        <source>Last seen %1 from %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>Unverify</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/UserProfile.cpp" line="+307"/>
+        <location filename="../../src/ui/UserProfile.cpp" line="+152"/>
+        <source>Sign out device %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <source>You signed out this device.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+223"/>
         <source>Select an avatar</source>
         <translation type="unfinished">选择一个头像</translation>
     </message>
@@ -2291,8 +2498,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+377"/>
-        <location filename="../../src/UserSettingsPage.h" line="+207"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+374"/>
+        <location filename="../../src/UserSettingsPage.h" line="+204"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2300,7 +2507,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+557"/>
+        <location line="+567"/>
         <source>Minimize to tray</source>
         <translation>最小化至托盘</translation>
     </message>
@@ -2310,22 +2517,22 @@ Example: https://server.my:8787</source>
         <translation>在托盘启动</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+10"/>
         <source>Group&apos;s sidebar</source>
         <translation>群组侧边栏</translation>
     </message>
     <message>
-        <location line="-3"/>
+        <location line="-6"/>
         <source>Circular Avatars</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-216"/>
+        <location line="-217"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+102"/>
+        <location line="+104"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2350,7 +2557,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+27"/>
+        <location line="+26"/>
         <source>Keep the application running in the background after closing the client window.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2366,6 +2573,16 @@ OFF - square, ON - Circle.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+1"/>
+        <source>Use identicons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Display an identicon instead of a letter when a user has not set an avatar.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+3"/>
         <source>Show a column containing groups and tags next to the room list.</source>
         <translation type="unfinished"></translation>
@@ -2393,7 +2610,7 @@ be blurred.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Privacy screen timeout (in seconds [0 - 3600])</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2448,7 +2665,7 @@ If this is on, rooms which have active notifications (the small circle with a nu
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+6"/>
         <source>Read receipts</source>
         <translation>阅读回执</translation>
     </message>
@@ -2459,7 +2676,7 @@ Status is displayed next to timestamps.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+1"/>
         <source>Send messages as Markdown</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2546,7 +2763,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+178"/>
         <source>Enable online key backup</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2556,7 +2773,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+253"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2566,7 +2783,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-493"/>
+        <location line="-495"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2641,7 +2858,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>设备指纹</translation>
     </message>
     <message>
-        <location line="-167"/>
+        <location line="-166"/>
         <source>Session Keys</source>
         <translation>会话密钥</translation>
     </message>
@@ -2661,17 +2878,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>加密</translation>
     </message>
     <message>
-        <location line="-121"/>
+        <location line="-123"/>
         <source>GENERAL</source>
         <translation>通用</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+72"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+180"/>
+        <location line="+179"/>
         <source>Plays media like GIFs or WEBPs only when explicitly hovering over them.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2711,7 +2928,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>Self signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2741,14 +2958,14 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished">所有文件(*)</translation>
     </message>
     <message>
-        <location line="+261"/>
+        <location line="+265"/>
         <source>Open Sessions File</source>
         <translation>打开会话文件</translation>
     </message>
     <message>
         <location line="+4"/>
         <location line="+18"/>
-        <location line="+9"/>
+        <location line="+8"/>
         <location line="+19"/>
         <location line="+11"/>
         <location line="+18"/>
@@ -2756,19 +2973,19 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>错误</translation>
     </message>
     <message>
-        <location line="-66"/>
-        <location line="+28"/>
+        <location line="-65"/>
+        <location line="+27"/>
         <source>File Password</source>
         <translation>文件密码</translation>
     </message>
     <message>
-        <location line="-27"/>
+        <location line="-26"/>
         <source>Enter the passphrase to decrypt the file:</source>
         <translation>输入密码以解密文件:</translation>
     </message>
     <message>
         <location line="+8"/>
-        <location line="+28"/>
+        <location line="+27"/>
         <source>The password cannot be empty</source>
         <translation>密码不能为空</translation>
     </message>
@@ -2784,6 +3001,14 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
+    <name>VerificationManager</name>
+    <message>
+        <location filename="../../src/encryption/VerificationManager.cpp" line="+105"/>
+        <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>Waiting</name>
     <message>
         <location filename="../qml/device-verification/Waiting.qml" line="+12"/>
@@ -2837,7 +3062,7 @@ This usually causes the application icon in the task bar to animate in some fash
 <context>
     <name>descriptiveTime</name>
     <message>
-        <location filename="../../src/Utils.cpp" line="+185"/>
+        <location filename="../../src/Utils.cpp" line="+184"/>
         <source>Yesterday</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2909,37 +3134,6 @@ This usually causes the application icon in the task bar to animate in some fash
     </message>
 </context>
 <context>
-    <name>dialogs::JoinRoom</name>
-    <message>
-        <location filename="../../src/dialogs/JoinRoom.cpp" line="+34"/>
-        <source>Join</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>Cancel</source>
-        <translation>取消</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Room ID or alias</source>
-        <translation>聊天室 ID 或别名</translation>
-    </message>
-</context>
-<context>
-    <name>dialogs::LeaveRoom</name>
-    <message>
-        <location filename="../../src/dialogs/LeaveRoom.cpp" line="+35"/>
-        <source>Cancel</source>
-        <translation>取消</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Are you sure you want to leave?</source>
-        <translation>你确定要离开吗?</translation>
-    </message>
-</context>
-<context>
     <name>dialogs::Logout</name>
     <message>
         <location filename="../../src/dialogs/Logout.cpp" line="+35"/>
@@ -3005,47 +3199,47 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent an image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent an image</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a video</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a sticker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 sent a sticker</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You sent a notification</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3060,7 +3254,7 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1: %2</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3080,27 +3274,27 @@ Media size: %2
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 placed a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 answered a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
         <source>You ended a call</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+2"/>
         <source>%1 ended a call</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3108,7 +3302,7 @@ Media size: %2
 <context>
     <name>utils</name>
     <message>
-        <location line="+4"/>
+        <location line="+3"/>
         <source>Unknown Message Type</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/src/Cache.cpp b/src/Cache.cpp
index 5e28a0b8..58eb2630 100644
--- a/src/Cache.cpp
+++ b/src/Cache.cpp
@@ -766,11 +766,11 @@ fatalSecretError()
       QCoreApplication::translate("SecretStorage", "Failed to connect to secret storage"),
       QCoreApplication::translate(
         "SecretStorage",
-        "Nheko could not connect to the secure storage to save encryption secrets to. "
-        "This can have multiple reasons. Check if your D-Bus service is running and "
-        "you have configured a service like KWallet, Gnome Secrets or the equivalent "
-        "for your platform. If you are having trouble, feel free to open an issue "
-        "here: https://github.com/Nheko-Reborn/nheko/issues"));
+        "Nheko could not connect to the secure storage to save encryption secrets to. This can "
+        "have multiple reasons. Check if your D-Bus service is running and you have configured a "
+        "service like KWallet, Gnome Keyring, KeePassXC or the equivalent for your platform. If "
+        "you are having trouble, feel free to open an issue here: "
+        "https://github.com/Nheko-Reborn/nheko/issues"));
 
     QCoreApplication::exit(1);
     exit(1);