summary refs log tree commit diff
path: root/resources
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2021-08-17 23:51:15 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2021-08-17 23:51:15 +0200
commitc2e777f3e41cbd7e3e73502127e80dcceeeb020e (patch)
treec3c1749cae23fd07a54b36f5266c93740c11695c /resources
parentbump mtxclient (diff)
downloadnheko-c2e777f3e41cbd7e3e73502127e80dcceeeb020e.tar.xz
Update translations
Diffstat (limited to 'resources')
-rw-r--r--resources/langs/nheko_cs.ts147
-rw-r--r--resources/langs/nheko_de.ts147
-rw-r--r--resources/langs/nheko_el.ts145
-rw-r--r--resources/langs/nheko_en.ts259
-rw-r--r--resources/langs/nheko_eo.ts147
-rw-r--r--resources/langs/nheko_es.ts145
-rw-r--r--resources/langs/nheko_et.ts149
-rw-r--r--resources/langs/nheko_fi.ts147
-rw-r--r--resources/langs/nheko_fr.ts145
-rw-r--r--resources/langs/nheko_hu.ts147
-rw-r--r--resources/langs/nheko_it.ts147
-rw-r--r--resources/langs/nheko_ja.ts145
-rw-r--r--resources/langs/nheko_ml.ts147
-rw-r--r--resources/langs/nheko_nl.ts145
-rw-r--r--resources/langs/nheko_pl.ts145
-rw-r--r--resources/langs/nheko_pt_BR.ts147
-rw-r--r--resources/langs/nheko_pt_PT.ts147
-rw-r--r--resources/langs/nheko_ro.ts145
-rw-r--r--resources/langs/nheko_ru.ts149
-rw-r--r--resources/langs/nheko_si.ts145
-rw-r--r--resources/langs/nheko_sv.ts147
-rw-r--r--resources/langs/nheko_zh_CN.ts145
22 files changed, 2249 insertions, 1083 deletions
diff --git a/resources/langs/nheko_cs.ts b/resources/langs/nheko_cs.ts
index 10777538..fb380e76 100644
--- a/resources/langs/nheko_cs.ts
+++ b/resources/langs/nheko_cs.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -156,13 +156,13 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -247,7 +247,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -257,7 +257,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -288,7 +288,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -556,7 +556,7 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -885,7 +885,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+188"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+190"/>
         <source>Encryption enabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -940,7 +940,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-24"/>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-94"/>
         <source>%1 answered the call.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1382,9 +1387,22 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1392,7 +1410,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1487,7 +1505,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1578,7 +1596,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1593,7 +1611,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1639,12 +1667,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1747,22 +1775,22 @@ Example: https://server.my:8787</source>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1818,7 +1846,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1869,7 +1897,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1904,7 +1942,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1919,12 +1957,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1964,12 +2007,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1979,7 +2022,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2011,7 +2054,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2039,7 +2082,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2177,8 +2220,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2186,7 +2229,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2206,12 +2249,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2417,7 +2460,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2427,7 +2480,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2522,12 +2575,12 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2547,7 +2600,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2597,7 +2650,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_de.ts b/resources/langs/nheko_de.ts
index d37debc2..d4bd2d53 100644
--- a/resources/langs/nheko_de.ts
+++ b/resources/langs/nheko_de.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation>Eingeladener Benutzer: %1</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation>Beitritt bestätigen</translation>
     </message>
@@ -156,13 +156,13 @@
         <translation>Raum %1 erzeugt.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation>Einladung bestätigen</translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Nutzer %1 (%2) wirklich einladen?</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Verbannung aufgehoben: %1</translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <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="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation>Migration des Caches fehlgeschlagen!</translation>
     </message>
@@ -247,7 +247,7 @@
         <translation>Der Cache auf der Festplatte wurde mit einer neueren Nheko - Version angelegt. Bitte aktualisiere Nheko oder entferne den Cache.</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation>Wiederherstellung des OLM Accounts fehlgeschlagen. Bitte logge dich erneut ein.</translation>
     </message>
@@ -257,7 +257,7 @@
         <translation>Gespeicherte Nachrichten konnten nicht wiederhergestellt werden. Bitte melde Dich erneut an.</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <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>
@@ -288,7 +288,7 @@
         <translation>Raum konnte nicht erstellt werden: %1</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation>Konnte den Raum nicht verlassen: %1</translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation>Geheimnisse entschlüsseln</translation>
     </message>
@@ -556,8 +556,8 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
-        <translation>Von einem unverifizierten Gerät verschlüsselt</translation>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -889,7 +889,7 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+170"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+172"/>
         <location line="+9"/>
         <source>removed</source>
         <translation>entfernt</translation>
@@ -959,6 +959,11 @@ Beispiel: https://mein.server:8787</translation>
         <source>Negotiating call...</source>
         <translation>Wählt…</translation>
     </message>
+    <message>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MessageInput</name>
@@ -1386,9 +1391,22 @@ Beispiel: https://mein.server:8787</translation>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation>keine Version gespeichert</translation>
     </message>
@@ -1396,7 +1414,7 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation>Neuer Tag</translation>
     </message>
@@ -1491,7 +1509,7 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Raumverzeichnis</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation>Benutzereinstellungen</translation>
     </message>
@@ -1581,7 +1599,7 @@ Beispiel: https://mein.server:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation>Jeder (inkl. Gäste)</translation>
     </message>
@@ -1596,7 +1614,17 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Eingeladene Nutzer</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation>Verschlüsselung</translation>
     </message>
@@ -1642,12 +1670,12 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Raumversion</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Aktivierung der Verschlüsselung fehlgeschlagen: %1</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation>Wähle einen Avatar</translation>
     </message>
@@ -1750,22 +1778,22 @@ Beispiel: https://mein.server:8787</translation>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1821,7 +1849,7 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation>Nachricht zurückziehen fehlgeschlagen: %1</translation>
     </message>
@@ -1871,7 +1899,17 @@ Beispiel: https://mein.server:8787</translation>
         <translation>%1 hat eingestellt, dass dieser Raum eine Einladung benötigt um beizutreten.</translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation>%1 hat Gästen erlaubt den Raum zu betreten.</translation>
     </message>
@@ -1906,7 +1944,7 @@ Beispiel: https://mein.server:8787</translation>
         <translation>%1 hat die Berechtigungen dieses Raums bearbeitet.</translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation>%1 wurde eingeladen.</translation>
     </message>
@@ -1921,12 +1959,17 @@ Beispiel: https://mein.server:8787</translation>
         <translation>%1 hat etwas im Profil geändert.</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation>%1 hat den Raum betreten.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 hat die Einladung abgewiesen.</translation>
     </message>
@@ -1966,12 +2009,12 @@ Beispiel: https://mein.server:8787</translation>
         <translation>%1 hat das Anklopfen zurückgezogen.</translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation>Du bist dem Raum beigetreten.</translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <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>
@@ -1981,7 +2024,7 @@ Beispiel: https://mein.server:8787</translation>
         <translation>%1 hat den eigenen Namen geändert zu %2.</translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation>Hat das Anklopfen von %1 abgewiesen.</translation>
     </message>
@@ -2013,7 +2056,7 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Kein Raum geöffnet</translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation>%1 Teilnehmer</translation>
     </message>
@@ -2041,7 +2084,7 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2179,8 +2222,8 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation>Standard</translation>
     </message>
@@ -2188,7 +2231,7 @@ Beispiel: https://mein.server:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation>Ins Benachrichtigungsfeld minimieren</translation>
     </message>
@@ -2208,12 +2251,12 @@ Beispiel: https://mein.server:8787</translation>
         <translation>Runde Profilbilder</translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation>Profil: %1</translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation>Standard</translation>
     </message>
@@ -2429,7 +2472,17 @@ Normalerweise animiert das den Taskbaricon oder färbt das Fenster orange ein.</
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation>IM CACHE</translation>
     </message>
@@ -2439,7 +2492,7 @@ Normalerweise animiert das den Taskbaricon oder färbt das Fenster orange ein.</
         <translation>NICHT IM CACHE</translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation>Skalierungsfaktor</translation>
     </message>
@@ -2534,12 +2587,12 @@ Normalerweise animiert das den Taskbaricon oder färbt das Fenster orange ein.</
         <translation>VERSCHLÜSSELUNG</translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation>ALLGEMEINES</translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation>OBERFLÄCHE</translation>
     </message>
@@ -2559,7 +2612,7 @@ Normalerweise animiert das den Taskbaricon oder färbt das Fenster orange ein.</
         <translation>Emojischriftart</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation>Masterverifizierungsschlüssel</translation>
     </message>
@@ -2609,7 +2662,7 @@ Normalerweise animiert das den Taskbaricon oder färbt das Fenster orange ein.</
         <translation>Alle Dateien (*)</translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation>Öffne Sessions Datei</translation>
     </message>
diff --git a/resources/langs/nheko_el.ts b/resources/langs/nheko_el.ts
index 9866b563..c5bf4222 100644
--- a/resources/langs/nheko_el.ts
+++ b/resources/langs/nheko_el.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -156,13 +156,13 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -247,7 +247,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -257,7 +257,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -288,7 +288,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -556,7 +556,7 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -885,7 +885,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+170"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+172"/>
         <location line="+9"/>
         <source>removed</source>
         <translation type="unfinished"></translation>
@@ -955,6 +955,11 @@ Example: https://server.my:8787</source>
         <source>Negotiating call...</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MessageInput</name>
@@ -1382,9 +1387,22 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1392,7 +1410,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1487,7 +1505,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1577,7 +1595,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1592,7 +1610,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1638,12 +1666,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1746,22 +1774,22 @@ Example: https://server.my:8787</source>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1817,7 +1845,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1867,7 +1895,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1902,7 +1940,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1917,12 +1955,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1962,12 +2005,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1977,7 +2020,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2009,7 +2052,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2037,7 +2080,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2175,8 +2218,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2184,7 +2227,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation>Ελαχιστοποίηση</translation>
     </message>
@@ -2204,12 +2247,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2415,7 +2458,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2425,7 +2478,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2520,12 +2573,12 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation>ΓΕΝΙΚΑ</translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2545,7 +2598,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2595,7 +2648,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished">Όλα τα αρχεία (*)</translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_en.ts b/resources/langs/nheko_en.ts
index 4feabb84..86a9b36a 100644
--- a/resources/langs/nheko_en.ts
+++ b/resources/langs/nheko_en.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation>Invited user: %1</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation>Confirm join</translation>
     </message>
@@ -156,13 +156,13 @@
         <translation>Room %1 created.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation>Confirm invite</translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Do you really want to invite %1 (%2)?</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Unbanned user: %1</translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <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="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation>Cache migration failed!</translation>
     </message>
@@ -247,7 +247,7 @@
         <translation>The cache on your disk is newer than this version of Nheko supports. Please update or clear your cache.</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation>Failed to restore OLM account. Please login again.</translation>
     </message>
@@ -257,7 +257,7 @@
         <translation>Failed to restore save data. Please login again.</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <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>
@@ -288,7 +288,7 @@
         <translation>Room creation failed: %1</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation>Failed to leave room: %1</translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation>Decrypt secrets</translation>
     </message>
@@ -499,42 +499,42 @@
     <message>
         <location filename="../qml/delegates/Encrypted.qml" line="+22"/>
         <source>There is no key to unlock this message. We requested the key automatically, but you can try requesting it again if you are impatient.</source>
-        <translation type="unfinished"></translation>
+        <translation>There is no key to unlock this message. We requested the key automatically, but you can try requesting it again if you are impatient.</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>This message couldn&apos;t be decrypted, because we only have a key for newer messages. You can try requesting access to this message.</source>
-        <translation type="unfinished"></translation>
+        <translation>This message couldn&apos;t be decrypted, because we only have a key for newer messages. You can try requesting access to this message.</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>There was an internal error reading the decryption key from the database.</source>
-        <translation type="unfinished"></translation>
+        <translation>There was an internal error reading the decryption key from the database.</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>There was an error decrypting this message.</source>
-        <translation type="unfinished"></translation>
+        <translation>There was an error decrypting this message.</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>The message couldn&apos;t be parsed.</source>
-        <translation type="unfinished"></translation>
+        <translation>The message couldn&apos;t be parsed.</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>The encryption key was reused! Someone is possibly trying to insert false messages into this chat!</source>
-        <translation type="unfinished"></translation>
+        <translation>The encryption key was reused! Someone is possibly trying to insert false messages into this chat!</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Unknown decryption error</source>
-        <translation type="unfinished"></translation>
+        <translation>Unknown decryption error</translation>
     </message>
     <message>
         <location line="+10"/>
         <source>Request key</source>
-        <translation type="unfinished"></translation>
+        <translation>Request key</translation>
     </message>
 </context>
 <context>
@@ -556,8 +556,8 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
-        <translation>Encrypted by an unverified device</translation>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
+        <translation>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</translation>
     </message>
 </context>
 <context>
@@ -607,64 +607,64 @@
     <message>
         <location filename="../qml/dialogs/ImagePackEditorDialog.qml" line="+24"/>
         <source>Editing image pack</source>
-        <translation type="unfinished"></translation>
+        <translation>Editing image pack</translation>
     </message>
     <message>
         <location line="+62"/>
         <source>Add images</source>
-        <translation type="unfinished"></translation>
+        <translation>Add images</translation>
     </message>
     <message>
         <location line="+7"/>
         <source>Stickers (*.png *.webp)</source>
-        <translation type="unfinished"></translation>
+        <translation>Stickers (*.png *.webp)</translation>
     </message>
     <message>
         <location line="+60"/>
         <source>State key</source>
-        <translation type="unfinished"></translation>
+        <translation>State key</translation>
     </message>
     <message>
         <location line="+11"/>
         <source>Packname</source>
-        <translation type="unfinished"></translation>
+        <translation>Packname</translation>
     </message>
     <message>
         <location line="+10"/>
         <source>Attribution</source>
-        <translation type="unfinished"></translation>
+        <translation>Attribution</translation>
     </message>
     <message>
         <location line="+10"/>
         <location line="+65"/>
         <source>Use as Emoji</source>
-        <translation type="unfinished"></translation>
+        <translation>Use as Emoji</translation>
     </message>
     <message>
         <location line="-55"/>
         <location line="+65"/>
         <source>Use as Sticker</source>
-        <translation type="unfinished"></translation>
+        <translation>Use as Sticker</translation>
     </message>
     <message>
         <location line="-30"/>
         <source>Shortcode</source>
-        <translation type="unfinished"></translation>
+        <translation>Shortcode</translation>
     </message>
     <message>
         <location line="+10"/>
         <source>Body</source>
-        <translation type="unfinished"></translation>
+        <translation>Body</translation>
     </message>
     <message>
         <location line="+46"/>
         <source>Cancel</source>
-        <translation type="unfinished">Cancel</translation>
+        <translation>Cancel</translation>
     </message>
     <message>
         <location line="+6"/>
         <source>Save</source>
-        <translation type="unfinished"></translation>
+        <translation>Save</translation>
     </message>
 </context>
 <context>
@@ -672,52 +672,52 @@
     <message>
         <location filename="../qml/dialogs/ImagePackSettingsDialog.qml" line="+22"/>
         <source>Image pack settings</source>
-        <translation type="unfinished"></translation>
+        <translation>Image pack settings</translation>
     </message>
     <message>
         <location line="+54"/>
         <source>Create account pack</source>
-        <translation type="unfinished"></translation>
+        <translation>Create account pack</translation>
     </message>
     <message>
         <location line="+12"/>
         <source>New room pack</source>
-        <translation type="unfinished"></translation>
+        <translation>New room pack</translation>
     </message>
     <message>
         <location line="+20"/>
         <source>Private pack</source>
-        <translation type="unfinished"></translation>
+        <translation>Private pack</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Pack from this room</source>
-        <translation type="unfinished"></translation>
+        <translation>Pack from this room</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Globally enabled pack</source>
-        <translation type="unfinished"></translation>
+        <translation>Globally enabled pack</translation>
     </message>
     <message>
         <location line="+63"/>
         <source>Enable globally</source>
-        <translation type="unfinished"></translation>
+        <translation>Enable globally</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>Enables this pack to be used in all rooms</source>
-        <translation type="unfinished"></translation>
+        <translation>Enables this pack to be used in all rooms</translation>
     </message>
     <message>
         <location line="+10"/>
         <source>Edit</source>
-        <translation type="unfinished">Edit</translation>
+        <translation>Edit</translation>
     </message>
     <message>
         <location line="+64"/>
         <source>Close</source>
-        <translation type="unfinished">Close</translation>
+        <translation>Close</translation>
     </message>
 </context>
 <context>
@@ -889,7 +889,7 @@ Example: https://server.my:8787</translation>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+188"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+190"/>
         <source>Encryption enabled</source>
         <translation>Encryption enabled</translation>
     </message>
@@ -944,7 +944,12 @@ Example: https://server.my:8787</translation>
         <translation>Negotiating call…</translation>
     </message>
     <message>
-        <location line="-24"/>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation>Allow them in</translation>
+    </message>
+    <message>
+        <location line="-94"/>
         <source>%1 answered the call.</source>
         <translation>%1 answered the call.</translation>
     </message>
@@ -1262,7 +1267,7 @@ Example: https://server.my:8787</translation>
     <message>
         <location filename="../qml/ReadReceipts.qml" line="+40"/>
         <source>Read receipts</source>
-        <translation type="unfinished">Read receipts</translation>
+        <translation>Read receipts</translation>
     </message>
 </context>
 <context>
@@ -1270,7 +1275,7 @@ Example: https://server.my:8787</translation>
     <message>
         <location filename="../../src/ReadReceiptsModel.cpp" line="+111"/>
         <source>Yesterday, %1</source>
-        <translation type="unfinished"></translation>
+        <translation>Yesterday, %1</translation>
     </message>
 </context>
 <context>
@@ -1324,12 +1329,12 @@ Example: https://server.my:8787</translation>
     <message>
         <location line="+32"/>
         <source>Registration token</source>
-        <translation type="unfinished"></translation>
+        <translation>Registration token</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Please enter a valid registration token.</source>
-        <translation type="unfinished"></translation>
+        <translation>Please enter a valid registration token.</translation>
     </message>
     <message>
         <location line="-175"/>
@@ -1386,9 +1391,22 @@ Example: https://server.my:8787</translation>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation>Explore Public Rooms</translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation>Search for public rooms</translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation>no version stored</translation>
     </message>
@@ -1396,7 +1414,7 @@ Example: https://server.my:8787</translation>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation>New tag</translation>
     </message>
@@ -1408,12 +1426,12 @@ Example: https://server.my:8787</translation>
     <message>
         <location line="+9"/>
         <source>Leave Room</source>
-        <translation type="unfinished"></translation>
+        <translation>Leave room</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Are you sure you want to leave this room?</source>
-        <translation type="unfinished"></translation>
+        <translation>Are you sure you want to leave this room?</translation>
     </message>
     <message>
         <location line="+7"/>
@@ -1491,7 +1509,7 @@ Example: https://server.my:8787</translation>
         <translation>Room directory</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation>User settings</translation>
     </message>
@@ -1520,22 +1538,22 @@ Example: https://server.my:8787</translation>
     <message>
         <location line="+76"/>
         <source>This room is not encrypted!</source>
-        <translation type="unfinished"></translation>
+        <translation>This room is not encrypted!</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>This user is verified.</source>
-        <translation type="unfinished"></translation>
+        <translation>This user is verified.</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>This user isn&apos;t verified, but is still using the same master key from the first time you met.</source>
-        <translation type="unfinished"></translation>
+        <translation>This user isn&apos;t verified, but is still using the same master key from the first time you met.</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>This user has unverified devices!</source>
-        <translation type="unfinished"></translation>
+        <translation>This user has unverified devices!</translation>
     </message>
 </context>
 <context>
@@ -1578,10 +1596,10 @@ Example: https://server.my:8787</translation>
     <message>
         <location line="+9"/>
         <source>Room access</source>
-        <translation type="unfinished"></translation>
+        <translation>Room access</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation>Anyone and guests</translation>
     </message>
@@ -1596,7 +1614,17 @@ Example: https://server.my:8787</translation>
         <translation>Invited users</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation>By knocking</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation>Restricted by membership in other rooms</translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation>Encryption</translation>
     </message>
@@ -1614,17 +1642,17 @@ Example: https://server.my:8787</translation>
     <message>
         <location line="+16"/>
         <source>Sticker &amp; Emote Settings</source>
-        <translation type="unfinished"></translation>
+        <translation>Sticker &amp; Emote Settings</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>Change</source>
-        <translation type="unfinished"></translation>
+        <translation>Change</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Change what packs are enabled, remove packs or create new ones</source>
-        <translation type="unfinished"></translation>
+        <translation>Change what packs are enabled, remove packs or create new ones</translation>
     </message>
     <message>
         <location line="+16"/>
@@ -1642,12 +1670,12 @@ Example: https://server.my:8787</translation>
         <translation>Room Version</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Failed to enable encryption: %1</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation>Select an avatar</translation>
     </message>
@@ -1750,23 +1778,23 @@ Example: https://server.my:8787</translation>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
-        <translation type="unfinished"></translation>
+        <source>Failed to update image pack: %1</source>
+        <translation>Failed to update image pack: %1</translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
-        <translation type="unfinished"></translation>
+        <source>Failed to delete old image pack: %1</source>
+        <translation>Failed to delete old image pack: %1</translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
-        <translation type="unfinished"></translation>
+        <source>Failed to open image: %1</source>
+        <translation>Failed to open image: %1</translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
-        <translation type="unfinished"></translation>
+        <source>Failed to upload image: %1</source>
+        <translation>Failed to upload image: %1</translation>
     </message>
 </context>
 <context>
@@ -1821,7 +1849,7 @@ Example: https://server.my:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation>Message redaction failed: %1</translation>
     </message>
@@ -1871,7 +1899,17 @@ Example: https://server.my:8787</translation>
         <translation>%1 made this room require an invitation to join.</translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation>%1 allowed to join this room by knocking.</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation>%1 allowed members of the following rooms to automatically join this room: %2</translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation>%1 made the room open to guests.</translation>
     </message>
@@ -1906,7 +1944,7 @@ Example: https://server.my:8787</translation>
         <translation>%1 has changed the room&apos;s permissions.</translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation>%1 was invited.</translation>
     </message>
@@ -1921,12 +1959,17 @@ Example: https://server.my:8787</translation>
         <translation>%1 changed some profile info.</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation>%1 joined.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <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"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 rejected their invite.</translation>
     </message>
@@ -1966,12 +2009,12 @@ Example: https://server.my:8787</translation>
         <translation>%1 redacted their knock.</translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation>You joined this room.</translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <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>
@@ -1981,7 +2024,7 @@ Example: https://server.my:8787</translation>
         <translation>%1 has changed their display name to %2.</translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation>Rejected the knock from %1.</translation>
     </message>
@@ -2013,7 +2056,7 @@ Example: https://server.my:8787</translation>
         <translation>No room open</translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation>%1 member(s)</translation>
     </message>
@@ -2041,7 +2084,7 @@ Example: https://server.my:8787</translation>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2061,22 +2104,22 @@ Example: https://server.my:8787</translation>
     <message>
         <location line="+91"/>
         <source>This room is not encrypted!</source>
-        <translation type="unfinished"></translation>
+        <translation>This room is not encrypted!</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>This room contains only verified devices.</source>
-        <translation type="unfinished"></translation>
+        <translation>This room contains only verified devices.</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>This rooms contain verified devices and devices which have never changed their master key.</source>
-        <translation type="unfinished"></translation>
+        <translation>This rooms contain verified devices and devices which have never changed their master key.</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>This room contains unverified devices!</source>
-        <translation type="unfinished"></translation>
+        <translation>This room contains unverified devices!</translation>
     </message>
     <message>
         <location line="+15"/>
@@ -2179,8 +2222,8 @@ Example: https://server.my:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation>Default</translation>
     </message>
@@ -2188,7 +2231,7 @@ Example: https://server.my:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation>Minimize to tray</translation>
     </message>
@@ -2208,12 +2251,12 @@ Example: https://server.my:8787</translation>
         <translation>Circular Avatars</translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation>profile: %1</translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation>Default</translation>
     </message>
@@ -2412,12 +2455,12 @@ This usually causes the application icon in the task bar to animate in some fash
     <message>
         <location line="+55"/>
         <source>Send encrypted messages to verified users only</source>
-        <translation type="unfinished"></translation>
+        <translation>Send encrypted messages to verified users only</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Requires a user to be verified to send encrypted messages to them. This improves safety but makes E2EE more tedious.</source>
-        <translation type="unfinished"></translation>
+        <translation>Requires a user to be verified to send encrypted messages to them. This improves safety but makes E2EE more tedious.</translation>
     </message>
     <message>
         <location line="+2"/>
@@ -2427,10 +2470,20 @@ This usually causes the application icon in the task bar to animate in some fash
     <message>
         <location line="+2"/>
         <source>Automatically replies to key requests from other users, if they are verified, even if that device shouldn&apos;t have access to those keys otherwise.</source>
-        <translation type="unfinished"></translation>
+        <translation>Automatically replies to key requests from other users, if they are verified, even if that device shouldn&apos;t have access to those keys otherwise.</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation>Online Key Backup</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation>Download message encryption keys from and upload to the encrypted online key backup.</translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation>CACHED</translation>
     </message>
@@ -2440,7 +2493,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>NOT CACHED</translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation>Scale factor</translation>
     </message>
@@ -2535,12 +2588,12 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>ENCRYPTION</translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation>GENERAL</translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation>INTERFACE</translation>
     </message>
@@ -2560,7 +2613,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Emoji Font Family</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation>Master signing key</translation>
     </message>
@@ -2610,7 +2663,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>All Files (*)</translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation>Open Sessions File</translation>
     </message>
diff --git a/resources/langs/nheko_eo.ts b/resources/langs/nheko_eo.ts
index 74364e52..88828a4a 100644
--- a/resources/langs/nheko_eo.ts
+++ b/resources/langs/nheko_eo.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation type="unfinished">Invitita uzanto: %1</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation>Konfirmu aliĝon</translation>
     </message>
@@ -157,13 +157,13 @@
         <translation>Ĉambro %1 farit.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation>Konfirmu inviton</translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Ĉu vi certe volas inviti uzanton %1 (%2)?</translation>
     </message>
@@ -228,12 +228,12 @@
         <translation>Malforbaris uzanton: %1</translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <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="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation>Malsukcesis migrado de kaŝmemoro!</translation>
     </message>
@@ -248,7 +248,7 @@
         <translation>La kaŝmemoro sur via disko estas pli nova ol kiom ĉi tiu versio de Nheko subtenas. Bonvolu ĝisdatigi la programon aŭ vakigi vian kaŝmemoron.</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -258,7 +258,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <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>
@@ -289,7 +289,7 @@
         <translation>Malsukcesis krei ĉambron: %1</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation>Malsukcesis eliri el ĉambro: %1</translation>
     </message>
@@ -353,7 +353,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation>Malĉifri sekretojn</translation>
     </message>
@@ -557,8 +557,8 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
-        <translation>Ĉifrita de nekontrolita aparato</translation>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -892,7 +892,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+170"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+172"/>
         <location line="+9"/>
         <source>removed</source>
         <translation>forigita</translation>
@@ -962,6 +962,11 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <source>Negotiating call...</source>
         <translation>Traktante vokon…</translation>
     </message>
+    <message>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MessageInput</name>
@@ -1389,9 +1394,22 @@ Ekzemplo: https://servilo.mia:8787</translation>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1399,7 +1417,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1494,7 +1512,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation type="unfinished">Ĉambra dosierujo</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished">Agordoj de uzanto</translation>
     </message>
@@ -1584,7 +1602,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation>Ĉiu ajn, inkluzive gastojn</translation>
     </message>
@@ -1599,7 +1617,17 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Invititoj</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation>Ĉifrado</translation>
     </message>
@@ -1645,12 +1673,12 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>Versio de ĉambro</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Malsukcesis ŝalti ĉifradon: %1</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation>Elektu bildon de ĉambro</translation>
     </message>
@@ -1753,22 +1781,22 @@ Ekzemplo: https://servilo.mia:8787</translation>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1825,7 +1853,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1875,7 +1903,17 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation>%1 ekpostulis inviton por aliĝoj al la ĉamrbo.</translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation>%1 malfermis la ĉambron al gastoj.</translation>
     </message>
@@ -1910,7 +1948,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translatorcomment>%1 estis invitata.</translatorcomment>
         <translation>%1 estis invitita.</translation>
@@ -1927,12 +1965,17 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation>%1 aliĝis.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1972,12 +2015,12 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation>Vi aliĝis ĉi tiun ĉambron.</translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1987,7 +2030,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2019,7 +2062,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished">%1 ĉambrano(j)</translation>
     </message>
@@ -2047,7 +2090,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2185,8 +2228,8 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2194,7 +2237,7 @@ Ekzemplo: https://servilo.mia:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2214,12 +2257,12 @@ Ekzemplo: https://servilo.mia:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2442,7 +2485,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2452,7 +2505,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2547,12 +2600,12 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2572,7 +2625,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2622,7 +2675,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Ĉiuj dosieroj (*)</translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_es.ts b/resources/langs/nheko_es.ts
index cb4a6c1d..638a2922 100644
--- a/resources/langs/nheko_es.ts
+++ b/resources/langs/nheko_es.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation>Usuario invitado: %1</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -156,13 +156,13 @@
         <translation>Sala %1 creada.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation>Confirmar invitación</translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -247,7 +247,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -257,7 +257,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -288,7 +288,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -556,7 +556,7 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -885,7 +885,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+188"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+190"/>
         <source>Encryption enabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -940,7 +940,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-24"/>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-94"/>
         <source>%1 answered the call.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1382,9 +1387,22 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1392,7 +1410,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1487,7 +1505,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1577,7 +1595,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1592,7 +1610,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1638,12 +1666,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1746,22 +1774,22 @@ Example: https://server.my:8787</source>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1817,7 +1845,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1867,7 +1895,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1902,7 +1940,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1927,12 +1965,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1972,12 +2015,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation type="unfinished">Te has unido a esta sala.</translation>
     </message>
     <message>
-        <location line="+895"/>
+        <location line="+959"/>
         <source>Rejected the knock from %1.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2009,7 +2052,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2037,7 +2080,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2175,8 +2218,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2184,7 +2227,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2204,12 +2247,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2415,7 +2458,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2425,7 +2478,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2520,12 +2573,12 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2545,7 +2598,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2595,7 +2648,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_et.ts b/resources/langs/nheko_et.ts
index 60a3d7cb..4b0d5a97 100644
--- a/resources/langs/nheko_et.ts
+++ b/resources/langs/nheko_et.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation>Kutsutud kasutaja: %1</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation>Kinnita liitumine</translation>
     </message>
@@ -156,13 +156,13 @@
         <translation>%1 jututuba on loodud.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation>Kinnita kutse</translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Kas sa tõesti soovid saata kutset kasutajale %1 (%2)?</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Suhtluskeeld eemaldatud: %1</translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <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="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation>Puhvri versiooniuuendus ebaõnnestus!</translation>
     </message>
@@ -247,7 +247,7 @@
         <translation>Sinu andmekandjale salvestatud puhvri versioon on uuem, kui käesolev Nheko versioon kasutada oskab. Palun tee Nheko uuendus või kustuta puhverdatud andmed.</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation>OLM konto taastamine ei õnnestunud. Palun logi uuesti sisse.</translation>
     </message>
@@ -257,7 +257,7 @@
         <translation>Salvestatud andmete taastamine ei õnnestunud. Palun logi uuesti sisse.</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <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>
@@ -288,7 +288,7 @@
         <translation>Jututoa loomine ei õnnestunud: %1</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation>Jututoast lahkumine ei õnnestunud: %1</translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation>Dekrüpti andmed</translation>
     </message>
@@ -556,8 +556,8 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
-        <translation>Krüptitud verifitseerimata seadmes</translation>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -889,7 +889,7 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+188"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+190"/>
         <source>Encryption enabled</source>
         <translation>Krüptimine on kasutusel</translation>
     </message>
@@ -944,7 +944,12 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Ühendan kõnet…</translation>
     </message>
     <message>
-        <location line="-24"/>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-94"/>
         <source>%1 answered the call.</source>
         <translation>%1 vastas kõnele.</translation>
     </message>
@@ -1386,9 +1391,22 @@ Näiteks: https://server.minu:8787</translation>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation>salvestatud versiooni ei leidu</translation>
     </message>
@@ -1396,7 +1414,7 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation>Uus silt</translation>
     </message>
@@ -1491,7 +1509,7 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Jututubade loend</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation>Kasutaja seadistused</translation>
     </message>
@@ -1581,7 +1599,7 @@ Näiteks: https://server.minu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation>Kõik (sealhulgas külalised)</translation>
     </message>
@@ -1596,7 +1614,17 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Kutsutud kasutajad</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation>Krüptimine</translation>
     </message>
@@ -1642,12 +1670,12 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Jututoa versioon</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Krüptimise kasutuselevõtmine ei õnnestunud: %1</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation>Vali tunnuspilt</translation>
     </message>
@@ -1750,22 +1778,22 @@ Näiteks: https://server.minu:8787</translation>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1821,7 +1849,7 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation>Sõnumi ümbersõnastamine ebaõnnestus: %1</translation>
     </message>
@@ -1871,7 +1899,17 @@ Näiteks: https://server.minu:8787</translation>
         <translation>%1 seadistas, et selle jututoaga liitumine eeldab kutset.</translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation>%1 muutis selle jututoa külalistele ligipääsetavaks.</translation>
     </message>
@@ -1906,7 +1944,7 @@ Näiteks: https://server.minu:8787</translation>
         <translation>%1 muutis selle jututoa õigusi.</translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation>%1 sai kutse.</translation>
     </message>
@@ -1921,12 +1959,17 @@ Näiteks: https://server.minu:8787</translation>
         <translation>%1 muutis oma profiili.</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation>%1 liitus jututoaga.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 lükkas liitumiskutse tagasi.</translation>
     </message>
@@ -1966,12 +2009,12 @@ Näiteks: https://server.minu:8787</translation>
         <translation>%1 muutis oma koputust jututoa uksele.</translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation>Sa liitusid jututoaga.</translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <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>
@@ -1981,7 +2024,7 @@ Näiteks: https://server.minu:8787</translation>
         <translation>%1 seadistas uueks kuvatavaks nimeks %2.</translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation>Lükkas tagasi %1 koputuse jututoa uksele.</translation>
     </message>
@@ -2013,7 +2056,7 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Ühtegi jututuba pole avatud</translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation>%1 liige(t)</translation>
     </message>
@@ -2041,7 +2084,7 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2179,8 +2222,8 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation>Vaikimisi</translation>
     </message>
@@ -2188,7 +2231,7 @@ Näiteks: https://server.minu:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation>Vähenda tegumiribale</translation>
     </message>
@@ -2208,12 +2251,12 @@ Näiteks: https://server.minu:8787</translation>
         <translation>Ümmargused tunnuspildid</translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation>Profiil: %1</translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation>Vaikimisi</translation>
     </message>
@@ -2430,7 +2473,17 @@ See tavaliselt tähendab, et rakenduse ikoon tegumiribal annab mingit sorti anim
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation>PUHVERDATUD</translation>
     </message>
@@ -2440,7 +2493,7 @@ See tavaliselt tähendab, et rakenduse ikoon tegumiribal annab mingit sorti anim
         <translation>PUHVERDAMATA</translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation>Mastaabitegur</translation>
     </message>
@@ -2535,12 +2588,12 @@ See tavaliselt tähendab, et rakenduse ikoon tegumiribal annab mingit sorti anim
         <translation>KRÜPTIMINE</translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation>ÜLDISED SEADISTUSED</translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation>LIIDES</translation>
     </message>
@@ -2560,7 +2613,7 @@ See tavaliselt tähendab, et rakenduse ikoon tegumiribal annab mingit sorti anim
         <translation>Fondiperekond emojide jaoks</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation>Üldine allkirjavõti</translation>
     </message>
@@ -2610,7 +2663,7 @@ See tavaliselt tähendab, et rakenduse ikoon tegumiribal annab mingit sorti anim
         <translation>Kõik failid (*)</translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation>Ava sessioonide fail</translation>
     </message>
diff --git a/resources/langs/nheko_fi.ts b/resources/langs/nheko_fi.ts
index 8db7eb99..c5de1d45 100644
--- a/resources/langs/nheko_fi.ts
+++ b/resources/langs/nheko_fi.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation>Kutsuttu käyttäjä: %1</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation>Vahvista liittyminen</translation>
     </message>
@@ -156,13 +156,13 @@
         <translation>Huone %1 luotu.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation>Vahvista kutsu</translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Haluatko kutsua %1 (%2)?</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Purettiin porttikielto käyttäjältä %1</translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <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="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation>Välimuistin siirto epäonnistui!</translation>
     </message>
@@ -247,7 +247,7 @@
         <translation>Levylläsi oleva välimuisti on uudempaa kuin mitä tämä Nhekon versio tukee. Päivitä tai poista välimuistisi.</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation>OLM-tilin palauttaminen epäonnistui. Ole hyvä ja kirjaudu sisään uudelleen.</translation>
     </message>
@@ -257,7 +257,7 @@
         <translation>Tallennettujen tietojen palauttaminen epäonnistui. Ole hyvä ja kirjaudu sisään uudelleen.</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <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>
@@ -288,7 +288,7 @@
         <translation>Huoneen luominen epäonnistui: %1</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation>Huoneesta poistuminen epäonnistui: %1</translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation>Salaisuuksien salauksen purku</translation>
     </message>
@@ -556,8 +556,8 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
-        <translation>Vahvistamattoman laitteen salaama</translation>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -889,7 +889,7 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+170"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+172"/>
         <location line="+9"/>
         <source>removed</source>
         <translation>poistettu</translation>
@@ -959,6 +959,11 @@ Esimerkki: https://server.my:8787</translation>
         <source>Negotiating call...</source>
         <translation>Neuvotellaan puhelua.…</translation>
     </message>
+    <message>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MessageInput</name>
@@ -1386,9 +1391,22 @@ Esimerkki: https://server.my:8787</translation>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation>ei tallennettua versiota</translation>
     </message>
@@ -1396,7 +1414,7 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation>Uusi tagi</translation>
     </message>
@@ -1491,7 +1509,7 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Huoneluettelo</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation>Käyttäjäasetukset</translation>
     </message>
@@ -1581,7 +1599,7 @@ Esimerkki: https://server.my:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation>Kaikki ja vieraat</translation>
     </message>
@@ -1596,7 +1614,17 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Kutsutut käyttäjät</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation>Salaus</translation>
     </message>
@@ -1642,12 +1670,12 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Huoneen versio</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Salauksen aktivointi epäonnistui: %1</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation>Valitse profiilikuva</translation>
     </message>
@@ -1750,22 +1778,22 @@ Esimerkki: https://server.my:8787</translation>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1821,7 +1849,7 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation>Viestin muokkaus epäonnistui: %1</translation>
     </message>
@@ -1871,7 +1899,17 @@ Esimerkki: https://server.my:8787</translation>
         <translation>%1 teki tästä huoneesta liittymiskutsun vaativan.</translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation>%1 teki huoneesta avoimen vieraille.</translation>
     </message>
@@ -1906,7 +1944,7 @@ Esimerkki: https://server.my:8787</translation>
         <translation>%1 on muuttanut huoneen lupia.</translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation>&amp;1 kutsuttiin.</translation>
     </message>
@@ -1921,12 +1959,17 @@ Esimerkki: https://server.my:8787</translation>
         <translation>%1 muutti joitain tietoja profiilistaan.</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation>%1 liittyi.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 hylkäsi kutsunsa.</translation>
     </message>
@@ -1966,12 +2009,12 @@ Esimerkki: https://server.my:8787</translation>
         <translation>%1 perui koputuksensa.</translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation>Sinä liityit tähän huoneeseen.</translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <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>
@@ -1981,7 +2024,7 @@ Esimerkki: https://server.my:8787</translation>
         <translation>%1 vaihtoi näyttönimekseen %2.</translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation>Hylättiin koputus käyttäjältä %1.</translation>
     </message>
@@ -2013,7 +2056,7 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Ei avointa huonetta</translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation>%1 jäsentä</translation>
     </message>
@@ -2041,7 +2084,7 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2179,8 +2222,8 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation>Oletus</translation>
     </message>
@@ -2188,7 +2231,7 @@ Esimerkki: https://server.my:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation>Pienennä ilmoitusalueelle</translation>
     </message>
@@ -2208,12 +2251,12 @@ Esimerkki: https://server.my:8787</translation>
         <translation>Pyöreät avatarit</translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation>profiili: %1</translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation>Oletus</translation>
     </message>
@@ -2430,7 +2473,17 @@ Tämä yleensä saa sovelluksen kuvakkeen liikkumaan jollain tapaa tehtäväpalk
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation>VÄLIMUISTISSA</translation>
     </message>
@@ -2440,7 +2493,7 @@ Tämä yleensä saa sovelluksen kuvakkeen liikkumaan jollain tapaa tehtäväpalk
         <translation>EI VÄLIMUISTISSA</translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation>Mittakerroin</translation>
     </message>
@@ -2535,12 +2588,12 @@ Tämä yleensä saa sovelluksen kuvakkeen liikkumaan jollain tapaa tehtäväpalk
         <translation>SALAUS</translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation>YLEISET ASETUKSET</translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation>KÄYTTÖLIITTYMÄ</translation>
     </message>
@@ -2560,7 +2613,7 @@ Tämä yleensä saa sovelluksen kuvakkeen liikkumaan jollain tapaa tehtäväpalk
         <translation>Emojien fonttiperhe</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation>Päätason allekirjoittava avain</translation>
     </message>
@@ -2610,7 +2663,7 @@ Tämä yleensä saa sovelluksen kuvakkeen liikkumaan jollain tapaa tehtäväpalk
         <translation>Kaikki Tiedostot (*)</translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation>Avaa Istuntoavaintiedosto</translation>
     </message>
diff --git a/resources/langs/nheko_fr.ts b/resources/langs/nheko_fr.ts
index 9d11ce25..04027b85 100644
--- a/resources/langs/nheko_fr.ts
+++ b/resources/langs/nheko_fr.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation>%1 a été invité(e)</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation>Confirmez la participation</translation>
     </message>
@@ -156,13 +156,13 @@
         <translation>Salon %1 créé.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation>Confirmer l&apos;invitation</translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Voulez-vous vraiment inviter %1 (%2)&#x202f;?</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>%1 n&apos;est plus banni(e)</translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation>Voulez-vous vraimer commencer une discussion privée avec %1 ?</translation>
     </message>
     <message>
-        <location line="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation>Échec de la migration du cache&#x202f;!</translation>
     </message>
@@ -247,7 +247,7 @@
         <translation>Le cache sur votre disque est plus récent que cette version de Nheko ne supporte. Veuillez mettre à jour ou supprimer votre cache.</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation>Échec de la restauration du compte OLM. Veuillez vous reconnecter.</translation>
     </message>
@@ -257,7 +257,7 @@
         <translation>Échec de la restauration des données sauvegardées. Veuillez vous reconnecter.</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <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&#xa0;: %1 %2. Veuillez réessayer plus tard.</translation>
     </message>
@@ -288,7 +288,7 @@
         <translation>Échec de la création du salon&#xa0;: %1</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation>Impossible de quitter le salon&#xa0;: %1</translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation>Déchiffrer les secrets</translation>
     </message>
@@ -556,7 +556,7 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -889,7 +889,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+170"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+172"/>
         <location line="+9"/>
         <source>removed</source>
         <translation>retiré</translation>
@@ -959,6 +959,11 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
         <source>Negotiating call...</source>
         <translation>Négociation de l&apos;appel…</translation>
     </message>
+    <message>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MessageInput</name>
@@ -1386,9 +1391,22 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation>pas de version enregistrée</translation>
     </message>
@@ -1396,7 +1414,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1491,7 +1509,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
         <translation type="unfinished">Annuaire des salons</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished">Paramètres utilisateur</translation>
     </message>
@@ -1581,7 +1599,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation>Tous le monde et les invités</translation>
     </message>
@@ -1596,7 +1614,17 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
         <translation>Utilisateurs invités</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation>Chiffrement</translation>
     </message>
@@ -1642,12 +1670,12 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
         <translation>Version du salon</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Échec de l&apos;activation du chiffrement&#xa0;&#xa0;: %1</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation>Sélectionner un avatar</translation>
     </message>
@@ -1750,22 +1778,22 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1821,7 +1849,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation>Échec de la suppression du message&#xa0;: %1</translation>
     </message>
@@ -1871,7 +1899,17 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
         <translation>%1 a rendu le rendu le salon joignable uniquement sur invitation.</translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation>%1 a rendu le salon ouvert aux invités.</translation>
     </message>
@@ -1906,7 +1944,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
         <translation>%1 a changé les permissions du salon.</translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation>%1 a été invité(e).</translation>
     </message>
@@ -1921,12 +1959,17 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
         <translation>%1 a changé ses informations de profil.</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation>%1 a rejoint le salon.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 a rejeté son invitation.</translation>
     </message>
@@ -1966,12 +2009,12 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
         <translation>%1 ne frappe plus au salon.</translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation>Vous avez rejoint ce salon.</translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1981,7 +2024,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation>%1 a été rejeté après avoir frappé au salon.</translation>
     </message>
@@ -2013,7 +2056,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
         <translation>Aucun salon ouvert</translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished">%1 membre(s)</translation>
     </message>
@@ -2041,7 +2084,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
         <translation>Pas de discussion privée et chiffrée trouvée avec cet utilisateur. Créez-en une et réessayez.</translation>
     </message>
@@ -2179,8 +2222,8 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation>Défaut</translation>
     </message>
@@ -2188,7 +2231,7 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation>Réduire à la barre des tâches</translation>
     </message>
@@ -2208,12 +2251,12 @@ Exemple&#xa0;: https&#x202f;://monserveur.example.com&#x202f;:8787</translation>
         <translation>Avatars circulaires</translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation>profil&#x202f;: %1</translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation>Défaut</translation>
     </message>
@@ -2432,7 +2475,17 @@ Cela met l&apos;application en évidence dans la barre des tâches.</translation
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation>EN CACHE</translation>
     </message>
@@ -2442,7 +2495,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="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation>Facteur d&apos;échelle</translation>
     </message>
@@ -2537,12 +2590,12 @@ Cela met l&apos;application en évidence dans la barre des tâches.</translation
         <translation>CHIFFREMENT</translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation>GÉNÉRAL</translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation>INTERFACE</translation>
     </message>
@@ -2562,7 +2615,7 @@ Cela met l&apos;application en évidence dans la barre des tâches.</translation
         <translation>Nom de Police Emoji</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation>Clé de signature de l&apos;utilisateur</translation>
     </message>
@@ -2612,7 +2665,7 @@ 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="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation>Ouvrir fichier de sessions</translation>
     </message>
diff --git a/resources/langs/nheko_hu.ts b/resources/langs/nheko_hu.ts
index a8e4d0e9..961fcffe 100644
--- a/resources/langs/nheko_hu.ts
+++ b/resources/langs/nheko_hu.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation>A felhasználó meg lett hívva: %1</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation>Csatlakozás megerősítése</translation>
     </message>
@@ -156,13 +156,13 @@
         <translation>A %1 nevű szoba létre lett hozva.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation>Meghívás megerősítése</translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <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>
@@ -227,12 +227,12 @@
         <translation>Kitiltás feloldva a felhasználónak: %1</translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <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="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation>Gyorsítótár migráció nem sikerült!</translation>
     </message>
@@ -247,7 +247,7 @@
         <translation>A lemezeden lévő gyorsítótár újabb, mint amit a Nheko jelenlegi verziója támogat. Kérlek, frissítsd vagy töröld a gyorsítótárat!</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation>Nem sikerült visszaállítani az OLM fiókot. Kérlek, jelentkezz be ismét!</translation>
     </message>
@@ -257,7 +257,7 @@
         <translation>Nem sikerült visszaállítani a mentési adatot. Kérlek, jelentkezz be ismét!</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <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>
@@ -288,7 +288,7 @@
         <translation>Nem sikerült létrehozni a szobát: %1</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation>Nem sikerült elhagyni a szobát: %1</translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation>Titkos tároló feloldása</translation>
     </message>
@@ -556,7 +556,7 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -889,7 +889,7 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+188"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+190"/>
         <source>Encryption enabled</source>
         <translation>Titkosítás bekapcsolva</translation>
     </message>
@@ -944,7 +944,12 @@ Példa: https://szerver.em:8787</translation>
         <translation>Hívás előkészítése…</translation>
     </message>
     <message>
-        <location line="-24"/>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-94"/>
         <source>%1 answered the call.</source>
         <translation>%1 fogadta a hívást.</translation>
     </message>
@@ -1386,9 +1391,22 @@ Példa: https://szerver.em:8787</translation>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation>nincs tárolva verzió</translation>
     </message>
@@ -1396,7 +1414,7 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1491,7 +1509,7 @@ Példa: https://szerver.em:8787</translation>
         <translation type="unfinished">Szobák jegyzéke</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished">Felhasználói beállítások</translation>
     </message>
@@ -1580,7 +1598,7 @@ Példa: https://szerver.em:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation>Bárki és vendégek</translation>
     </message>
@@ -1595,7 +1613,17 @@ Példa: https://szerver.em:8787</translation>
         <translation>Meghívott felhasználók</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation>Titkosítás</translation>
     </message>
@@ -1641,12 +1669,12 @@ Példa: https://szerver.em:8787</translation>
         <translation>Szoba verziója</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Nem sikerült a titkosítás aktiválása: %1</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation>Profilkép kiválasztása</translation>
     </message>
@@ -1749,22 +1777,22 @@ Példa: https://szerver.em:8787</translation>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1820,7 +1848,7 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation>Az üzenet visszavonása nem sikerült: %1</translation>
     </message>
@@ -1869,7 +1897,17 @@ Példa: https://szerver.em:8787</translation>
         <translation>%1 beállította, hogy meghívással lehessen csatlakozni ehhez a szobához.</translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation>%1 elérhetővé tette a szobát vendégeknek.</translation>
     </message>
@@ -1904,7 +1942,7 @@ Példa: https://szerver.em:8787</translation>
         <translation>%1 megváltoztatta a szoba engedélyeit.</translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation>%1 meg lett hívva.</translation>
     </message>
@@ -1919,12 +1957,17 @@ Példa: https://szerver.em:8787</translation>
         <translation>%1 megváltoztatta a profiladatait.</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation>%1 csatlakozott.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 elutasította a meghívását.</translation>
     </message>
@@ -1964,12 +2007,12 @@ Példa: https://szerver.em:8787</translation>
         <translation>%1 visszavonta a kopogását.</translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation>Csatlakoztál ehhez a szobához.</translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1979,7 +2022,7 @@ Példa: https://szerver.em:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation>Kopogás elutasítva tőle: %1.</translation>
     </message>
@@ -2011,7 +2054,7 @@ Példa: https://szerver.em:8787</translation>
         <translation>Nincs nyitott szoba</translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished">%1 tag</translation>
     </message>
@@ -2039,7 +2082,7 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2177,8 +2220,8 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation>Alapértelmezett</translation>
     </message>
@@ -2186,7 +2229,7 @@ Példa: https://szerver.em:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation>Kicsinyítés a tálcára</translation>
     </message>
@@ -2206,12 +2249,12 @@ Példa: https://szerver.em:8787</translation>
         <translation>Kerekített profilképek</translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation>profil: %1</translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation>Alapértelmezett</translation>
     </message>
@@ -2429,7 +2472,17 @@ Ettől általában animálttá válik az alkalmazásablakok listáján szereplő
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation>GYORSÍTÓTÁRAZVA</translation>
     </message>
@@ -2439,7 +2492,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="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation>Nagyítási tényező</translation>
     </message>
@@ -2534,12 +2587,12 @@ Ettől általában animálttá válik az alkalmazásablakok listáján szereplő
         <translation>TITKOSÍTÁS</translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation>ÁLTALÁNOS</translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation>FELÜLET</translation>
     </message>
@@ -2559,7 +2612,7 @@ Ettől általában animálttá válik az alkalmazásablakok listáján szereplő
         <translation>Hangulatjelek betűtípusa</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation>Mester-aláírókulcs</translation>
     </message>
@@ -2609,7 +2662,7 @@ Ettől általában animálttá válik az alkalmazásablakok listáján szereplő
         <translation>Minden fájl (*)</translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation>Munkameneti fájl megnyitása</translation>
     </message>
diff --git a/resources/langs/nheko_it.ts b/resources/langs/nheko_it.ts
index 31146e76..0b44bd80 100644
--- a/resources/langs/nheko_it.ts
+++ b/resources/langs/nheko_it.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation>Invitato utente: %1</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation>Conferma collegamento</translation>
     </message>
@@ -156,13 +156,13 @@
         <translation>Stanza %1 creata.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation>Conferma Invito</translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Vuoi davvero inviare %1 (%2)?</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Rimosso il ban dall&apos;utente: %1</translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <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="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation>Migrazione della cache fallita!</translation>
     </message>
@@ -247,7 +247,7 @@
         <translation>La cache sul tuo disco è più nuova di quella supportata da questa versione di Nheko. Per favore aggiorna o pulisci la tua cache.</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation>Impossibile ripristinare l&apos;account OLM. Per favore accedi nuovamente.</translation>
     </message>
@@ -257,7 +257,7 @@
         <translation>Impossibile ripristinare i dati salvati. Per favore accedi nuovamente.</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <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>
@@ -288,7 +288,7 @@
         <translation>Creazione della stanza fallita: %1</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation>Impossibile lasciare la stanza: %1</translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation>Decifra i segreti</translation>
     </message>
@@ -556,8 +556,8 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
-        <translation>Criptato da un dispositivo non verificato</translation>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -889,7 +889,7 @@ Esempio: https://server.mio:8787</translation>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+170"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+172"/>
         <location line="+9"/>
         <source>removed</source>
         <translation>rimosso</translation>
@@ -959,6 +959,11 @@ Esempio: https://server.mio:8787</translation>
         <source>Negotiating call...</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MessageInput</name>
@@ -1387,9 +1392,22 @@ Verificare %1 adesso?</translation>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation>nessuna versione memorizzata</translation>
     </message>
@@ -1397,7 +1415,7 @@ Verificare %1 adesso?</translation>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1492,7 +1510,7 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished">Elenco delle stanze</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished">Impostazioni utente</translation>
     </message>
@@ -1582,7 +1600,7 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1597,7 +1615,17 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1643,12 +1671,12 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished">Impossibile abilitare la crittografia: %1</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation type="unfinished">Scegli un avatar</translation>
     </message>
@@ -1751,22 +1779,22 @@ Verificare %1 adesso?</translation>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1822,7 +1850,7 @@ Verificare %1 adesso?</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation>Oscuramento del messaggio fallito: %1</translation>
     </message>
@@ -1872,7 +1900,17 @@ Verificare %1 adesso?</translation>
         <translation>%1 ha configurato questa stanza per richiedere un invito per entrare.</translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation>%1 ha configurato questa stanza affinché sia aperta ai visitatori.</translation>
     </message>
@@ -1907,7 +1945,7 @@ Verificare %1 adesso?</translation>
         <translation>%1 ha cambiato i permessi della stanza.</translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation>%1 è stato invitato.</translation>
     </message>
@@ -1922,12 +1960,17 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation>%1 è entrato.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 ha rifiutato il suo invito.</translation>
     </message>
@@ -1967,12 +2010,12 @@ Verificare %1 adesso?</translation>
         <translation>%1 ha oscurato la sua bussata.</translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation>Sei entrato in questa stanza.</translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1982,7 +2025,7 @@ Verificare %1 adesso?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation>Rifiutata la bussata di %1.</translation>
     </message>
@@ -2014,7 +2057,7 @@ Verificare %1 adesso?</translation>
         <translation>Nessuna stanza aperta</translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2042,7 +2085,7 @@ Verificare %1 adesso?</translation>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2180,8 +2223,8 @@ Verificare %1 adesso?</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2189,7 +2232,7 @@ Verificare %1 adesso?</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation>Minimizza nella tray</translation>
     </message>
@@ -2209,12 +2252,12 @@ Verificare %1 adesso?</translation>
         <translation>Avatar Circolari</translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2420,7 +2463,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2430,7 +2483,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation>Fattore di scala</translation>
     </message>
@@ -2525,12 +2578,12 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>CRITTOGRAFIA</translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation>GENERALE</translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation>INTERFACCIA</translation>
     </message>
@@ -2550,7 +2603,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Famiglia dei caratteri delle Emoji</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2600,7 +2653,7 @@ 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="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation>Apri File delle Sessioni</translation>
     </message>
diff --git a/resources/langs/nheko_ja.ts b/resources/langs/nheko_ja.ts
index 52260a23..9ca8f970 100644
--- a/resources/langs/nheko_ja.ts
+++ b/resources/langs/nheko_ja.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation>招待されたユーザー: %1</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -156,13 +156,13 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>永久追放を解除されたユーザー: %1</translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -247,7 +247,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation>OLMアカウントを復元できませんでした。もう一度ログインして下さい。</translation>
     </message>
@@ -257,7 +257,7 @@
         <translation>セーブデータを復元できませんでした。もう一度ログインして下さい。</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>暗号化鍵を設定できませんでした。サーバーの応答: %1 %2. 後でやり直して下さい。</translation>
     </message>
@@ -288,7 +288,7 @@
         <translation>部屋を作成できませんでした: %1</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation>部屋から出られませんでした: %1</translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -556,7 +556,7 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -885,7 +885,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+170"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+172"/>
         <location line="+9"/>
         <source>removed</source>
         <translation type="unfinished"></translation>
@@ -955,6 +955,11 @@ Example: https://server.my:8787</source>
         <source>Negotiating call...</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MessageInput</name>
@@ -1382,9 +1387,22 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation>バージョンが保存されていません</translation>
     </message>
@@ -1392,7 +1410,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1487,7 +1505,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished">部屋一覧</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished">ユーザー設定</translation>
     </message>
@@ -1576,7 +1594,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1591,7 +1609,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1637,12 +1665,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished">暗号化を有効にできませんでした: %1</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation type="unfinished">アバターを選択</translation>
     </message>
@@ -1745,22 +1773,22 @@ Example: https://server.my:8787</source>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1816,7 +1844,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation>メッセージを編集できませんでした: %1</translation>
     </message>
@@ -1865,7 +1893,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1900,7 +1938,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation>%1が招待されました。</translation>
     </message>
@@ -1915,12 +1953,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation>%1が参加しました。</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation>%1が招待を拒否しました。</translation>
     </message>
@@ -1960,12 +2003,12 @@ Example: https://server.my:8787</source>
         <translation>%1がノックを編集しました。</translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1975,7 +2018,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation>%1からのノックを拒否しました。</translation>
     </message>
@@ -2007,7 +2050,7 @@ Example: https://server.my:8787</source>
         <translation>部屋が開いていません</translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2035,7 +2078,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2173,8 +2216,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2182,7 +2225,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation>トレイへ最小化</translation>
     </message>
@@ -2202,12 +2245,12 @@ Example: https://server.my:8787</source>
         <translation>円形アバター</translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2413,7 +2456,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2423,7 +2476,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation>尺度係数</translation>
     </message>
@@ -2518,12 +2571,12 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>暗号化</translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation>全般</translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2543,7 +2596,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2593,7 +2646,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished">全てのファイル (*)</translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation>セッションファイルを開く</translation>
     </message>
diff --git a/resources/langs/nheko_ml.ts b/resources/langs/nheko_ml.ts
index 497491ca..115da2bd 100644
--- a/resources/langs/nheko_ml.ts
+++ b/resources/langs/nheko_ml.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation>ക്ഷണിച്ച ഉപയോക്താവ്:% 1</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -156,13 +156,13 @@
         <translation>%1 മുറി സൃഷ്ടിച്ചു</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation>ക്ഷണം ഉറപ്പാക്കു</translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -247,7 +247,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -257,7 +257,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -288,7 +288,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -556,7 +556,7 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -885,7 +885,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+188"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+190"/>
         <source>Encryption enabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -940,7 +940,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-24"/>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-94"/>
         <source>%1 answered the call.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1382,9 +1387,22 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1392,7 +1410,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1487,7 +1505,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1577,7 +1595,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1592,7 +1610,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1638,12 +1666,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1746,22 +1774,22 @@ Example: https://server.my:8787</source>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1817,7 +1845,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1867,7 +1895,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1902,7 +1940,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1917,12 +1955,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1962,12 +2005,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation type="unfinished">നിങ്ങൾ ഈ മുറിയിൽ ചേർന്നു.</translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1977,7 +2020,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2009,7 +2052,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2037,7 +2080,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2175,8 +2218,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2184,7 +2227,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2204,12 +2247,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2415,7 +2458,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2425,7 +2478,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2520,12 +2573,12 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2545,7 +2598,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2595,7 +2648,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_nl.ts b/resources/langs/nheko_nl.ts
index 93236498..d8aed2a1 100644
--- a/resources/langs/nheko_nl.ts
+++ b/resources/langs/nheko_nl.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation>Gebruiker uitgenodigd: %1</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -156,13 +156,13 @@
         <translation>Kamer %1 gecreëerd.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -247,7 +247,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -257,7 +257,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -288,7 +288,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -556,7 +556,7 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -885,7 +885,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+170"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+172"/>
         <location line="+9"/>
         <source>removed</source>
         <translation type="unfinished"></translation>
@@ -955,6 +955,11 @@ Example: https://server.my:8787</source>
         <source>Negotiating call...</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MessageInput</name>
@@ -1382,9 +1387,22 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1392,7 +1410,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1487,7 +1505,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1577,7 +1595,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1592,7 +1610,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1638,12 +1666,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1746,22 +1774,22 @@ Example: https://server.my:8787</source>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1817,7 +1845,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1867,7 +1895,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1902,7 +1940,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1917,12 +1955,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1962,12 +2005,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation type="unfinished">Je bent lid geworden van deze kamer.</translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1977,7 +2020,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2009,7 +2052,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2037,7 +2080,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2175,8 +2218,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2184,7 +2227,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation>Minimaliseren naar systeemvak</translation>
     </message>
@@ -2204,12 +2247,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2415,7 +2458,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2425,7 +2478,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2520,12 +2573,12 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation>ALGEMEEN</translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2545,7 +2598,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2595,7 +2648,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished">Alle bestanden (*)</translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_pl.ts b/resources/langs/nheko_pl.ts
index 33a44698..2315503d 100644
--- a/resources/langs/nheko_pl.ts
+++ b/resources/langs/nheko_pl.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -156,13 +156,13 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Czy na pewno chcesz zaprosić %1 (%2)?</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Odblokowano użytkownika: %1</translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation>Nie udało się przenieść pamięci podręcznej!</translation>
     </message>
@@ -247,7 +247,7 @@
         <translation>Pamięć podręczna na Twoim dysku jest nowsza niż wersja obsługiwana przez Nheko. Zaktualizuj lub wyczyść pamięć podręczną.</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation>Nie udało się przywrócić konta OLM. Spróbuj zalogować się ponownie.</translation>
     </message>
@@ -257,7 +257,7 @@
         <translation>Nie udało się przywrócić zapisanych danych. Spróbuj zalogować się ponownie.</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <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>
@@ -288,7 +288,7 @@
         <translation>Tworzenie pokoju nie powiodło się: %1</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation>Nie udało się opuścić pokoju: %1</translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -556,7 +556,7 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -887,7 +887,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+170"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+172"/>
         <location line="+9"/>
         <source>removed</source>
         <translation type="unfinished"></translation>
@@ -957,6 +957,11 @@ Example: https://server.my:8787</source>
         <source>Negotiating call...</source>
         <translation>Negocjowanie połączenia…</translation>
     </message>
+    <message>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MessageInput</name>
@@ -1384,9 +1389,22 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1394,7 +1412,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1489,7 +1507,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished">Katalog pokojów</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished">Ustawienia użytkownika</translation>
     </message>
@@ -1580,7 +1598,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1595,7 +1613,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1641,12 +1669,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished">Nie udało się włączyć szyfrowania: %1</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation type="unfinished">Wybierz awatar</translation>
     </message>
@@ -1749,22 +1777,22 @@ Example: https://server.my:8787</source>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1820,7 +1848,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished">Redagowanie wiadomości nie powiodło się: %1</translation>
     </message>
@@ -1871,7 +1899,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1906,7 +1944,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1921,12 +1959,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1966,12 +2009,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation type="unfinished">Dołączyłeś(-łaś) do tego pokoju.</translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1981,7 +2024,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2013,7 +2056,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2041,7 +2084,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2179,8 +2222,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2188,7 +2231,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation>Zminimalizuj do paska zadań</translation>
     </message>
@@ -2208,12 +2251,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2419,7 +2462,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2429,7 +2482,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2524,12 +2577,12 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>SZYFROWANIE</translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation>OGÓLNE</translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2549,7 +2602,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2599,7 +2652,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished">Wszystkie pliki (*)</translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_pt_BR.ts b/resources/langs/nheko_pt_BR.ts
index 0ea650d1..931c8da7 100644
--- a/resources/langs/nheko_pt_BR.ts
+++ b/resources/langs/nheko_pt_BR.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation>Usuário convidado: %1</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation>Confirmar entrada</translation>
     </message>
@@ -156,13 +156,13 @@
         <translation>Sala %1 criada.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation>Confirmar convite</translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Usuário desbanido: %1</translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation>Migração do cache falhou!</translation>
     </message>
@@ -247,7 +247,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation>Falha ao restaurar conta OLM. Por favor faça login novamente.</translation>
     </message>
@@ -257,7 +257,7 @@
         <translation>Falha ao restaurar dados salvos. Por favor faça login novamente.</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -288,7 +288,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -556,7 +556,7 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -885,7 +885,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+188"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+190"/>
         <source>Encryption enabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -940,7 +940,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-24"/>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-94"/>
         <source>%1 answered the call.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1382,9 +1387,22 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1392,7 +1410,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1487,7 +1505,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1577,7 +1595,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1592,7 +1610,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1638,12 +1666,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1746,22 +1774,22 @@ Example: https://server.my:8787</source>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1817,7 +1845,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1867,7 +1895,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1902,7 +1940,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1917,12 +1955,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1962,12 +2005,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation type="unfinished">Você entrou nessa sala.</translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1977,7 +2020,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2009,7 +2052,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2037,7 +2080,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2175,8 +2218,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2184,7 +2227,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2204,12 +2247,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2415,7 +2458,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2425,7 +2478,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2520,12 +2573,12 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2545,7 +2598,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2595,7 +2648,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_pt_PT.ts b/resources/langs/nheko_pt_PT.ts
index ef7e46d1..eb8467b3 100644
--- a/resources/langs/nheko_pt_PT.ts
+++ b/resources/langs/nheko_pt_PT.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -156,13 +156,13 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -247,7 +247,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -257,7 +257,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -288,7 +288,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -556,7 +556,7 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -885,7 +885,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+188"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+190"/>
         <source>Encryption enabled</source>
         <translation type="unfinished"></translation>
     </message>
@@ -940,7 +940,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-24"/>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-94"/>
         <source>%1 answered the call.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1382,9 +1387,22 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1392,7 +1410,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1487,7 +1505,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1577,7 +1595,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1592,7 +1610,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1638,12 +1666,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1746,22 +1774,22 @@ Example: https://server.my:8787</source>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1817,7 +1845,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1867,7 +1895,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1902,7 +1940,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1917,12 +1955,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1962,12 +2005,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1977,7 +2020,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2009,7 +2052,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2037,7 +2080,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2175,8 +2218,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2184,7 +2227,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2204,12 +2247,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2415,7 +2458,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2425,7 +2478,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2520,12 +2573,12 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2545,7 +2598,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2595,7 +2648,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_ro.ts b/resources/langs/nheko_ro.ts
index c05b5565..85514304 100644
--- a/resources/langs/nheko_ro.ts
+++ b/resources/langs/nheko_ro.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation>Utilizator invitat: %1</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -156,13 +156,13 @@
         <translation>Camera %1 a fost creată.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Utilizator dezinterzis: %1</translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation>Nu s-a putut migra cache-ul!</translation>
     </message>
@@ -247,7 +247,7 @@
         <translation>Cache-ul de pe disc este mai nou decât versiunea pe care Nheko o suportă. Vă rugăm actualizați sau ștergeți cache-ul.</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation>Nu s-a putut restabili contul OLM. Vă rugăm să vă reconectați.</translation>
     </message>
@@ -257,7 +257,7 @@
         <translation>Nu s-au putut restabili datele salvate. Vă rugăm să vă reconectați.</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <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>
@@ -288,7 +288,7 @@
         <translation>Nu s-a putut crea camera: %1</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation>Nu s-a putut părăsi camera: %1</translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -556,7 +556,7 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -889,7 +889,7 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+170"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+172"/>
         <location line="+9"/>
         <source>removed</source>
         <translation type="unfinished"></translation>
@@ -959,6 +959,11 @@ Exemplu: https://serverul.meu:8787</translation>
         <source>Negotiating call...</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MessageInput</name>
@@ -1386,9 +1391,22 @@ Exemplu: https://serverul.meu:8787</translation>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation>nicio versiune stocată</translation>
     </message>
@@ -1396,7 +1414,7 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1491,7 +1509,7 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished">Registru de camere</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished">Setări utilizator</translation>
     </message>
@@ -1582,7 +1600,7 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1597,7 +1615,17 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1643,12 +1671,12 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished">Nu s-a putut activa criptarea: %1</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation type="unfinished">Selectează un avatar</translation>
     </message>
@@ -1751,22 +1779,22 @@ Exemplu: https://serverul.meu:8787</translation>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1822,7 +1850,7 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation>Redactare mesaj eșuată: %1</translation>
     </message>
@@ -1873,7 +1901,17 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation>%1 a făcut ca această cameră să necesite o invitație pentru alăturare.</translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation>%1 a deschis camera pentru vizitatori.</translation>
     </message>
@@ -1908,7 +1946,7 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation>%1 a modificat permisiunile camerei.</translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation>%1 a fost invitat(ă).</translation>
     </message>
@@ -1923,12 +1961,17 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation>%1 și-a schimbat niște informații de pe profil.</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation>%1 s-a alăturat.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 a respins invitația.</translation>
     </message>
@@ -1968,12 +2011,12 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation>%1 și-a redactat ciocănitul.</translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation>Te-ai alăturat camerei.</translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1983,7 +2026,7 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation>Ciocănit refuzat de la %1.</translation>
     </message>
@@ -2015,7 +2058,7 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation>Nicio cameră deschisă</translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2043,7 +2086,7 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2181,8 +2224,8 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2190,7 +2233,7 @@ Exemplu: https://serverul.meu:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation>Minimizează în bara de notificări</translation>
     </message>
@@ -2210,12 +2253,12 @@ Exemplu: https://serverul.meu:8787</translation>
         <translation>Avatare rotunde</translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2421,7 +2464,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2431,7 +2484,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation>Factor de dimensiune</translation>
     </message>
@@ -2526,12 +2579,12 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>CRIPTARE</translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation>GENERAL</translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation>INTERFAȚĂ</translation>
     </message>
@@ -2551,7 +2604,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Familia de font pentru Emoji</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2601,7 +2654,7 @@ 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="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation>Deschide fișierul de sesiuni</translation>
     </message>
diff --git a/resources/langs/nheko_ru.ts b/resources/langs/nheko_ru.ts
index 3957f88c..52c76005 100644
--- a/resources/langs/nheko_ru.ts
+++ b/resources/langs/nheko_ru.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation>Приглашенный пользователь: %1</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation>Подтвердить вход</translation>
     </message>
@@ -156,13 +156,13 @@
         <translation>Комната %1 создана.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation>Подтвердите приглашение</translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation>Вы точно хотите пригласить %1 (%2)?</translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>Разблокированный пользователь: %1</translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation>Вы действительно хотите начать личную переписку с %1?</translation>
     </message>
     <message>
-        <location line="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation>Миграция кэша не удалась!</translation>
     </message>
@@ -247,7 +247,7 @@
         <translation>Ваш кэш новее, чем эта версия Nheko поддерживает. Пожалуйста обновитесь или отчистите ваш кэш.</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation>Не удалось восстановить учетную запись OLM. Пожалуйста, войдите снова.</translation>
     </message>
@@ -257,7 +257,7 @@
         <translation>Не удалось восстановить сохраненные данные. Пожалуйста, войдите снова.</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>Не удалось настроить ключи шифрования. Ответ сервера:%1 %2. Пожалуйста, попробуйте позже.</translation>
     </message>
@@ -288,7 +288,7 @@
         <translation>Не удалось создать комнату: %1</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation>Не удалось покинуть комнату: %1</translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation>Расшифровать секреты</translation>
     </message>
@@ -556,8 +556,8 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
-        <translation>Зашифровано неверифицированым устройства</translation>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
@@ -889,7 +889,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+170"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+172"/>
         <location line="+9"/>
         <source>removed</source>
         <translation>убрано</translation>
@@ -959,6 +959,11 @@ Example: https://server.my:8787</source>
         <source>Negotiating call...</source>
         <translation>Совершение звонка...</translation>
     </message>
+    <message>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MessageInput</name>
@@ -1262,7 +1267,7 @@ Example: https://server.my:8787</source>
     <message>
         <location filename="../qml/ReadReceipts.qml" line="+40"/>
         <source>Read receipts</source>
-        <translation type="unfinished"></translation>
+        <translation type="unfinished">Просмотр получателей</translation>
     </message>
 </context>
 <context>
@@ -1386,9 +1391,22 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation>нет сохраненной версии</translation>
     </message>
@@ -1396,7 +1414,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1491,7 +1509,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished">Каталог комнат</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished">Пользовательские настройки</translation>
     </message>
@@ -1582,7 +1600,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation>Каждый и гости</translation>
     </message>
@@ -1597,7 +1615,17 @@ Example: https://server.my:8787</source>
         <translation>Приглашённые пользователи</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation>Шифрование</translation>
     </message>
@@ -1643,12 +1671,12 @@ Example: https://server.my:8787</source>
         <translation>Версия Комнаты</translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation>Не удалось включить шифрование: %1</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation>Выберите аватар</translation>
     </message>
@@ -1751,22 +1779,22 @@ Example: https://server.my:8787</source>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1822,7 +1850,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation>Ошибка редактирования сообщения: %1</translation>
     </message>
@@ -1873,7 +1901,17 @@ Example: https://server.my:8787</source>
         <translation>%1 сделал вход в комнату по приглашению.</translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation>%1 сделал комнату открытой для гостей.</translation>
     </message>
@@ -1908,7 +1946,7 @@ Example: https://server.my:8787</source>
         <translation>%1 поменял разрешения для комнаты.</translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation>%1 был приглашен.</translation>
     </message>
@@ -1923,12 +1961,17 @@ Example: https://server.my:8787</source>
         <translation>%1 поменял информацию в профиле.</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation>%1 присоединился.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 отклонил приглашение.</translation>
     </message>
@@ -1968,12 +2011,12 @@ Example: https://server.my:8787</source>
         <translation>%1 отредактировал его &quot;стук&quot;.</translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation>Вы присоединились к этой комнате.</translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1983,7 +2026,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation>Отверг &quot;стук&quot; от %1</translation>
     </message>
@@ -2015,7 +2058,7 @@ Example: https://server.my:8787</source>
         <translation>Комната не выбрана</translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished">%1 участник(ов)</translation>
     </message>
@@ -2043,7 +2086,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <source>No encrypted private chat found with this user. Create an encrypted private chat with this user and try again.</source>
         <translation>Не найдено личного чата с этим пользователем. Создайте зашифрованный личный чат с этим пользователем и попытайтесь еще раз.</translation>
     </message>
@@ -2181,8 +2224,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation>По умолчанию</translation>
     </message>
@@ -2190,7 +2233,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation>Сворачивать в системную панель</translation>
     </message>
@@ -2210,12 +2253,12 @@ Example: https://server.my:8787</source>
         <translation>Округлый Аватар</translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation>профиль: %1</translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation>По умолчанию</translation>
     </message>
@@ -2426,7 +2469,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation>Закешировано</translation>
     </message>
@@ -2436,7 +2489,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>НЕ ЗАКЕШИРОВАНО</translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation>Масштаб</translation>
     </message>
@@ -2531,12 +2584,12 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>ШИФРОВАНИЕ</translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation>ГЛАВНОЕ</translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation>ИНТЕРФЕЙС</translation>
     </message>
@@ -2556,7 +2609,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Семья шрифта эмоджи</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2606,7 +2659,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>Все файлы (*)</translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation>Открыть файл сеансов</translation>
     </message>
diff --git a/resources/langs/nheko_si.ts b/resources/langs/nheko_si.ts
index 36f3f9a4..b0a86c9d 100644
--- a/resources/langs/nheko_si.ts
+++ b/resources/langs/nheko_si.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -156,13 +156,13 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation type="unfinished"></translation>
     </message>
@@ -247,7 +247,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -257,7 +257,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -288,7 +288,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -556,7 +556,7 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -885,7 +885,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+170"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+172"/>
         <location line="+9"/>
         <source>removed</source>
         <translation type="unfinished"></translation>
@@ -955,6 +955,11 @@ Example: https://server.my:8787</source>
         <source>Negotiating call...</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MessageInput</name>
@@ -1382,9 +1387,22 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1392,7 +1410,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1487,7 +1505,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1577,7 +1595,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1592,7 +1610,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1638,12 +1666,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1746,22 +1774,22 @@ Example: https://server.my:8787</source>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1817,7 +1845,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1867,7 +1895,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1902,7 +1940,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1917,12 +1955,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1962,12 +2005,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1977,7 +2020,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2009,7 +2052,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2037,7 +2080,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2175,8 +2218,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2184,7 +2227,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2204,12 +2247,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2415,7 +2458,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2425,7 +2478,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2520,12 +2573,12 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2545,7 +2598,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2595,7 +2648,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_sv.ts b/resources/langs/nheko_sv.ts
index b501f669..09a91b13 100644
--- a/resources/langs/nheko_sv.ts
+++ b/resources/langs/nheko_sv.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation>Bjöd in användare: %1</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -156,13 +156,13 @@
         <translation>Rum %1 skapat.</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation>Bekräfta inbjudan</translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <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>
@@ -227,12 +227,12 @@
         <translation>Hävde bannlysningen av användare: %1</translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation>Cache-migration misslyckades!</translation>
     </message>
@@ -247,7 +247,7 @@
         <translation>Cachen på ditt lagringsmedia är nyare än vad denna version av Nheko stödjer. Vänligen uppdatera eller rensa din cache.</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation>Kunde inte återställa OLM-konto. Vänligen logga in på nytt.</translation>
     </message>
@@ -257,7 +257,7 @@
         <translation>Kunde inte återställa sparad data. Vänligen logga in på nytt.</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <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>
@@ -288,7 +288,7 @@
         <translation>Kunde inte skapa rum: %1</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation>Kunde inte lämna rum: %1</translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation>Dekryptera hemliga nycklar</translation>
     </message>
@@ -556,7 +556,7 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -889,7 +889,7 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+188"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+190"/>
         <source>Encryption enabled</source>
         <translation>Kryptering aktiverad</translation>
     </message>
@@ -944,7 +944,12 @@ Exempel: https://server.my:8787</translation>
         <translation>Förhandlar samtal…</translation>
     </message>
     <message>
-        <location line="-24"/>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-94"/>
         <source>%1 answered the call.</source>
         <translation>%1 besvarade samtalet.</translation>
     </message>
@@ -1386,9 +1391,22 @@ Exempel: https://server.my:8787</translation>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation>ingen version lagrad</translation>
     </message>
@@ -1396,7 +1414,7 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1491,7 +1509,7 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished">Rumkatalog</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished">Användarinställningar</translation>
     </message>
@@ -1581,7 +1599,7 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1596,7 +1614,17 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1642,12 +1670,12 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished">Kunde inte aktivera kryptering: %1</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation type="unfinished">Välj en avatar</translation>
     </message>
@@ -1750,22 +1778,22 @@ Exempel: https://server.my:8787</translation>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1821,7 +1849,7 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation>Kunde inte maskera meddelande: %1</translation>
     </message>
@@ -1871,7 +1899,17 @@ Exempel: https://server.my:8787</translation>
         <translation>%1 satte rummet till att kräva inbjudan för att gå med.</translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation>%1 öppnade rummet för gäståtkomst.</translation>
     </message>
@@ -1906,7 +1944,7 @@ Exempel: https://server.my:8787</translation>
         <translation>%1 har ändrat rummets behörigheter.</translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation>%1 blev inbjuden.</translation>
     </message>
@@ -1921,12 +1959,17 @@ Exempel: https://server.my:8787</translation>
         <translation>%1 ändrade någon profilinfo.</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation>%1 gick med.</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation>%1 avvisade sin inbjudan.</translation>
     </message>
@@ -1966,12 +2009,12 @@ Exempel: https://server.my:8787</translation>
         <translation>%1 maskerade sin knackning.</translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation>Du gick med i detta rum.</translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1981,7 +2024,7 @@ Exempel: https://server.my:8787</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation>Avvisade knackningen från %1.</translation>
     </message>
@@ -2013,7 +2056,7 @@ Exempel: https://server.my:8787</translation>
         <translation>Inget rum öppet</translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2041,7 +2084,7 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2179,8 +2222,8 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2188,7 +2231,7 @@ Exempel: https://server.my:8787</translation>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation>Minimera till systemtråg</translation>
     </message>
@@ -2208,12 +2251,12 @@ Exempel: https://server.my:8787</translation>
         <translation>Cirkulära avatarer</translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation>profil: %1</translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2427,7 +2470,17 @@ Detta gör vanligtvis att ikonen i aktivitetsfältet animeras på något sätt.<
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation>SPARAD</translation>
     </message>
@@ -2437,7 +2490,7 @@ Detta gör vanligtvis att ikonen i aktivitetsfältet animeras på något sätt.<
         <translation>EJ SPARAD</translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation>Storleksfaktor</translation>
     </message>
@@ -2532,12 +2585,12 @@ Detta gör vanligtvis att ikonen i aktivitetsfältet animeras på något sätt.<
         <translation>KRYPTERING</translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation>ALLMÄNT</translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation>GRÄNSSNITT</translation>
     </message>
@@ -2557,7 +2610,7 @@ Detta gör vanligtvis att ikonen i aktivitetsfältet animeras på något sätt.<
         <translation>Emoji font-familj</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation>Primär signeringsnyckel</translation>
     </message>
@@ -2607,7 +2660,7 @@ Detta gör vanligtvis att ikonen i aktivitetsfältet animeras på något sätt.<
         <translation>Alla Filer (*)</translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation>Öppna sessionsfil</translation>
     </message>
diff --git a/resources/langs/nheko_zh_CN.ts b/resources/langs/nheko_zh_CN.ts
index be4f1e49..b788a569 100644
--- a/resources/langs/nheko_zh_CN.ts
+++ b/resources/langs/nheko_zh_CN.ts
@@ -131,17 +131,17 @@
     </message>
     <message>
         <location line="+4"/>
-        <location line="+665"/>
+        <location line="+668"/>
         <source>Invited user: %1</source>
         <translation>邀请已发送: %1</translation>
     </message>
     <message>
-        <location line="-456"/>
+        <location line="-459"/>
         <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="+360"/>
+        <location line="+362"/>
         <source>Confirm join</source>
         <translation type="unfinished"></translation>
     </message>
@@ -156,13 +156,13 @@
         <translation>房间“%1”已创建</translation>
     </message>
     <message>
-        <location line="+34"/>
-        <location line="+293"/>
+        <location line="+35"/>
+        <location line="+351"/>
         <source>Confirm invite</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-292"/>
+        <location line="-350"/>
         <source>Do you really want to invite %1 (%2)?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -227,12 +227,12 @@
         <translation>解禁用户: %1</translation>
     </message>
     <message>
-        <location line="+196"/>
+        <location line="+254"/>
         <source>Do you really want to start a private chat with %1?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-734"/>
+        <location line="-795"/>
         <source>Cache migration failed!</source>
         <translation>缓存迁移失败!</translation>
     </message>
@@ -247,7 +247,7 @@
         <translation>本地缓存版本比现用的Nheko版本新。请升级Nheko或手动清除缓存。</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+49"/>
         <source>Failed to restore OLM account. Please login again.</source>
         <translation>恢复 OLM 账户失败。请重新登录。</translation>
     </message>
@@ -257,7 +257,7 @@
         <translation>恢复保存的数据失败。请重新登录。</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+102"/>
         <source>Failed to setup encryption keys. Server response: %1 %2. Please try again later.</source>
         <translation>设置密钥失败。服务器返回信息: %1 %2。请稍后再试。</translation>
     </message>
@@ -288,7 +288,7 @@
         <translation>创建聊天室失败:%1</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+19"/>
         <source>Failed to leave room: %1</source>
         <translation>离开聊天室失败:%1</translation>
     </message>
@@ -352,7 +352,7 @@
 <context>
     <name>CrossSigningSecrets</name>
     <message>
-        <location filename="../../src/ChatPage.cpp" line="+189"/>
+        <location filename="../../src/ChatPage.cpp" line="+247"/>
         <source>Decrypt secrets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -556,7 +556,7 @@
     </message>
     <message>
         <location line="+2"/>
-        <source>Encrypted by an unverified device</source>
+        <source>Encrypted by an unverified device or the key is from an untrusted source like the key backup.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -885,7 +885,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>MessageDelegate</name>
     <message>
-        <location filename="../qml/delegates/MessageDelegate.qml" line="+170"/>
+        <location filename="../qml/delegates/MessageDelegate.qml" line="+172"/>
         <location line="+9"/>
         <source>removed</source>
         <translation type="unfinished"></translation>
@@ -955,6 +955,11 @@ Example: https://server.my:8787</source>
         <source>Negotiating call...</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+70"/>
+        <source>Allow them in</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MessageInput</name>
@@ -1382,9 +1387,22 @@ Example: https://server.my:8787</source>
     </message>
 </context>
 <context>
+    <name>RoomDirectory</name>
+    <message>
+        <location filename="../qml/RoomDirectory.qml" line="+24"/>
+        <source>Explore Public Rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+166"/>
+        <source>Search for public rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>RoomInfo</name>
     <message>
-        <location filename="../../src/Cache.cpp" line="+4395"/>
+        <location filename="../../src/Cache.cpp" line="+4440"/>
         <source>no version stored</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1392,7 +1410,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>RoomList</name>
     <message>
-        <location filename="../qml/RoomList.qml" line="+59"/>
+        <location filename="../qml/RoomList.qml" line="+67"/>
         <source>New tag</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1487,7 +1505,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished">聊天室目录</translation>
     </message>
     <message>
-        <location line="+12"/>
+        <location line="+16"/>
         <source>User settings</source>
         <translation type="unfinished">用户设置</translation>
     </message>
@@ -1576,7 +1594,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Anyone and guests</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1591,7 +1609,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>By knocking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Restricted by membership in other rooms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Encryption</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1637,12 +1665,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../src/ui/RoomSettings.cpp" line="+255"/>
+        <location filename="../../src/ui/RoomSettings.cpp" line="+259"/>
         <source>Failed to enable encryption: %1</source>
         <translation type="unfinished">启用加密失败:%1</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+252"/>
         <source>Select an avatar</source>
         <translation type="unfinished">选择一个头像</translation>
     </message>
@@ -1745,22 +1773,22 @@ Example: https://server.my:8787</source>
     <message>
         <location filename="../../src/SingleImagePackModel.cpp" line="+261"/>
         <location line="+25"/>
-        <source>Failed to update image pack: {}</source>
+        <source>Failed to update image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="-12"/>
-        <source>Failed to delete old image pack: {}</source>
+        <source>Failed to delete old image pack: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to open image: {}</source>
+        <source>Failed to open image: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+27"/>
-        <source>Failed to upload image: {}</source>
+        <source>Failed to upload image: %1</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1816,7 +1844,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+1127"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+1125"/>
         <source>Message redaction failed: %1</source>
         <translation type="unfinished">删除消息失败:%1</translation>
     </message>
@@ -1865,7 +1893,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
+        <location line="+2"/>
+        <source>%1 allowed to join this room by knocking.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>%1 allowed members of the following rooms to automatically join this room: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
         <source>%1 made the room open to guests.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1900,7 +1938,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+33"/>
+        <location line="+78"/>
         <source>%1 was invited.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1915,12 +1953,17 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>%1 joined.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+2"/>
+        <source>%1 joined via authorisation from %2&apos;s server.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>%1 rejected their invite.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1960,12 +2003,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-893"/>
+        <location line="-957"/>
         <source>You joined this room.</source>
         <translation type="unfinished">您已加入此房间</translation>
     </message>
     <message>
-        <location line="+859"/>
+        <location line="+917"/>
         <source>%1 has changed their avatar and changed their display name to %2.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1975,7 +2018,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+31"/>
+        <location line="+37"/>
         <source>Rejected the knock from %1.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2007,7 +2050,7 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+144"/>
+        <location line="+145"/>
         <source>%1 member(s)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2035,7 +2078,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>TimelineViewManager</name>
     <message>
-        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+538"/>
+        <location filename="../../src/timeline/TimelineViewManager.cpp" line="+544"/>
         <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>
@@ -2173,8 +2216,8 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettings</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+365"/>
-        <location filename="../../src/UserSettingsPage.h" line="+200"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+366"/>
+        <location filename="../../src/UserSettingsPage.h" line="+203"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2182,7 +2225,7 @@ Example: https://server.my:8787</source>
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location line="+540"/>
+        <location line="+554"/>
         <source>Minimize to tray</source>
         <translation>最小化至托盘</translation>
     </message>
@@ -2202,12 +2245,12 @@ Example: https://server.my:8787</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-212"/>
+        <location line="-214"/>
         <source>profile: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+98"/>
+        <location line="+100"/>
         <source>Default</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2413,7 +2456,17 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+410"/>
+        <location line="+2"/>
+        <source>Online Key Backup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Download message encryption keys from and upload to the encrypted online key backup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+415"/>
         <source>CACHED</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2423,7 +2476,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-469"/>
+        <location line="-478"/>
         <source>Scale factor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2518,12 +2571,12 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation>加密</translation>
     </message>
     <message>
-        <location line="-117"/>
+        <location line="-119"/>
         <source>GENERAL</source>
         <translation>通用</translation>
     </message>
     <message>
-        <location line="+66"/>
+        <location line="+68"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2543,7 +2596,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+53"/>
         <source>Master signing key</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2593,7 +2646,7 @@ This usually causes the application icon in the task bar to animate in some fash
         <translation type="unfinished">所有文件(*)</translation>
     </message>
     <message>
-        <location line="+241"/>
+        <location line="+246"/>
         <source>Open Sessions File</source>
         <translation>打开会话文件</translation>
     </message>